From owner-svn-src-all@freebsd.org Sun Feb 16 00:03:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5575824D95A; Sun, 16 Feb 2020 00:03:10 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48KnPp1VHnz3NZW; Sun, 16 Feb 2020 00:03:10 +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 1DC5E1D05C; Sun, 16 Feb 2020 00:03:10 +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 01G039Hc060700; Sun, 16 Feb 2020 00:03:09 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01G039Yx060698; Sun, 16 Feb 2020 00:03:09 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <202002160003.01G039Yx060698@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Sun, 16 Feb 2020 00:03:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357986 - in head/sys: conf contrib/libsodium/src/libsodium/include/sodium X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head/sys: conf contrib/libsodium/src/libsodium/include/sodium X-SVN-Commit-Revision: 357986 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 00:03:10 -0000 Author: mmacy Date: Sun Feb 16 00:03:09 2020 New Revision: 357986 URL: https://svnweb.freebsd.org/changeset/base/357986 Log: Add chacha20poly1305 support to crypto build This is a dependency for in-kernel wireguard. Reviewed by: cem@ MFC after: 1 week Sponsored by: Rubicon Communications, LLC (Netgate) Differential Revision: https://reviews.freebsd.org/D23689 Modified: head/sys/conf/files head/sys/contrib/libsodium/src/libsodium/include/sodium/core.h head/sys/contrib/libsodium/src/libsodium/include/sodium/export.h Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sat Feb 15 23:25:39 2020 (r357985) +++ head/sys/conf/files Sun Feb 16 00:03:09 2020 (r357986) @@ -4824,6 +4824,23 @@ crypto/libsodium/randombytes.c optional crypto \ compile-with "${NORMAL_C} -I$S/contrib/libsodium/src/libsodium/include -I$S/crypto/libsodium" crypto/libsodium/utils.c optional crypto \ compile-with "${NORMAL_C} -I$S/contrib/libsodium/src/libsodium/include -I$S/crypto/libsodium" +contrib/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.c \ + optional crypto \ + compile-with "${NORMAL_C} -I$S/contrib/libsodium/src/libsodium/include/sodium -I$S/crypto/libsodium" +contrib/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.c \ + optional crypto \ + compile-with "${NORMAL_C} -I$S/contrib/libsodium/src/libsodium/include/sodium -I$S/crypto/libsodium" +contrib/libsodium/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c \ + optional crypto \ + compile-with "${NORMAL_C} -I$S/contrib/libsodium/src/libsodium/include/sodium -I$S/crypto/libsodium" +contrib/libsodium/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c \ + optional crypto \ + compile-with "${NORMAL_C} -I$S/contrib/libsodium/src/libsodium/include/sodium -I$S/crypto/libsodium" +contrib/libsodium/src/libsodium/crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.c \ + optional crypto \ + compile-with "${NORMAL_C} -I$S/contrib/libsodium/src/libsodium/include/sodium -I$S/crypto/libsodium" + + opencrypto/cbc_mac.c optional crypto opencrypto/xform_cbc_mac.c optional crypto rpc/auth_none.c optional krpc | nfslockd | nfscl | nfsd Modified: head/sys/contrib/libsodium/src/libsodium/include/sodium/core.h ============================================================================== --- head/sys/contrib/libsodium/src/libsodium/include/sodium/core.h Sat Feb 15 23:25:39 2020 (r357985) +++ head/sys/contrib/libsodium/src/libsodium/include/sodium/core.h Sun Feb 16 00:03:09 2020 (r357986) @@ -16,11 +16,11 @@ int sodium_init(void) SODIUM_EXPORT int sodium_set_misuse_handler(void (*handler)(void)); - +#ifndef _KERNEL SODIUM_EXPORT void sodium_misuse(void) __attribute__ ((noreturn)); - +#endif #ifdef __cplusplus } #endif Modified: head/sys/contrib/libsodium/src/libsodium/include/sodium/export.h ============================================================================== --- head/sys/contrib/libsodium/src/libsodium/include/sodium/export.h Sat Feb 15 23:25:39 2020 (r357985) +++ head/sys/contrib/libsodium/src/libsodium/include/sodium/export.h Sun Feb 16 00:03:09 2020 (r357986) @@ -54,4 +54,14 @@ #define SODIUM_MIN(A, B) ((A) < (B) ? (A) : (B)) #define SODIUM_SIZE_MAX SODIUM_MIN(UINT64_MAX, SIZE_MAX) +#ifdef _KERNEL +#include +#include +static inline void +sodium_misuse(void) +{ + panic("bad value passed to sodium"); +} +#endif + #endif From owner-svn-src-all@freebsd.org Sun Feb 16 00:12:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E568224DE8E; Sun, 16 Feb 2020 00:12:54 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Knd25q0Hz3yM5; Sun, 16 Feb 2020 00:12:54 +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 C2AAA1D23C; Sun, 16 Feb 2020 00:12:54 +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 01G0Csom066655; Sun, 16 Feb 2020 00:12:54 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01G0CseV066653; Sun, 16 Feb 2020 00:12:54 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <202002160012.01G0CseV066653@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Sun, 16 Feb 2020 00:12:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357987 - in head: share/man/man9 sys/kern sys/sys X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head: share/man/man9 sys/kern sys/sys X-SVN-Commit-Revision: 357987 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 00:12:55 -0000 Author: mmacy Date: Sun Feb 16 00:12:53 2020 New Revision: 357987 URL: https://svnweb.freebsd.org/changeset/base/357987 Log: Add zfree to zero allocation before free Key and cookie management typically wants to avoid information leaks by explicitly zeroing before free. This routine simplifies that by permitting consumers to do so without carrying the size around. Reviewed by: jeff@, jhb@ MFC after: 1 week Sponsored by: Rubicon Communications, LLC (Netgate) Differential Revision: https://reviews.freebsd.org/D22790 Modified: head/share/man/man9/malloc.9 head/sys/kern/kern_malloc.c head/sys/sys/malloc.h Modified: head/share/man/man9/malloc.9 ============================================================================== --- head/share/man/man9/malloc.9 Sun Feb 16 00:03:09 2020 (r357986) +++ head/share/man/man9/malloc.9 Sun Feb 16 00:12:53 2020 (r357987) @@ -49,6 +49,8 @@ .Fn mallocarray "size_t nmemb" "size_t size" "struct malloc_type *type" "int flags" .Ft void .Fn free "void *addr" "struct malloc_type *type" +.Ft void +.Fn zfree "void *addr" "struct malloc_type *type" .Ft void * .Fn realloc "void *addr" "size_t size" "struct malloc_type *type" "int flags" .Ft void * @@ -105,6 +107,19 @@ is then .Fn free does nothing. +.Pp +Like +.Fn free , +the +.Fn zfree +function releases memory at address +.Fa addr +that was previously allocated by +.Fn malloc +for re-use. +However, +.Fn zfree +will zero the memory before it is released. .Pp The .Fn realloc Modified: head/sys/kern/kern_malloc.c ============================================================================== --- head/sys/kern/kern_malloc.c Sun Feb 16 00:03:09 2020 (r357986) +++ head/sys/kern/kern_malloc.c Sun Feb 16 00:12:53 2020 (r357987) @@ -820,6 +820,48 @@ free(void *addr, struct malloc_type *mtp) malloc_type_freed(mtp, size); } +/* + * zfree: + * + * Zero then free a block of memory allocated by malloc. + * + * This routine may not block. + */ +void +zfree(void *addr, struct malloc_type *mtp) +{ + uma_zone_t zone; + uma_slab_t slab; + u_long size; + +#ifdef MALLOC_DEBUG + if (free_dbg(&addr, mtp) != 0) + return; +#endif + /* free(NULL, ...) does nothing */ + if (addr == NULL) + return; + + vtozoneslab((vm_offset_t)addr & (~UMA_SLAB_MASK), &zone, &slab); + if (slab == NULL) + panic("free: address %p(%p) has not been allocated.\n", + addr, (void *)((u_long)addr & (~UMA_SLAB_MASK))); + + if (__predict_true(!malloc_large_slab(slab))) { + size = zone->uz_size; +#ifdef INVARIANTS + free_save_type(addr, mtp, size); +#endif + explicit_bzero(addr, size); + uma_zfree_arg(zone, addr, slab); + } else { + size = malloc_large_size(slab); + explicit_bzero(addr, size); + free_large(addr, size); + } + malloc_type_freed(mtp, size); +} + void free_domain(void *addr, struct malloc_type *mtp) { Modified: head/sys/sys/malloc.h ============================================================================== --- head/sys/sys/malloc.h Sun Feb 16 00:03:09 2020 (r357986) +++ head/sys/sys/malloc.h Sun Feb 16 00:12:53 2020 (r357987) @@ -179,6 +179,7 @@ void *contigmalloc_domainset(unsigned long size, struc unsigned long alignment, vm_paddr_t boundary) __malloc_like __result_use_check __alloc_size(1) __alloc_align(7); void free(void *addr, struct malloc_type *type); +void zfree(void *addr, struct malloc_type *type); void free_domain(void *addr, struct malloc_type *type); void *malloc(size_t size, struct malloc_type *type, int flags) __malloc_like __result_use_check __alloc_size(1); From owner-svn-src-all@freebsd.org Sun Feb 16 01:07:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5EE7324EF89; Sun, 16 Feb 2020 01:07:20 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Kpqr11rHz4XpM; Sun, 16 Feb 2020 01:07:19 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E375D1DB71; Sun, 16 Feb 2020 01:07:19 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01G17JPL096350; Sun, 16 Feb 2020 01:07:19 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01G17JBm096349; Sun, 16 Feb 2020 01:07:19 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002160107.01G17JBm096349@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Sun, 16 Feb 2020 01:07:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357988 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 357988 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 01:07:20 -0000 Author: jeff Date: Sun Feb 16 01:07:19 2020 New Revision: 357988 URL: https://svnweb.freebsd.org/changeset/base/357988 Log: Slightly restructure uma_zalloc* to generate better code from clang and reduce duplication among zalloc functions. Reviewed by: markj Discussed with: mjg Differential Revision: https://reviews.freebsd.org/D23672 Modified: head/sys/vm/uma_core.c Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Sun Feb 16 00:12:53 2020 (r357987) +++ head/sys/vm/uma_core.c Sun Feb 16 01:07:19 2020 (r357988) @@ -3013,8 +3013,8 @@ item_ctor(uma_zone_t zone, int uz_flags, int size, voi if (!skipdbg) uma_dbg_alloc(zone, NULL, item); #endif - if (flags & M_ZERO) - bzero(item, size); + if (__predict_false(flags & M_ZERO)) + return (memset(item, 0, size)); return (item); } @@ -3117,11 +3117,35 @@ uma_zfree_debug(uma_zone_t zone, void *item, void *uda } #endif +static inline void * +cache_alloc_item(uma_zone_t zone, uma_cache_t cache, uma_cache_bucket_t bucket, + void *udata, int flags) +{ + void *item; + int size, uz_flags; + + item = cache_bucket_pop(cache, bucket); + size = cache_uz_size(cache); + uz_flags = cache_uz_flags(cache); + critical_exit(); + return (item_ctor(zone, uz_flags, size, udata, flags, item)); +} + static __noinline void * -uma_zalloc_single(uma_zone_t zone, void *udata, int flags) +cache_alloc_retry(uma_zone_t zone, uma_cache_t cache, void *udata, int flags) { + uma_cache_bucket_t bucket; int domain; + while (cache_alloc(zone, cache, udata, flags)) { + cache = &zone->uz_cpu[curcpu]; + bucket = &cache->uc_allocbucket; + if (__predict_false(bucket->ucb_cnt == 0)) + continue; + return (cache_alloc_item(zone, cache, bucket, udata, flags)); + } + critical_exit(); + /* * We can not get a bucket so try to return a single item. */ @@ -3138,10 +3162,10 @@ uma_zalloc_smr(uma_zone_t zone, int flags) { uma_cache_bucket_t bucket; uma_cache_t cache; - void *item; - int size, uz_flags; #ifdef UMA_ZALLOC_DEBUG + void *item; + KASSERT((zone->uz_flags & UMA_ZONE_SMR) != 0, ("uma_zalloc_arg: called with non-SMR zone.\n")); if (uma_zalloc_debug(zone, &item, NULL, flags) == EJUSTRETURN) @@ -3149,21 +3173,11 @@ uma_zalloc_smr(uma_zone_t zone, int flags) #endif critical_enter(); - do { - cache = &zone->uz_cpu[curcpu]; - bucket = &cache->uc_allocbucket; - size = cache_uz_size(cache); - uz_flags = cache_uz_flags(cache); - if (__predict_true(bucket->ucb_cnt != 0)) { - item = cache_bucket_pop(cache, bucket); - critical_exit(); - return (item_ctor(zone, uz_flags, size, NULL, flags, - item)); - } - } while (cache_alloc(zone, cache, NULL, flags)); - critical_exit(); - - return (uma_zalloc_single(zone, NULL, flags)); + cache = &zone->uz_cpu[curcpu]; + bucket = &cache->uc_allocbucket; + if (__predict_false(bucket->ucb_cnt == 0)) + return (cache_alloc_retry(zone, cache, NULL, flags)); + return (cache_alloc_item(zone, cache, bucket, NULL, flags)); } /* See uma.h */ @@ -3172,8 +3186,6 @@ uma_zalloc_arg(uma_zone_t zone, void *udata, int flags { uma_cache_bucket_t bucket; uma_cache_t cache; - void *item; - int size, uz_flags; /* Enable entropy collection for RANDOM_ENABLE_UMA kernel option */ random_harvest_fast_uma(&zone, sizeof(zone), RANDOM_UMA); @@ -3183,6 +3195,8 @@ uma_zalloc_arg(uma_zone_t zone, void *udata, int flags zone, flags); #ifdef UMA_ZALLOC_DEBUG + void *item; + KASSERT((zone->uz_flags & UMA_ZONE_SMR) == 0, ("uma_zalloc_arg: called with SMR zone.\n")); if (uma_zalloc_debug(zone, &item, udata, flags) == EJUSTRETURN) @@ -3201,21 +3215,11 @@ uma_zalloc_arg(uma_zone_t zone, void *udata, int flags * must detect and handle migration if it has occurred. */ critical_enter(); - do { - cache = &zone->uz_cpu[curcpu]; - bucket = &cache->uc_allocbucket; - size = cache_uz_size(cache); - uz_flags = cache_uz_flags(cache); - if (__predict_true(bucket->ucb_cnt != 0)) { - item = cache_bucket_pop(cache, bucket); - critical_exit(); - return (item_ctor(zone, uz_flags, size, udata, flags, - item)); - } - } while (cache_alloc(zone, cache, udata, flags)); - critical_exit(); - - return (uma_zalloc_single(zone, udata, flags)); + cache = &zone->uz_cpu[curcpu]; + bucket = &cache->uc_allocbucket; + if (__predict_false(bucket->ucb_cnt == 0)) + return (cache_alloc_retry(zone, cache, udata, flags)); + return (cache_alloc_item(zone, cache, bucket, udata, flags)); } /* @@ -4326,7 +4330,7 @@ zone_release(void *arg, void **bucket, int cnt) * udata User supplied data for the dtor * skip Skip dtors and finis */ -static void +static __noinline void zone_free_item(uma_zone_t zone, void *item, void *udata, enum zfreeskip skip) { From owner-svn-src-all@freebsd.org Sun Feb 16 02:52:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C2C03252215; Sun, 16 Feb 2020 02:52:21 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pj1-x1043.google.com (mail-pj1-x1043.google.com [IPv6:2607:f8b0:4864:20::1043]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Ks914fm9z4dC8; Sun, 16 Feb 2020 02:52:21 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pj1-x1043.google.com with SMTP id f2so1514104pjq.1; Sat, 15 Feb 2020 18:52:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=1eUTTQ+otSZ6KqFNovWXW8KgtAngDuGD51gztiryK14=; b=cJEIZwbePZtxP51FHRTu70FUNsGOAhEUXmtmZsNPM60Y7eobyNH0oTMDCjiw+U8scF WiDzDY3Oou7Ruqp+gAOuAGZgr20fv72AylFXOgXaHiDlMkYx023IU/DEAnhbY4Xpy9ig /aH2cxs+0w6BSGK72swfwlddygtWtmQu4evJ2Q51wuJuRvtXXskWJxCftDboUtiBRDA4 TdT8HlOeWKFkEslmkqsTpTAQkPy6pb2vM3ojAW14fPNqPkpPmPeW6SThR/3adDzTLOk9 ao1K6tN4qtbxOnHLk0Zo4K2cPEONZVgQ6s4gjLXXzzdWIQsnaOJyVXqHgDJe5R731lYM gLmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=1eUTTQ+otSZ6KqFNovWXW8KgtAngDuGD51gztiryK14=; b=Btu2o+JRL/ig4Nt3ungm5mP+9RpYfEfSs/ALuwQrxctJPf2kLbOY5CpuB5vZ4eM/Jj UkY+4pMcVu57d2GEuhxWnKLFsrnuHnP60SDCQnrRRJXO+y7CqKh4eARi0zFW3hgkC6gF g0J3qUVKJRzwT4aHfv8kfoswFsno8H85vHID/XyJnyIn5N4ef3KFWR4ABYfy8r/K40oS CNsC5QR581yFZAuQOowr6qDgeYQp4yWnFzU5ruLVSBwIcMyIIgwQLfnKqxI0eUAzSzTr 2oGESJJ6nUd9HgcWSVpvFAnR8x0aSzUhrPJgFDkJAsJDAQrMXUkkCM8h31A26DZ7friR inTA== X-Gm-Message-State: APjAAAV8gfDll426vqFFoN6SU4mrZkFfD4kz2xTZGePTwiEIX4OF6lEg 3zOGD8/k4s57Rpd0BSjc9JvMfN3IoL8= X-Google-Smtp-Source: APXvYqyXxizGgq2QZ+JmHQ3f6Xrp3Yw6Q7SJ5PPzVh5PG2/Dvx0CtVlqXg2eM6J8potH3CTZZWkueA== X-Received: by 2002:a17:902:bc88:: with SMTP id bb8mr9673074plb.274.1581821539858; Sat, 15 Feb 2020 18:52:19 -0800 (PST) Received: from [192.168.20.12] (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id k9sm8950555pfh.153.2020.02.15.18.52.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 15 Feb 2020 18:52:19 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.60.0.2.5\)) Subject: Re: svn commit: r357967 - head/sbin/ping6 From: "Enji Cooper (yaneurabeya)" In-Reply-To: <202002151539.01FFdrH7054398@repo.freebsd.org> Date: Sat, 15 Feb 2020 18:52:17 -0800 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <86AA0366-7EAD-4BC3-B4C3-761847769338@gmail.com> References: <202002151539.01FFdrH7054398@repo.freebsd.org> To: "Alexander V. Chernikov" X-Mailer: Apple Mail (2.3608.60.0.2.5) X-Rspamd-Queue-Id: 48Ks914fm9z4dC8 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 02:52:21 -0000 > On Feb 15, 2020, at 07:39, Alexander V. Chernikov = wrote: >=20 > Author: melifaro > Date: Sat Feb 15 15:39:53 2020 > New Revision: 357967 > URL: https://svnweb.freebsd.org/changeset/base/357967 >=20 > Log: > Make ping6(1) return code consistent with the man page. > When every sendto() call originated by ping6(1) fails, current code = always > returns 2 ("transmission was successful but no responses were = received") > which is incorrect. Return EX_OSERR instead as in many cases it = indicates > some kernel-level problems. >=20 > MFC after: 3 weeks Could you please add this to RELNOTES? Thanks! -Enji= From owner-svn-src-all@freebsd.org Sun Feb 16 03:14:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 772AF2528AE; Sun, 16 Feb 2020 03:14:56 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Ksg36H9jz3MCm; Sun, 16 Feb 2020 03:14:55 +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 D2CF61F49F; Sun, 16 Feb 2020 03:14:55 +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 01G3EtsD074778; Sun, 16 Feb 2020 03:14:55 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01G3Ete9074777; Sun, 16 Feb 2020 03:14:55 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202002160314.01G3Ete9074777@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 16 Feb 2020 03:14:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357989 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 357989 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 03:14:56 -0000 Author: mjg Date: Sun Feb 16 03:14:55 2020 New Revision: 357989 URL: https://svnweb.freebsd.org/changeset/base/357989 Log: refcount: add missing release fence to refcount_release_if_gt The CPU succeeding in releasing the not last reference can still have pending stores to the object protected by the affected counter. This opens a time window where another CPU can release the last reference and free the object, resulting in use-after-free. On top of that this prevents the compiler from generating more accesses to the object regardless of how atomic_fcmpset_rel_int is implemented (of course as long as it provides the release semantic). Reviewed by: markj Modified: head/sys/sys/refcount.h Modified: head/sys/sys/refcount.h ============================================================================== --- head/sys/sys/refcount.h Sun Feb 16 01:07:19 2020 (r357988) +++ head/sys/sys/refcount.h Sun Feb 16 03:14:55 2020 (r357989) @@ -198,7 +198,7 @@ refcount_release_if_gt(volatile u_int *count, u_int n) return (false); if (__predict_false(REFCOUNT_SATURATED(old))) return (true); - if (atomic_fcmpset_int(count, &old, old - 1)) + if (atomic_fcmpset_rel_int(count, &old, old - 1)) return (true); } } From owner-svn-src-all@freebsd.org Sun Feb 16 03:16:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 486F925295D; Sun, 16 Feb 2020 03:16: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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Kshs1K6xz3N0y; Sun, 16 Feb 2020 03:16: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 280591F4A2; Sun, 16 Feb 2020 03:16: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 01G3GTHQ074906; Sun, 16 Feb 2020 03:16:29 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01G3GTVX074905; Sun, 16 Feb 2020 03:16:29 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202002160316.01G3GTVX074905@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 16 Feb 2020 03:16:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357990 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 357990 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 03:16:29 -0000 Author: mjg Date: Sun Feb 16 03:16:28 2020 New Revision: 357990 URL: https://svnweb.freebsd.org/changeset/base/357990 Log: vfs: check early for VCHR in vput_final to short-circuit in the common case Otherwise the compiler inlines v_decr_devcount which keps getting jumped over in the common case of not dealing with a device. Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sun Feb 16 03:14:55 2020 (r357989) +++ head/sys/kern/vfs_subr.c Sun Feb 16 03:16:28 2020 (r357990) @@ -3208,7 +3208,7 @@ vput_final(struct vnode *vp, enum vput_op func) VNPASS(vp->v_holdcnt > 0, vp); VI_LOCK(vp); - if (func != VRELE) + if (__predict_false(vp->v_type == VCHR && func != VRELE)) v_decr_devcount(vp); /* From owner-svn-src-all@freebsd.org Sun Feb 16 03:33:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C8216252D64; Sun, 16 Feb 2020 03:33:35 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Kt4b3Ymqz41tM; Sun, 16 Feb 2020 03:33:35 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5C56C1F83E; Sun, 16 Feb 2020 03:33:35 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01G3XZv2087087; Sun, 16 Feb 2020 03:33:35 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01G3XZj4087086; Sun, 16 Feb 2020 03:33:35 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202002160333.01G3XZj4087086@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 16 Feb 2020 03:33:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357991 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 357991 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 03:33:35 -0000 Author: mjg Date: Sun Feb 16 03:33:34 2020 New Revision: 357991 URL: https://svnweb.freebsd.org/changeset/base/357991 Log: vfs: fix vlrureclaim ->v_object access The routine was checking for ->v_type == VBAD. Since vgone drops the interlock early sets this type at the end of the process of dooming a vnode, this opens a time window where it can clear the pointer while the inerlock-holders is accessing it. Another note is that the code was: (vp->v_object != NULL && vp->v_object->resident_page_count > trigger) With the compiler being fully allowed to emit another read to get the pointer, and in fact it did on the kernel used by pho. Use atomic_load_ptr and remember the result. Note that this depends on type-safety of vm_object. Reported by: pho Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sun Feb 16 03:16:28 2020 (r357990) +++ head/sys/kern/vfs_subr.c Sun Feb 16 03:33:34 2020 (r357991) @@ -1100,6 +1100,7 @@ vlrureclaim(bool reclaim_nc_src, int trigger, u_long t { struct vnode *vp, *mvp; struct mount *mp; + struct vm_object *object; u_long done; bool retried; @@ -1137,12 +1138,17 @@ restart: if (vp->v_usecount > 0 || vp->v_holdcnt == 0 || (!reclaim_nc_src && !LIST_EMPTY(&vp->v_cache_src)) || - vp->v_type == VBAD || vp->v_type == VNON || - (vp->v_object != NULL && - vp->v_object->resident_page_count > trigger)) { + VN_IS_DOOMED(vp) || vp->v_type == VNON) { VI_UNLOCK(vp); goto next_iter; } + + object = atomic_load_ptr(&vp->v_object); + if (object == NULL || object->resident_page_count > trigger) { + VI_UNLOCK(vp); + goto next_iter; + } + vholdl(vp); VI_UNLOCK(vp); TAILQ_REMOVE(&vnode_list, mvp, v_vnodelist); From owner-svn-src-all@freebsd.org Sun Feb 16 06:34:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 74163255C10; Sun, 16 Feb 2020 06:34:47 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Ky5g1h9Fz4Hpk; Sun, 16 Feb 2020 06:34:47 +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 60195218FB; Sun, 16 Feb 2020 06:34:46 +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 01G6YjqG095007; Sun, 16 Feb 2020 06:34:45 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01G6YjvZ095006; Sun, 16 Feb 2020 06:34:45 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202002160634.01G6YjvZ095006@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sun, 16 Feb 2020 06:34:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r357992 - stable/12/bin/pwait X-SVN-Group: stable-12 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/12/bin/pwait X-SVN-Commit-Revision: 357992 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 06:34:47 -0000 Author: delphij Date: Sun Feb 16 06:34:45 2020 New Revision: 357992 URL: https://svnweb.freebsd.org/changeset/base/357992 Log: MFC r357420: Remove unused include. Modified: stable/12/bin/pwait/pwait.c Directory Properties: stable/12/ (props changed) Modified: stable/12/bin/pwait/pwait.c ============================================================================== --- stable/12/bin/pwait/pwait.c Sun Feb 16 03:33:34 2020 (r357991) +++ stable/12/bin/pwait/pwait.c Sun Feb 16 06:34:45 2020 (r357992) @@ -41,7 +41,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include #include From owner-svn-src-all@freebsd.org Sun Feb 16 07:06:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7A3AC25660C; Sun, 16 Feb 2020 07:06:26 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48KypB2W1Nz4WVg; Sun, 16 Feb 2020 07:06:26 +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 3C5CF21E8F; Sun, 16 Feb 2020 07:06:26 +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 01G76Q4f012548; Sun, 16 Feb 2020 07:06:26 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01G76PJI012545; Sun, 16 Feb 2020 07:06:25 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202002160706.01G76PJI012545@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sun, 16 Feb 2020 07:06:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r357993 - in stable/12/sbin: fsck fsck_ffs X-SVN-Group: stable-12 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: in stable/12/sbin: fsck fsck_ffs X-SVN-Commit-Revision: 357993 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 07:06:26 -0000 Author: delphij Date: Sun Feb 16 07:06:25 2020 New Revision: 357993 URL: https://svnweb.freebsd.org/changeset/base/357993 Log: MFC r356000: Remove unused includes. Modified: stable/12/sbin/fsck/fsck.c stable/12/sbin/fsck/fsutil.c stable/12/sbin/fsck_ffs/utilities.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/fsck/fsck.c ============================================================================== --- stable/12/sbin/fsck/fsck.c Sun Feb 16 06:34:45 2020 (r357992) +++ stable/12/sbin/fsck/fsck.c Sun Feb 16 07:06:25 2020 (r357993) @@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include #include Modified: stable/12/sbin/fsck/fsutil.c ============================================================================== --- stable/12/sbin/fsck/fsutil.c Sun Feb 16 06:34:45 2020 (r357992) +++ stable/12/sbin/fsck/fsutil.c Sun Feb 16 07:06:25 2020 (r357993) @@ -42,8 +42,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include -#include #include #include #include Modified: stable/12/sbin/fsck_ffs/utilities.c ============================================================================== --- stable/12/sbin/fsck_ffs/utilities.c Sun Feb 16 06:34:45 2020 (r357992) +++ stable/12/sbin/fsck_ffs/utilities.c Sun Feb 16 07:06:25 2020 (r357993) @@ -45,15 +45,11 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include -#include #include #include #include -#include -#include #include "fsck.h" From owner-svn-src-all@freebsd.org Sun Feb 16 09:13:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1074A258FE7; Sun, 16 Feb 2020 09:13:06 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48L1cK5l7Bz4Zg9; Sun, 16 Feb 2020 09:13:05 +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 B18342362B; Sun, 16 Feb 2020 09:13:05 +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 01G9D513089942; Sun, 16 Feb 2020 09:13:05 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01G9D5iA089941; Sun, 16 Feb 2020 09:13:05 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <202002160913.01G9D5iA089941@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Sun, 16 Feb 2020 09:13:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r357994 - stable/12/tests/sys/geom/class/multipath X-SVN-Group: stable-12 X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: stable/12/tests/sys/geom/class/multipath X-SVN-Commit-Revision: 357994 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 09:13:06 -0000 Author: lwhsu Date: Sun Feb 16 09:13:05 2020 New Revision: 357994 URL: https://svnweb.freebsd.org/changeset/base/357994 Log: Skip sys.geom.class.multipath.misc.fail_on_error on stable/12 The required feature is not in stable/12 yet. PR: 244158 Sponsored by: The FreeBSD Foundation Modified: stable/12/tests/sys/geom/class/multipath/misc.sh Modified: stable/12/tests/sys/geom/class/multipath/misc.sh ============================================================================== --- stable/12/tests/sys/geom/class/multipath/misc.sh Sun Feb 16 07:06:25 2020 (r357993) +++ stable/12/tests/sys/geom/class/multipath/misc.sh Sun Feb 16 09:13:05 2020 (r357994) @@ -176,6 +176,10 @@ fail_on_error_head() } fail_on_error_body() { + if [ "$(atf_config_get ci false)" = "true" ]; then + atf_skip "https://bugs.freebsd.org/244158" + fi + load_gnop load_gmultipath md0=$(alloc_md) From owner-svn-src-all@freebsd.org Sun Feb 16 10:57:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6436825A9D5; Sun, 16 Feb 2020 10:57:43 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48L3x30n4Hz3JrP; Sun, 16 Feb 2020 10:57:43 +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 120F124964; Sun, 16 Feb 2020 10:57:43 +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 01GAvgPW049887; Sun, 16 Feb 2020 10:57:42 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GAvgJZ049886; Sun, 16 Feb 2020 10:57:42 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <202002161057.01GAvgJZ049886@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Sun, 16 Feb 2020 10:57:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357995 - head/tests/sys/net X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: head/tests/sys/net X-SVN-Commit-Revision: 357995 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 10:57:43 -0000 Author: lwhsu Date: Sun Feb 16 10:57:42 2020 New Revision: 357995 URL: https://svnweb.freebsd.org/changeset/base/357995 Log: Remove trailing whitespace Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/net/if_lagg_test.sh Modified: head/tests/sys/net/if_lagg_test.sh ============================================================================== --- head/tests/sys/net/if_lagg_test.sh Sun Feb 16 09:13:05 2020 (r357994) +++ head/tests/sys/net/if_lagg_test.sh Sun Feb 16 10:57:42 2020 (r357995) @@ -138,7 +138,7 @@ create_destroy_stress_head() create_destroy_stress_body() { local TAP0 TAP1 LAGG MAC - + atf_skip "Skipping this test because it easily panics the machine" TAP0=`get_tap` @@ -161,7 +161,7 @@ create_destroy_stress_body() CREATOR_PID=$! # Second thread: destroy the lagg - while true; do + while true; do ifconfig $LAGG destroy 2>/dev/null && \ echo -n . >> destroyer_count.txt done & @@ -194,7 +194,7 @@ lacp_linkstate_destroy_stress_head() lacp_linkstate_destroy_stress_body() { local TAP0 TAP1 LAGG MAC SRCDIR - + # Configure the lagg interface to use an RFC5737 nonrouteable addresses ADDR="192.0.2.2" MASK="24" @@ -255,7 +255,7 @@ up_destroy_stress_body() local TAP0 TAP1 LAGG MAC SRCDIR atf_skip "Skipping this test because it panics the machine fairly often" - + # Configure the lagg interface to use an RFC5737 nonrouteable addresses ADDR="192.0.2.2" MASK="24" From owner-svn-src-all@freebsd.org Sun Feb 16 10:59:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 17F7625AA85; Sun, 16 Feb 2020 10:59:34 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48L3z96btgz3Kw2; Sun, 16 Feb 2020 10:59:33 +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 DDBF824966; Sun, 16 Feb 2020 10:59:33 +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 01GAxXDM050023; Sun, 16 Feb 2020 10:59:33 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GAxX99050020; Sun, 16 Feb 2020 10:59:33 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <202002161059.01GAxX99050020@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Sun, 16 Feb 2020 10:59:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357996 - in head/tests/sys/net: . routing X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: in head/tests/sys/net: . routing X-SVN-Commit-Revision: 357996 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 10:59:34 -0000 Author: lwhsu Date: Sun Feb 16 10:59:32 2020 New Revision: 357996 URL: https://svnweb.freebsd.org/changeset/base/357996 Log: Remove trailing whitespace Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/net/if_clone_test.sh head/tests/sys/net/routing/rtsock_common.h head/tests/sys/net/routing/rtsock_print.h head/tests/sys/net/routing/test_rtsock_l3.c Modified: head/tests/sys/net/if_clone_test.sh ============================================================================== --- head/tests/sys/net/if_clone_test.sh Sun Feb 16 10:57:42 2020 (r357995) +++ head/tests/sys/net/if_clone_test.sh Sun Feb 16 10:59:32 2020 (r357996) @@ -456,7 +456,7 @@ do_stress() CREATOR_PID=$! # Second thread: destroy the lagg - while true; do + while true; do ifconfig $IFACE destroy 2>/dev/null && \ echo -n . >> destroyer_count.txt done & Modified: head/tests/sys/net/routing/rtsock_common.h ============================================================================== --- head/tests/sys/net/routing/rtsock_common.h Sun Feb 16 10:57:42 2020 (r357995) +++ head/tests/sys/net/routing/rtsock_common.h Sun Feb 16 10:59:32 2020 (r357996) @@ -184,7 +184,7 @@ iface_destroy(char *ifname) { struct ifreq ifr; int s; - + s = socket(AF_LOCAL, SOCK_DGRAM, 0); strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); @@ -587,7 +587,7 @@ rtsock_send_rtm(int fd, struct rt_msghdr *rtm) RTSOCK_ATF_REQUIRE_MSG(rtm, len == rtm->rtm_msglen, "rtsock write failed: want %d got %zd (%s)", rtm->rtm_msglen, len, strerror(my_errno)); - + return (len); } Modified: head/tests/sys/net/routing/rtsock_print.h ============================================================================== --- head/tests/sys/net/routing/rtsock_print.h Sun Feb 16 10:57:42 2020 (r357995) +++ head/tests/sys/net/routing/rtsock_print.h Sun Feb 16 10:59:32 2020 (r357996) @@ -156,7 +156,7 @@ sa_print_hd(char *buf, int buflen, const char *data, i ptr = buf; rem_len = buflen; - + const char *last_char = NULL; unsigned char v; int repeat_count = 0; @@ -265,7 +265,7 @@ rtsock_print_rtm(struct rt_msghdr *rtm) char buf[64]; gettimeofday(&tv, NULL); - localtime_r(&tv.tv_sec, &tm_res); + localtime_r(&tv.tv_sec, &tm_res); strftime(buf, sizeof(buf), "%F %T", &tm_res); printf("Got message of size %hu on %s\n", rtm->rtm_msglen, buf); @@ -314,7 +314,7 @@ rtsock_print_ifa(struct ifa_msghdr *ifam) char buf[64]; gettimeofday(&tv, NULL); - localtime_r(&tv.tv_sec, &tm_res); + localtime_r(&tv.tv_sec, &tm_res); strftime(buf, sizeof(buf), "%F %T", &tm_res); printf("Got message of size %hu on %s\n", ifam->ifam_msglen, buf); @@ -351,7 +351,7 @@ rtsock_print_message_hd(struct rt_msghdr *rtm) char dumpbuf[2048]; gettimeofday(&tv, NULL); - localtime_r(&tv.tv_sec, &tm_res); + localtime_r(&tv.tv_sec, &tm_res); strftime(buf, sizeof(buf), "%F %T", &tm_res); printf("Got message type %s of size %hu on %s\n", rtsock_print_cmdtype(rtm->rtm_type), Modified: head/tests/sys/net/routing/test_rtsock_l3.c ============================================================================== --- head/tests/sys/net/routing/test_rtsock_l3.c Sun Feb 16 10:57:42 2020 (r357995) +++ head/tests/sys/net/routing/test_rtsock_l3.c Sun Feb 16 10:59:32 2020 (r357996) @@ -318,7 +318,7 @@ ATF_TC_BODY(rtm_get_v4_lpm_success, tc) * sockaddrs: * 10.0.0.0 link#1 255.255.255.0 vtnet0:52.54.0.42.f.ef 10.0.0.157 */ - + verify_route_message(rtm, RTM_GET, (struct sockaddr *)&c->net4, (struct sockaddr *)&c->mask4, NULL); From owner-svn-src-all@freebsd.org Sun Feb 16 11:16:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7919A25AFD6; Sun, 16 Feb 2020 11:16:06 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48L4LG2Xwnz41P9; Sun, 16 Feb 2020 11:16:06 +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 4F25924D32; Sun, 16 Feb 2020 11:16:06 +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 01GBG6qO061682; Sun, 16 Feb 2020 11:16:06 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GBG6Db061681; Sun, 16 Feb 2020 11:16:06 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <202002161116.01GBG6Db061681@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Sun, 16 Feb 2020 11:16:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357997 - head/tests/sys/net X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: head/tests/sys/net X-SVN-Commit-Revision: 357997 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 11:16:06 -0000 Author: lwhsu Date: Sun Feb 16 11:16:05 2020 New Revision: 357997 URL: https://svnweb.freebsd.org/changeset/base/357997 Log: Temporarily skip failing sys.net.if_lagg_test.witness on i386 CI PR: 244163 Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/net/if_lagg_test.sh Modified: head/tests/sys/net/if_lagg_test.sh ============================================================================== --- head/tests/sys/net/if_lagg_test.sh Sun Feb 16 10:59:32 2020 (r357996) +++ head/tests/sys/net/if_lagg_test.sh Sun Feb 16 11:16:05 2020 (r357997) @@ -398,6 +398,10 @@ witness_head() } witness_body() { + if [ "$(atf_config_get ci false)" = "true" ] && \ + [ "$(uname -p)" = "i386" ]; then + atf_skip "https://bugs.freebsd.org/244163" + fi if [ `sysctl -n debug.witness.watch` -ne 1 ]; then atf_skip "witness(4) is not enabled" fi From owner-svn-src-all@freebsd.org Sun Feb 16 13:16:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6CB3625E3D2; Sun, 16 Feb 2020 13:16:41 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48L71P2LHLz4Hgh; Sun, 16 Feb 2020 13:16:41 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4B8BA2640D; Sun, 16 Feb 2020 13:16:41 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01GDGf7P034164; Sun, 16 Feb 2020 13:16:41 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GDGecl034162; Sun, 16 Feb 2020 13:16:40 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202002161316.01GDGecl034162@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Sun, 16 Feb 2020 13:16:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357998 - in head/tests/sys: common net X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: in head/tests/sys: common net X-SVN-Commit-Revision: 357998 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 13:16:41 -0000 Author: kp Date: Sun Feb 16 13:16:40 2020 New Revision: 357998 URL: https://svnweb.freebsd.org/changeset/base/357998 Log: bridge: Basic test case Very basic bridge test: Set up two jails and test that they can pass IPv4 traffic over the bridge. Reviewed by: melifaro, philip Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23697 Added: head/tests/sys/net/if_bridge_test.sh (contents, props changed) Modified: head/tests/sys/common/vnet.subr head/tests/sys/net/Makefile Modified: head/tests/sys/common/vnet.subr ============================================================================== --- head/tests/sys/common/vnet.subr Sun Feb 16 11:16:05 2020 (r357997) +++ head/tests/sys/common/vnet.subr Sun Feb 16 13:16:40 2020 (r357998) @@ -16,6 +16,13 @@ vnet_mkepair() echo ${ifname%a} } +vnet_mkbridge() +{ + ifname=$(ifconfig bridge create) + echo $ifname >> created_interfaces.lst + echo ${ifname} +} + vnet_mkjail() { jailname=$1 Modified: head/tests/sys/net/Makefile ============================================================================== --- head/tests/sys/net/Makefile Sun Feb 16 11:16:05 2020 (r357997) +++ head/tests/sys/net/Makefile Sun Feb 16 13:16:40 2020 (r357998) @@ -5,11 +5,12 @@ TESTSDIR= ${TESTSBASE}/sys/net BINDIR= ${TESTSDIR} -ATF_TESTS_SH+= if_lagg_test +ATF_TESTS_C+= if_epair +ATF_TESTS_SH+= if_bridge_test ATF_TESTS_SH+= if_clone_test +ATF_TESTS_SH+= if_lagg_test ATF_TESTS_SH+= if_tun_test ATF_TESTS_SH+= if_vlan -ATF_TESTS_C+= if_epair TESTS_SUBDIRS+= routing Added: head/tests/sys/net/if_bridge_test.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/net/if_bridge_test.sh Sun Feb 16 13:16:40 2020 (r357998) @@ -0,0 +1,74 @@ +# $FreeBSD$ +# +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright (c) 2020 The FreeBSD Foundation +# All rights reserved. +# +# This software was developed by Kristof Provost 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. + +. $(atf_get_srcdir)/../common/vnet.subr + +atf_test_case "bridge_transmit_ipv4_unicast" "cleanup" +bridge_transmit_ipv4_unicast_head() +{ + atf_set descr 'bridge_transmit_ipv4_unicast bridging test' + atf_set require.user root +} + +bridge_transmit_ipv4_unicast_body() +{ + vnet_init + + epair_alcatraz=$(vnet_mkepair) + epair_singsing=$(vnet_mkepair) + + vnet_mkjail alcatraz ${epair_alcatraz}b + vnet_mkjail singsing ${epair_singsing}b + + jexec alcatraz ifconfig ${epair_alcatraz}b 192.0.2.1/24 up + jexec singsing ifconfig ${epair_singsing}b 192.0.2.2/24 up + + bridge=$(vnet_mkbridge) + + ifconfig ${bridge} up + ifconfig ${epair_alcatraz}a up + ifconfig ${epair_singsing}a up + ifconfig ${bridge} addm ${epair_alcatraz}a + ifconfig ${bridge} addm ${epair_singsing}a + + atf_check -s exit:0 -o ignore jexec alcatraz ping -c 3 -t 1 192.0.2.2 + atf_check -s exit:0 -o ignore jexec singsing ping -c 3 -t 1 192.0.2.1 +} + +bridge_transmit_ipv4_unicast_cleanup() +{ + vnet_cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case "bridge_transmit_ipv4_unicast" +} From owner-svn-src-all@freebsd.org Sun Feb 16 14:33:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 50EF725FA35; Sun, 16 Feb 2020 14:33:56 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48L8kW5tRfz4FSL; Sun, 16 Feb 2020 14:33:55 +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 A038F272CB; Sun, 16 Feb 2020 14:33:55 +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 01GEXtUY081683; Sun, 16 Feb 2020 14:33:55 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GEXtCa081682; Sun, 16 Feb 2020 14:33:55 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <202002161433.01GEXtCa081682@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Sun, 16 Feb 2020 14:33:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358001 - head/contrib/capsicum-test X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: head/contrib/capsicum-test X-SVN-Commit-Revision: 358001 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 14:33:56 -0000 Author: lwhsu Date: Sun Feb 16 14:33:55 2020 New Revision: 358001 URL: https://svnweb.freebsd.org/changeset/base/358001 Log: Temporarily skip flakey test in sys.capsicum.capsicum-test.main: PipePdfork.WildcardWait PR: 244165 Sponsored by: The FreeBSD Foundation Modified: head/contrib/capsicum-test/procdesc.cc Modified: head/contrib/capsicum-test/procdesc.cc ============================================================================== --- head/contrib/capsicum-test/procdesc.cc Sun Feb 16 13:23:54 2020 (r358000) +++ head/contrib/capsicum-test/procdesc.cc Sun Feb 16 14:33:55 2020 (r358001) @@ -763,6 +763,7 @@ TEST_F(PipePdfork, ModeBits) { #endif TEST_F(PipePdfork, WildcardWait) { + TEST_SKIPPED("https://bugs.freebsd.org/244165"); // TODO(FreeBSD): make wildcard wait ignore pdfork()ed children // https://bugs.freebsd.org/201054 TerminateChild(); From owner-svn-src-all@freebsd.org Sun Feb 16 15:43:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 20D402391A2; Sun, 16 Feb 2020 15:43:29 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LBGn00LBz48Lc; Sun, 16 Feb 2020 15:43:29 +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 EAF8127FE5; Sun, 16 Feb 2020 15:43:28 +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 01GFhSmr023312; Sun, 16 Feb 2020 15:43:28 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GFhSTa023311; Sun, 16 Feb 2020 15:43:28 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002161543.01GFhSTa023311@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sun, 16 Feb 2020 15:43:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358002 - head/sys/modules X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/modules X-SVN-Commit-Revision: 358002 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 15:43:29 -0000 Author: kib Date: Sun Feb 16 15:43:28 2020 New Revision: 358002 URL: https://svnweb.freebsd.org/changeset/base/358002 Log: Fix build of some modules for some kernel configs. Namely, vmm.ko cannot be compiled without 'option SMP', the code uses IPIs and LAPIC. Recently systrace was forced over any configs, check for KDTRACE_HOOK before compiling the dtrace/ modules. Reviewed by: markj Discussed with: mjg Tested by: se (previous version) Sponsored by: The FreeBSD Foundation (kib) Differential revision: https://reviews.freebsd.org/D23699 Modified: head/sys/modules/Makefile Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Sun Feb 16 14:33:55 2020 (r358001) +++ head/sys/modules/Makefile Sun Feb 16 15:43:28 2020 (r358002) @@ -8,6 +8,8 @@ SUBDIR_PARALLEL= # Modules that include binary-only blobs of microcode should be selectable by # MK_SOURCELESS_UCODE option (see below). +.include "${SYSDIR}/conf/config.mk" + .if defined(MODULES_OVERRIDE) && !defined(ALL_MODULES) SUBDIR=${MODULES_OVERRIDE} .else @@ -396,8 +398,10 @@ _autofs= autofs .if ${MK_CDDL} != "no" || defined(ALL_MODULES) .if (${MACHINE_CPUARCH} != "arm" || ${MACHINE_ARCH:Marmv[67]*} != "") && \ ${MACHINE_CPUARCH} != "mips" +.if ${KERN_OPTS:MKDTRACE_HOOKS} SUBDIR+= dtrace .endif +.endif SUBDIR+= opensolaris .endif @@ -712,9 +716,11 @@ _sgx_linux= sgx_linux _smartpqi= smartpqi .if ${MK_BHYVE} != "no" || defined(ALL_MODULES) +.if ${KERN_OPTS:MSMP} _vmm= vmm .endif .endif +.endif .if ${MACHINE_CPUARCH} == "i386" # XXX some of these can move to the general case when de-i386'ed @@ -798,8 +804,6 @@ afterinstall: .PHONY ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \ fi .endif - -.include "${SYSDIR}/conf/config.mk" SUBDIR:= ${SUBDIR:u:O} From owner-svn-src-all@freebsd.org Sun Feb 16 16:07:40 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6FF3C239B35; Sun, 16 Feb 2020 16:07:40 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48LBpg6pwGz4PlN; Sun, 16 Feb 2020 16:07:39 +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 01GG7UGG050149 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Sun, 16 Feb 2020 18:07:33 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 01GG7UGG050149 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id 01GG7Ujr050148; Sun, 16 Feb 2020 18:07:30 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sun, 16 Feb 2020 18:07:30 +0200 From: Konstantin Belousov To: Mateusz Guzik Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r357989 - head/sys/sys Message-ID: <20200216160730.GX4808@kib.kiev.ua> References: <202002160314.01G3Ete9074777@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202002160314.01G3Ete9074777@repo.freebsd.org> X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on tom.home X-Rspamd-Queue-Id: 48LBpg6pwGz4PlN X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.994,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 16:07:40 -0000 On Sun, Feb 16, 2020 at 03:14:55AM +0000, Mateusz Guzik wrote: > Author: mjg > Date: Sun Feb 16 03:14:55 2020 > New Revision: 357989 > URL: https://svnweb.freebsd.org/changeset/base/357989 > > Log: > refcount: add missing release fence to refcount_release_if_gt I think you should update comment in refcount_release_last() to point to if_gt() as well. And probably annotate this fence with a pointer to acquire in release_last(). > > The CPU succeeding in releasing the not last reference can still have pending > stores to the object protected by the affected counter. This opens a time > window where another CPU can release the last reference and free the object, > resulting in use-after-free. On top of that this prevents the compiler from > generating more accesses to the object regardless of how atomic_fcmpset_rel_int > is implemented (of course as long as it provides the release semantic). > > Reviewed by: markj > > Modified: > head/sys/sys/refcount.h > > Modified: head/sys/sys/refcount.h > ============================================================================== > --- head/sys/sys/refcount.h Sun Feb 16 01:07:19 2020 (r357988) > +++ head/sys/sys/refcount.h Sun Feb 16 03:14:55 2020 (r357989) > @@ -198,7 +198,7 @@ refcount_release_if_gt(volatile u_int *count, u_int n) > return (false); > if (__predict_false(REFCOUNT_SATURATED(old))) > return (true); > - if (atomic_fcmpset_int(count, &old, old - 1)) > + if (atomic_fcmpset_rel_int(count, &old, old - 1)) > return (true); > } > } From owner-svn-src-all@freebsd.org Sun Feb 16 16:49:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D9C0623A5B6; Sun, 16 Feb 2020 16:49:29 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LCkx5T7Fz3PQ8; Sun, 16 Feb 2020 16:49:29 +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 B219828B1C; Sun, 16 Feb 2020 16:49:29 +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 01GGnT38059317; Sun, 16 Feb 2020 16:49:29 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GGnTPA059315; Sun, 16 Feb 2020 16:49:29 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <202002161649.01GGnTPA059315@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Sun, 16 Feb 2020 16:49:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358003 - head/tests/sys/net X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: head/tests/sys/net X-SVN-Commit-Revision: 358003 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 16:49:29 -0000 Author: lwhsu Date: Sun Feb 16 16:49:29 2020 New Revision: 358003 URL: https://svnweb.freebsd.org/changeset/base/358003 Log: Temporarily skip sys.net.if_lagg_test.lacp_linkstate_destroy_stress on i386 CI It panics kernel PR: 244168 Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/net/if_lagg_test.sh Modified: head/tests/sys/net/if_lagg_test.sh ============================================================================== --- head/tests/sys/net/if_lagg_test.sh Sun Feb 16 15:43:28 2020 (r358002) +++ head/tests/sys/net/if_lagg_test.sh Sun Feb 16 16:49:29 2020 (r358003) @@ -193,6 +193,11 @@ lacp_linkstate_destroy_stress_head() } lacp_linkstate_destroy_stress_body() { + if [ "$(atf_config_get ci false)" = "true" ] && \ + [ "$(uname -p)" = "i386" ]; then + atf_skip "https://bugs.freebsd.org/244168" + fi + local TAP0 TAP1 LAGG MAC SRCDIR # Configure the lagg interface to use an RFC5737 nonrouteable addresses From owner-svn-src-all@freebsd.org Sun Feb 16 17:11:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9869823B060; Sun, 16 Feb 2020 17:11:55 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LDDq3cS1z49Hx; Sun, 16 Feb 2020 17:11:55 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7680029156; Sun, 16 Feb 2020 17:11:55 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01GHBtEB077080; Sun, 16 Feb 2020 17:11:55 GMT (envelope-from kaktus@FreeBSD.org) Received: (from kaktus@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GHBspN077077; Sun, 16 Feb 2020 17:11:54 GMT (envelope-from kaktus@FreeBSD.org) Message-Id: <202002161711.01GHBspN077077@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kaktus set sender to kaktus@FreeBSD.org using -f From: Pawel Biernacki Date: Sun, 16 Feb 2020 17:11:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358004 - in head/sys/dev: drm2 pci X-SVN-Group: head X-SVN-Commit-Author: kaktus X-SVN-Commit-Paths: in head/sys/dev: drm2 pci X-SVN-Commit-Revision: 358004 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 17:11:55 -0000 Author: kaktus Date: Sun Feb 16 17:11:54 2020 New Revision: 358004 URL: https://svnweb.freebsd.org/changeset/base/358004 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (5 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Reviewed by: imp, kib Approved by: kib (mentor) Differential Revision: https://reviews.freebsd.org/D23633 Modified: head/sys/dev/drm2/drm_pci.c head/sys/dev/drm2/drm_sysctl.c head/sys/dev/pci/pci.c Modified: head/sys/dev/drm2/drm_pci.c ============================================================================== --- head/sys/dev/drm2/drm_pci.c Sun Feb 16 16:49:29 2020 (r358003) +++ head/sys/dev/drm2/drm_pci.c Sun Feb 16 17:11:54 2020 (r358004) @@ -42,7 +42,8 @@ __FBSDID("$FreeBSD$"); #include static int drm_msi = 1; /* Enable by default. */ -SYSCTL_NODE(_hw, OID_AUTO, drm, CTLFLAG_RW, NULL, "DRM device"); +SYSCTL_NODE(_hw, OID_AUTO, drm, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, + "DRM device"); SYSCTL_INT(_hw_drm, OID_AUTO, msi, CTLFLAG_RDTUN, &drm_msi, 1, "Enable MSI interrupts for drm devices"); Modified: head/sys/dev/drm2/drm_sysctl.c ============================================================================== --- head/sys/dev/drm2/drm_sysctl.c Sun Feb 16 16:49:29 2020 (r358003) +++ head/sys/dev/drm2/drm_sysctl.c Sun Feb 16 17:11:54 2020 (r358004) @@ -69,7 +69,7 @@ int drm_sysctl_init(struct drm_device *dev) /* Add the sysctl node for DRI if it doesn't already exist */ drioid = SYSCTL_ADD_NODE(&info->ctx, SYSCTL_CHILDREN(&sysctl___hw), OID_AUTO, - "dri", CTLFLAG_RW, NULL, "DRI Graphics"); + "dri", CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, "DRI Graphics"); if (!drioid) { free(dev->sysctl, DRM_MEM_DRIVER); dev->sysctl = NULL; @@ -92,23 +92,17 @@ int drm_sysctl_init(struct drm_device *dev) info->name[0] = '0' + i; info->name[1] = 0; top = SYSCTL_ADD_NODE(&info->ctx, SYSCTL_CHILDREN(drioid), - OID_AUTO, info->name, CTLFLAG_RW, NULL, NULL); + OID_AUTO, info->name, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, NULL); if (!top) { drm_sysctl_cleanup(dev); return (-ENOMEM); } for (i = 0; i < DRM_SYSCTL_ENTRIES; i++) { - oid = SYSCTL_ADD_OID(&info->ctx, - SYSCTL_CHILDREN(top), - OID_AUTO, - drm_sysctl_list[i].name, - CTLTYPE_STRING | CTLFLAG_RD, - dev, - 0, - drm_sysctl_list[i].f, - "A", - NULL); + oid = SYSCTL_ADD_OID(&info->ctx, SYSCTL_CHILDREN(top), + OID_AUTO, drm_sysctl_list[i].name, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + dev, 0, drm_sysctl_list[i].f, "A", NULL); if (!oid) { drm_sysctl_cleanup(dev); return (-ENOMEM); Modified: head/sys/dev/pci/pci.c ============================================================================== --- head/sys/dev/pci/pci.c Sun Feb 16 16:49:29 2020 (r358003) +++ head/sys/dev/pci/pci.c Sun Feb 16 17:11:54 2020 (r358004) @@ -332,7 +332,8 @@ uint32_t pci_numdevs = 0; static int pcie_chipset, pcix_chipset; /* sysctl vars */ -SYSCTL_NODE(_hw, OID_AUTO, pci, CTLFLAG_RD, 0, "PCI bus tuning parameters"); +SYSCTL_NODE(_hw, OID_AUTO, pci, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "PCI bus tuning parameters"); static int pci_enable_io_modes = 1; SYSCTL_INT(_hw_pci, OID_AUTO, enable_io_modes, CTLFLAG_RWTUN, From owner-svn-src-all@freebsd.org Sun Feb 16 17:36:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C423A23B5C8; Sun, 16 Feb 2020 17:36:17 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LDmw6Ps3z4RvG; Sun, 16 Feb 2020 17:36:16 +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 D6E37295F6; Sun, 16 Feb 2020 17:36:16 +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 01GHaGxV089855; Sun, 16 Feb 2020 17:36:16 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GHaGUC089854; Sun, 16 Feb 2020 17:36:16 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <202002161736.01GHaGUC089854@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Sun, 16 Feb 2020 17:36:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358005 - head/tests/sys/netinet6/frag6 X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: head/tests/sys/netinet6/frag6 X-SVN-Commit-Revision: 358005 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 17:36:17 -0000 Author: lwhsu Date: Sun Feb 16 17:36:16 2020 New Revision: 358005 URL: https://svnweb.freebsd.org/changeset/base/358005 Log: Temporarily skip flakey test case sys.netinet6.frag6.frag6_07.frag6_07 in CI PR: 244170 Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/netinet6/frag6/frag6_07.sh Modified: head/tests/sys/netinet6/frag6/frag6_07.sh ============================================================================== --- head/tests/sys/netinet6/frag6/frag6_07.sh Sun Feb 16 17:11:54 2020 (r358004) +++ head/tests/sys/netinet6/frag6/frag6_07.sh Sun Feb 16 17:36:16 2020 (r358005) @@ -219,6 +219,9 @@ frag6_07_head() { } frag6_07_body() { + if [ "$(atf_config_get ci false)" = "true" ]; then + atf_skip "https://bugs.freebsd.org/244170" + fi frag6_body 7 frag6_07_check_stats } From owner-svn-src-all@freebsd.org Sun Feb 16 17:55:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0FC6B23BB53; Sun, 16 Feb 2020 17:55:33 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LFC86lglz3CjT; Sun, 16 Feb 2020 17:55:32 +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 E2EF129A07; Sun, 16 Feb 2020 17:55:32 +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 01GHtWQ8001588; Sun, 16 Feb 2020 17:55:32 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GHtWL5001587; Sun, 16 Feb 2020 17:55:32 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <202002161755.01GHtWL5001587@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Sun, 16 Feb 2020 17:55:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358006 - head/tests/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: head/tests/sys/netinet X-SVN-Commit-Revision: 358006 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 17:55:33 -0000 Author: lwhsu Date: Sun Feb 16 17:55:32 2020 New Revision: 358006 URL: https://svnweb.freebsd.org/changeset/base/358006 Log: Temporarily skip flakey test case sys.netinet.fibs_test.udp_dontroute6 in CI PR: 244172 Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/netinet/fibs_test.sh Modified: head/tests/sys/netinet/fibs_test.sh ============================================================================== --- head/tests/sys/netinet/fibs_test.sh Sun Feb 16 17:36:16 2020 (r358005) +++ head/tests/sys/netinet/fibs_test.sh Sun Feb 16 17:55:32 2020 (r358006) @@ -626,6 +626,9 @@ udp_dontroute_head() udp_dontroute_body() { + if [ "$(atf_config_get ci false)" = "true" ]; then + atf_skip "https://bugs.freebsd.org/244172" + fi # Configure the TAP interface to use an RFC5737 nonrouteable address # and a non-default fib ADDR0="192.0.2.2" From owner-svn-src-all@freebsd.org Sun Feb 16 18:20:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9D41323D284; Sun, 16 Feb 2020 18:20:11 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LFlZ5xZLz433M; Sun, 16 Feb 2020 18:20:10 +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 A06C229E69; Sun, 16 Feb 2020 18:20:10 +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 01GIKAoV018392; Sun, 16 Feb 2020 18:20:10 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GIKAKl018391; Sun, 16 Feb 2020 18:20:10 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202002161820.01GIKAKl018391@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 16 Feb 2020 18:20:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358007 - 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: 358007 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 18:20:11 -0000 Author: mjg Date: Sun Feb 16 18:20:09 2020 New Revision: 358007 URL: https://svnweb.freebsd.org/changeset/base/358007 Log: refcount: update comments about fencing when releasing counts after r357989 Requested by: kib Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23719 Modified: head/sys/kern/kern_synch.c head/sys/sys/refcount.h Modified: head/sys/kern/kern_synch.c ============================================================================== --- head/sys/kern/kern_synch.c Sun Feb 16 17:55:32 2020 (r358006) +++ head/sys/kern/kern_synch.c Sun Feb 16 18:20:09 2020 (r358007) @@ -368,8 +368,8 @@ refcount_release_last(volatile u_int *count, u_int n, /* * Last reference. Signal the user to call the destructor. * - * Ensure that the destructor sees all updates. The fence_rel - * at the start of refcount_releasen synchronizes with this fence. + * Ensure that the destructor sees all updates. This synchronizes + * with release fences from all routines which drop the count. */ atomic_thread_fence_acq(); return (true); Modified: head/sys/sys/refcount.h ============================================================================== --- head/sys/sys/refcount.h Sun Feb 16 17:55:32 2020 (r358006) +++ head/sys/sys/refcount.h Sun Feb 16 18:20:09 2020 (r358007) @@ -119,6 +119,9 @@ refcount_releasen(volatile u_int *count, u_int n) KASSERT(n < REFCOUNT_SATURATION_VALUE / 2, ("refcount_releasen: n=%u too large", n)); + /* + * Paired with acquire fence in refcount_release_last. + */ atomic_thread_fence_rel(); old = atomic_fetchadd_int(count, -n); if (__predict_false(n >= REFCOUNT_COUNT(old) || @@ -198,6 +201,9 @@ refcount_release_if_gt(volatile u_int *count, u_int n) return (false); if (__predict_false(REFCOUNT_SATURATED(old))) return (true); + /* + * Paired with acquire fence in refcount_release_last. + */ if (atomic_fcmpset_rel_int(count, &old, old - 1)) return (true); } From owner-svn-src-all@freebsd.org Sun Feb 16 21:23:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8343E2435BD; Sun, 16 Feb 2020 21:23:24 +0000 (UTC) (envelope-from jrm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LKq010PCz4Lqh; Sun, 16 Feb 2020 21:23:23 +0000 (UTC) (envelope-from jrm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EDC2B2C2A9; Sun, 16 Feb 2020 21:23:23 +0000 (UTC) (envelope-from jrm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01GLNNPs032626; Sun, 16 Feb 2020 21:23:23 GMT (envelope-from jrm@FreeBSD.org) Received: (from jrm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GLNNYU032625; Sun, 16 Feb 2020 21:23:23 GMT (envelope-from jrm@FreeBSD.org) Message-Id: <202002162123.01GLNNYU032625@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jrm set sender to jrm@FreeBSD.org using -f From: Joseph Mingrone Date: Sun, 16 Feb 2020 21:23:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r358008 - svnadmin/conf X-SVN-Group: svnadmin X-SVN-Commit-Author: jrm X-SVN-Commit-Paths: svnadmin/conf X-SVN-Commit-Revision: 358008 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 21:23:24 -0000 Author: jrm (ports committer) Date: Sun Feb 16 21:23:23 2020 New Revision: 358008 URL: https://svnweb.freebsd.org/changeset/base/358008 Log: Take in commit bit of Gábor Kovesdan (gabor) for safe keeping Approved by: core (implicit) Modified: svnadmin/conf/access Modified: svnadmin/conf/access ============================================================================== --- svnadmin/conf/access Sun Feb 16 18:20:09 2020 (r358007) +++ svnadmin/conf/access Sun Feb 16 21:23:23 2020 (r358008) @@ -76,7 +76,6 @@ eugen fabient freqlabs fsu -gabor devnull gad gallatin ganbold From owner-svn-src-all@freebsd.org Sun Feb 16 23:11:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 86E20245F7F; Sun, 16 Feb 2020 23:11:01 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LNC86dQtz4cJt; Sun, 16 Feb 2020 23:11:00 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BDC9E2D764; Sun, 16 Feb 2020 23:11:00 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01GNB06i095543; Sun, 16 Feb 2020 23:11:00 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01GNAxGT095504; Sun, 16 Feb 2020 23:10:59 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <202002162310.01GNAxGT095504@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Sun, 16 Feb 2020 23:10:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358009 - in head/sys: cam/ata cam/nvme cam/scsi ufs/ffs ufs/ufs X-SVN-Group: head X-SVN-Commit-Author: scottl X-SVN-Commit-Paths: in head/sys: cam/ata cam/nvme cam/scsi ufs/ffs ufs/ufs X-SVN-Commit-Revision: 358009 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Feb 2020 23:11:01 -0000 Author: scottl Date: Sun Feb 16 23:10:59 2020 New Revision: 358009 URL: https://svnweb.freebsd.org/changeset/base/358009 Log: Add rudamentary support for UFS to probe whether a block device supports the BIO_SPEEDUP command. Add complimentary support to the CAM periphs that support it. This is a redo of r357710. Modified: head/sys/cam/ata/ata_da.c head/sys/cam/nvme/nvme_da.c head/sys/cam/scsi/scsi_da.c head/sys/ufs/ffs/ffs_softdep.c head/sys/ufs/ffs/ffs_vfsops.c head/sys/ufs/ufs/ufsmount.h Modified: head/sys/cam/ata/ata_da.c ============================================================================== --- head/sys/cam/ata/ata_da.c Sun Feb 16 21:23:23 2020 (r358008) +++ head/sys/cam/ata/ata_da.c Sun Feb 16 23:10:59 2020 (r358009) @@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #endif /* _KERNEL */ @@ -878,6 +879,7 @@ static int ada_spindown_shutdown = ADA_DEFAULT_SPINDOW static int ada_spindown_suspend = ADA_DEFAULT_SPINDOWN_SUSPEND; static int ada_read_ahead = ADA_DEFAULT_READ_AHEAD; static int ada_write_cache = ADA_DEFAULT_WRITE_CACHE; +static int ada_enable_biospeedup = 1; static SYSCTL_NODE(_kern_cam, OID_AUTO, ada, CTLFLAG_RD, 0, "CAM Direct Access Disk driver"); @@ -895,6 +897,8 @@ SYSCTL_INT(_kern_cam_ada, OID_AUTO, read_ahead, CTLFLA &ada_read_ahead, 0, "Enable disk read-ahead"); SYSCTL_INT(_kern_cam_ada, OID_AUTO, write_cache, CTLFLAG_RWTUN, &ada_write_cache, 0, "Enable disk write cache"); +SYSCTL_INT(_kern_cam_ada, OID_AUTO, enable_biospeedup, CTLFLAG_RDTUN, + &ada_enable_biospeedup, 0, "Enable BIO_SPEEDUP processing"); /* * ADA_ORDEREDTAG_INTERVAL determines how often, relative @@ -1565,6 +1569,9 @@ adagetattr(struct bio *bp) { int ret; struct cam_periph *periph; + + if (g_handleattr_int(bp, "GEOM::canspeedup", ada_enable_biospeedup)) + return (EJUSTRETURN); periph = (struct cam_periph *)bp->bio_disk->d_drv1; cam_periph_lock(periph); Modified: head/sys/cam/nvme/nvme_da.c ============================================================================== --- head/sys/cam/nvme/nvme_da.c Sun Feb 16 21:23:23 2020 (r358008) +++ head/sys/cam/nvme/nvme_da.c Sun Feb 16 23:10:59 2020 (r358009) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #endif /* _KERNEL */ @@ -174,9 +175,12 @@ static SYSCTL_NODE(_kern_cam, OID_AUTO, nda, CTLFLAG_R static int nda_send_ordered = NDA_DEFAULT_SEND_ORDERED; static int nda_default_timeout = NDA_DEFAULT_TIMEOUT; static int nda_max_trim_entries = NDA_MAX_TRIM_ENTRIES; +static int nda_enable_biospeedup = 1; SYSCTL_INT(_kern_cam_nda, OID_AUTO, max_trim, CTLFLAG_RDTUN, &nda_max_trim_entries, NDA_MAX_TRIM_ENTRIES, "Maximum number of BIO_DELETE to send down as a DSM TRIM."); +SYSCTL_INT(_kern_cam_nda, OID_AUTO, enable_biospeedup, CTLFLAG_RDTUN, + &nda_enable_biospeedup, 0, "Enable BIO_SPEEDUP processing"); /* * All NVMe media is non-rotational, so all nvme device instances @@ -699,6 +703,9 @@ ndagetattr(struct bio *bp) { int ret; struct cam_periph *periph; + + if (g_handleattr_int(bp, "GEOM::canspeedup", nda_enable_biospeedup)) + return (EJUSTRETURN); periph = (struct cam_periph *)bp->bio_disk->d_drv1; cam_periph_lock(periph); Modified: head/sys/cam/scsi/scsi_da.c ============================================================================== --- head/sys/cam/scsi/scsi_da.c Sun Feb 16 21:23:23 2020 (r358008) +++ head/sys/cam/scsi/scsi_da.c Sun Feb 16 23:10:59 2020 (r358009) @@ -1547,6 +1547,7 @@ static int da_default_timeout = DA_DEFAULT_TIMEOUT; static sbintime_t da_default_softtimeout = DA_DEFAULT_SOFTTIMEOUT; static int da_send_ordered = DA_DEFAULT_SEND_ORDERED; static int da_disable_wp_detection = 0; +static int da_enable_biospeedup = 1; static SYSCTL_NODE(_kern_cam, OID_AUTO, da, CTLFLAG_RD, 0, "CAM Direct Access Disk driver"); @@ -1561,6 +1562,8 @@ SYSCTL_INT(_kern_cam_da, OID_AUTO, send_ordered, CTLFL SYSCTL_INT(_kern_cam_da, OID_AUTO, disable_wp_detection, CTLFLAG_RWTUN, &da_disable_wp_detection, 0, "Disable detection of write-protected disks"); +SYSCTL_INT(_kern_cam_da, OID_AUTO, enable_biospeedup, CTLFLAG_RDTUN, + &da_enable_biospeedup, 0, "Enable BIO_SPEEDUP processing"); SYSCTL_PROC(_kern_cam_da, OID_AUTO, default_softtimeout, CTLTYPE_UINT | CTLFLAG_RW, NULL, 0, dasysctlsofttimeout, "I", @@ -1966,6 +1969,9 @@ dagetattr(struct bio *bp) { int ret; struct cam_periph *periph; + + if (g_handleattr_int(bp, "GEOM::canspeedup", da_enable_biospeedup)) + return (EJUSTRETURN); periph = (struct cam_periph *)bp->bio_disk->d_drv1; cam_periph_lock(periph); Modified: head/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- head/sys/ufs/ffs/ffs_softdep.c Sun Feb 16 21:23:23 2020 (r358008) +++ head/sys/ufs/ffs/ffs_softdep.c Sun Feb 16 23:10:59 2020 (r358009) @@ -1464,6 +1464,9 @@ softdep_send_speedup(struct ufsmount *ump, size_t shor { struct buf *bp; + if ((ump->um_flags & UM_CANSPEEDUP) == 0) + return; + bp = malloc(sizeof(*bp), M_TRIM, M_WAITOK | M_ZERO); bp->b_iocmd = BIO_SPEEDUP; bp->b_ioflags = flags; Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Sun Feb 16 21:23:23 2020 (r358008) +++ head/sys/ufs/ffs/ffs_vfsops.c Sun Feb 16 23:10:59 2020 (r358009) @@ -794,7 +794,7 @@ ffs_mountfs(devvp, mp, td) struct ucred *cred; struct g_consumer *cp; struct mount *nmp; - int candelete; + int candelete, canspeedup; off_t loc; fs = NULL; @@ -1009,6 +1009,12 @@ ffs_mountfs(devvp, mp, td) ump->um_trimhash = hashinit(MAXTRIMIO, M_TRIM, &ump->um_trimlisthashsize); } + } + + len = sizeof(int); + if (g_io_getattr("GEOM::canspeedup", cp, &len, &canspeedup) == 0) { + if (canspeedup) + ump->um_flags |= UM_CANSPEEDUP; } ump->um_mountp = mp; Modified: head/sys/ufs/ufs/ufsmount.h ============================================================================== --- head/sys/ufs/ufs/ufsmount.h Sun Feb 16 21:23:23 2020 (r358008) +++ head/sys/ufs/ufs/ufsmount.h Sun Feb 16 23:10:59 2020 (r358009) @@ -131,6 +131,7 @@ struct ufsmount { */ #define UM_CANDELETE 0x00000001 /* devvp supports TRIM */ #define UM_WRITESUSPENDED 0x00000002 /* suspension in progress */ +#define UM_CANSPEEDUP 0x00000004 /* devvp supports SPEEDUP */ /* * function prototypes From owner-svn-src-all@freebsd.org Mon Feb 17 01:06:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6E8A6248143; Mon, 17 Feb 2020 01:06:19 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LQmC0vP6z4NBg; Mon, 17 Feb 2020 01:06:19 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 142A12EBBC; Mon, 17 Feb 2020 01:06:19 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01H16IC6064406; Mon, 17 Feb 2020 01:06:18 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01H16IMK064405; Mon, 17 Feb 2020 01:06:18 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002170106.01H16IMK064405@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Mon, 17 Feb 2020 01:06:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358010 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358010 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 01:06:19 -0000 Author: jeff Date: Mon Feb 17 01:06:18 2020 New Revision: 358010 URL: https://svnweb.freebsd.org/changeset/base/358010 Log: UMA has become more particular about zone types. Use the right allocator calls in uma_zwait(). Modified: head/sys/vm/uma_core.c Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Sun Feb 16 23:10:59 2020 (r358009) +++ head/sys/vm/uma_core.c Mon Feb 17 01:06:18 2020 (r358010) @@ -2944,10 +2944,13 @@ uma_zdestroy(uma_zone_t zone) void uma_zwait(uma_zone_t zone) { - void *item; - item = uma_zalloc_arg(zone, NULL, M_WAITOK); - uma_zfree(zone, item); + if ((zone->uz_flags & UMA_ZONE_SMR) != 0) + uma_zfree_smr(zone, uma_zalloc_smr(zone, M_WAITOK)); + else if ((zone->uz_flags & UMA_ZONE_PCPU) != 0) + uma_zfree_pcpu(zone, uma_zalloc_pcpu(zone, M_WAITOK)); + else + uma_zfree(zone, uma_zalloc(zone, M_WAITOK)); } void * From owner-svn-src-all@freebsd.org Mon Feb 17 01:08:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C0F44248228; Mon, 17 Feb 2020 01:08:01 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LQp93lmRz4Ppl; Mon, 17 Feb 2020 01:08:01 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2598B2EBBE; Mon, 17 Feb 2020 01:08:01 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01H181Vt064530; Mon, 17 Feb 2020 01:08:01 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01H18012064528; Mon, 17 Feb 2020 01:08:00 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002170108.01H18012064528@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Mon, 17 Feb 2020 01:08:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358011 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358011 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 01:08:01 -0000 Author: jeff Date: Mon Feb 17 01:08:00 2020 New Revision: 358011 URL: https://svnweb.freebsd.org/changeset/base/358011 Log: Refactor _vm_page_busy_sleep to reduce the delta between the various sleep routines and introduce a variant that supports lockless sleep. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23612 Modified: head/sys/vm/vm_page.c head/sys/vm/vm_page.h Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Mon Feb 17 01:06:18 2020 (r358010) +++ head/sys/vm/vm_page.c Mon Feb 17 01:08:00 2020 (r358011) @@ -174,7 +174,7 @@ static uma_zone_t fakepg_zone; static void vm_page_alloc_check(vm_page_t m); static bool _vm_page_busy_sleep(vm_object_t obj, vm_page_t m, - const char *wmesg, bool nonshared, bool locked); + vm_pindex_t pindex, const char *wmesg, int allocflags, bool locked); static void vm_page_clear_dirty_mask(vm_page_t m, vm_page_bits_t pagebits); static void vm_page_enqueue(vm_page_t m, uint8_t queue); static bool vm_page_free_prep(vm_page_t m); @@ -846,7 +846,8 @@ vm_page_acquire_flags(vm_page_t m, int allocflags) /* * vm_page_busy_sleep_flags * - * Sleep for busy according to VM_ALLOC_ parameters. + * Sleep for busy according to VM_ALLOC_ parameters. Returns true + * if the caller should retry and false otherwise. */ static bool vm_page_busy_sleep_flags(vm_object_t object, vm_page_t m, const char *wmesg, @@ -855,18 +856,19 @@ vm_page_busy_sleep_flags(vm_object_t object, vm_page_t if ((allocflags & VM_ALLOC_NOWAIT) != 0) return (false); + /* - * Reference the page before unlocking and - * sleeping so that the page daemon is less - * likely to reclaim it. + * Reference the page before unlocking and sleeping so that + * the page daemon is less likely to reclaim it. */ if ((allocflags & VM_ALLOC_NOCREAT) == 0) - vm_page_aflag_set(m, PGA_REFERENCED); - if (_vm_page_busy_sleep(object, m, wmesg, (allocflags & - VM_ALLOC_IGN_SBUSY) != 0, true)) + vm_page_reference(m); + + if (_vm_page_busy_sleep(object, m, m->pindex, wmesg, allocflags, true)) VM_OBJECT_WLOCK(object); if ((allocflags & VM_ALLOC_WAITFAIL) != 0) return (false); + return (true); } @@ -900,8 +902,8 @@ vm_page_busy_acquire(vm_page_t m, int allocflags) else locked = false; MPASS(locked || vm_page_wired(m)); - if (_vm_page_busy_sleep(obj, m, "vmpba", - (allocflags & VM_ALLOC_SBUSY) != 0, locked)) + if (_vm_page_busy_sleep(obj, m, m->pindex, "vmpba", allocflags, + locked) && locked) VM_OBJECT_WLOCK(obj); if ((allocflags & VM_ALLOC_WAITFAIL) != 0) return (false); @@ -1026,19 +1028,49 @@ vm_page_busy_sleep(vm_page_t m, const char *wmesg, boo VM_OBJECT_ASSERT_LOCKED(obj); vm_page_lock_assert(m, MA_NOTOWNED); - if (!_vm_page_busy_sleep(obj, m, wmesg, nonshared, true)) + if (!_vm_page_busy_sleep(obj, m, m->pindex, wmesg, + nonshared ? VM_ALLOC_SBUSY : 0 , true)) VM_OBJECT_DROP(obj); } /* + * vm_page_busy_sleep_unlocked: + * + * Sleep if the page is busy, using the page pointer as wchan. + * This is used to implement the hard-path of busying mechanism. + * + * If nonshared is true, sleep only if the page is xbusy. + * + * The object lock must not be held on entry. The operation will + * return if the page changes identity. + */ +void +vm_page_busy_sleep_unlocked(vm_object_t obj, vm_page_t m, vm_pindex_t pindex, + const char *wmesg, bool nonshared) +{ + + VM_OBJECT_ASSERT_UNLOCKED(obj); + vm_page_lock_assert(m, MA_NOTOWNED); + + _vm_page_busy_sleep(obj, m, pindex, wmesg, + nonshared ? VM_ALLOC_SBUSY : 0, false); +} + +/* * _vm_page_busy_sleep: * - * Internal busy sleep function. + * Internal busy sleep function. Verifies the page identity and + * lockstate against parameters. Returns true if it sleeps and + * false otherwise. + * + * If locked is true the lock will be dropped for any true returns + * and held for any false returns. */ static bool -_vm_page_busy_sleep(vm_object_t obj, vm_page_t m, const char *wmesg, - bool nonshared, bool locked) +_vm_page_busy_sleep(vm_object_t obj, vm_page_t m, vm_pindex_t pindex, + const char *wmesg, int allocflags, bool locked) { + bool xsleep; u_int x; /* @@ -1049,23 +1081,36 @@ _vm_page_busy_sleep(vm_object_t obj, vm_page_t m, cons if (locked) VM_OBJECT_DROP(obj); vm_object_busy_wait(obj, wmesg); - return (locked); + return (true); } - sleepq_lock(m); - x = m->busy_lock; - if (x == VPB_UNBUSIED || (nonshared && (x & VPB_BIT_SHARED) != 0) || - ((x & VPB_BIT_WAITERS) == 0 && - !atomic_cmpset_int(&m->busy_lock, x, x | VPB_BIT_WAITERS))) { - sleepq_release(m); + + if (!vm_page_busied(m)) return (false); - } + + xsleep = (allocflags & (VM_ALLOC_SBUSY | VM_ALLOC_IGN_SBUSY)) != 0; + sleepq_lock(m); + x = atomic_load_int(&m->busy_lock); + do { + /* + * If the page changes objects or becomes unlocked we can + * simply return. + */ + if (x == VPB_UNBUSIED || + (xsleep && (x & VPB_BIT_SHARED) != 0) || + m->object != obj || m->pindex != pindex) { + sleepq_release(m); + return (false); + } + if ((x & VPB_BIT_WAITERS) != 0) + break; + } while (!atomic_fcmpset_int(&m->busy_lock, &x, x | VPB_BIT_WAITERS)); if (locked) VM_OBJECT_DROP(obj); DROP_GIANT(); sleepq_add(m, NULL, wmesg, 0, 0); sleepq_wait(m, PVM); PICKUP_GIANT(); - return (locked); + return (true); } /* @@ -1343,7 +1388,7 @@ vm_page_readahead_finish(vm_page_t m) * be locked. */ int -vm_page_sleep_if_busy(vm_page_t m, const char *msg) +vm_page_sleep_if_busy(vm_page_t m, const char *wmesg) { vm_object_t obj; @@ -1358,8 +1403,7 @@ vm_page_sleep_if_busy(vm_page_t m, const char *msg) * held by the callers. */ obj = m->object; - if (vm_page_busied(m) || (obj != NULL && obj->busy)) { - vm_page_busy_sleep(m, msg, false); + if (_vm_page_busy_sleep(obj, m, m->pindex, wmesg, 0, true)) { VM_OBJECT_WLOCK(obj); return (TRUE); } @@ -1376,7 +1420,7 @@ vm_page_sleep_if_busy(vm_page_t m, const char *msg) * be locked. */ int -vm_page_sleep_if_xbusy(vm_page_t m, const char *msg) +vm_page_sleep_if_xbusy(vm_page_t m, const char *wmesg) { vm_object_t obj; @@ -1391,8 +1435,8 @@ vm_page_sleep_if_xbusy(vm_page_t m, const char *msg) * held by the callers. */ obj = m->object; - if (vm_page_xbusied(m) || (obj != NULL && obj->busy)) { - vm_page_busy_sleep(m, msg, true); + if (_vm_page_busy_sleep(obj, m, m->pindex, wmesg, VM_ALLOC_SBUSY, + true)) { VM_OBJECT_WLOCK(obj); return (TRUE); } Modified: head/sys/vm/vm_page.h ============================================================================== --- head/sys/vm/vm_page.h Mon Feb 17 01:06:18 2020 (r358010) +++ head/sys/vm/vm_page.h Mon Feb 17 01:08:00 2020 (r358011) @@ -591,6 +591,8 @@ bool vm_page_busy_acquire(vm_page_t m, int allocflags) void vm_page_busy_downgrade(vm_page_t m); int vm_page_busy_tryupgrade(vm_page_t m); void vm_page_busy_sleep(vm_page_t m, const char *msg, bool nonshared); +void vm_page_busy_sleep_unlocked(vm_object_t obj, vm_page_t m, + vm_pindex_t pindex, const char *wmesg, bool nonshared); void vm_page_free(vm_page_t m); void vm_page_free_zero(vm_page_t m); From owner-svn-src-all@freebsd.org Mon Feb 17 01:59:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1D28024921A; Mon, 17 Feb 2020 01:59:57 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LRy4323Pz4H0h; Mon, 17 Feb 2020 01:59:56 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 62AD62F51F; Mon, 17 Feb 2020 01:59:56 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01H1xuZN094851; Mon, 17 Feb 2020 01:59:56 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01H1xuKf094850; Mon, 17 Feb 2020 01:59:56 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002170159.01H1xuKf094850@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Mon, 17 Feb 2020 01:59:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358012 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358012 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 01:59:57 -0000 Author: jeff Date: Mon Feb 17 01:59:55 2020 New Revision: 358012 URL: https://svnweb.freebsd.org/changeset/base/358012 Log: Add a simple accessor that returns the bytes of memory consumed by a zone. Modified: head/sys/vm/uma.h head/sys/vm/uma_core.c Modified: head/sys/vm/uma.h ============================================================================== --- head/sys/vm/uma.h Mon Feb 17 01:08:00 2020 (r358011) +++ head/sys/vm/uma.h Mon Feb 17 01:59:55 2020 (r358012) @@ -671,6 +671,11 @@ void uma_prealloc(uma_zone_t zone, int itemcnt); int uma_zone_exhausted(uma_zone_t zone); /* + * Returns the bytes of memory consumed by the zone. + */ +size_t uma_zone_memory(uma_zone_t zone); + +/* * Common UMA_ZONE_PCPU zones. */ extern uma_zone_t pcpu_zone_int; Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Mon Feb 17 01:08:00 2020 (r358011) +++ head/sys/vm/uma_core.c Mon Feb 17 01:59:55 2020 (r358012) @@ -4681,6 +4681,27 @@ uma_prealloc(uma_zone_t zone, int items) } } +/* + * Returns a snapshot of memory consumption in bytes. + */ +size_t +uma_zone_memory(uma_zone_t zone) +{ + size_t sz; + int i; + + sz = 0; + if (zone->uz_flags & UMA_ZFLAG_CACHE) { + for (i = 0; i < vm_ndomains; i++) + sz += zone->uz_domain[i].uzd_nitems; + return (sz * zone->uz_size); + } + for (i = 0; i < vm_ndomains; i++) + sz += zone->uz_keg->uk_domain[i].ud_pages; + + return (sz * PAGE_SIZE); +} + /* See uma.h */ void uma_reclaim(int req) From owner-svn-src-all@freebsd.org Mon Feb 17 09:46:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 961382537A0; Mon, 17 Feb 2020 09:46:33 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LfJT3522z4G6h; Mon, 17 Feb 2020 09:46:33 +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 5E6E54FF4; Mon, 17 Feb 2020 09:46:33 +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 01H9kXwF078741; Mon, 17 Feb 2020 09:46:33 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01H9kWAh078738; Mon, 17 Feb 2020 09:46:32 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002170946.01H9kWAh078738@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 17 Feb 2020 09:46:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358013 - in head/sys: net netinet netinet6 X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in head/sys: net netinet netinet6 X-SVN-Commit-Revision: 358013 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 09:46:33 -0000 Author: hselasky Date: Mon Feb 17 09:46:32 2020 New Revision: 358013 URL: https://svnweb.freebsd.org/changeset/base/358013 Log: Fix kernel panic while trying to read multicast stream. When VIMAGE is enabled make sure the "m_pkthdr.rcvif" pointer is set for all mbufs being input by the IGMP/MLD6 code. Else there will be a NULL-pointer dereference in the netisr code when trying to set the VNET based on the incoming mbuf. Add an assert to catch this when queueing mbufs on a netisr to make debugging of similar cases easier. Found by: Vladislav V. Prodan PR: 244002 Reviewed by: bz@ MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/net/netisr.c head/sys/netinet/igmp.c head/sys/netinet6/mld6.c Modified: head/sys/net/netisr.c ============================================================================== --- head/sys/net/netisr.c Mon Feb 17 01:59:55 2020 (r358012) +++ head/sys/net/netisr.c Mon Feb 17 09:46:32 2020 (r358013) @@ -1056,6 +1056,8 @@ netisr_queue_src(u_int proto, uintptr_t source, struct if (m != NULL) { KASSERT(!CPU_ABSENT(cpuid), ("%s: CPU %u absent", __func__, cpuid)); + VNET_ASSERT(m->m_pkthdr.rcvif != NULL, + ("%s:%d rcvif == NULL: m=%p", __func__, __LINE__, m)); error = netisr_queue_internal(proto, m, cpuid); } else error = ENOBUFS; Modified: head/sys/netinet/igmp.c ============================================================================== --- head/sys/netinet/igmp.c Mon Feb 17 01:59:55 2020 (r358012) +++ head/sys/netinet/igmp.c Mon Feb 17 09:46:32 2020 (r358013) @@ -303,6 +303,7 @@ igmp_save_context(struct mbuf *m, struct ifnet *ifp) #ifdef VIMAGE m->m_pkthdr.PH_loc.ptr = ifp->if_vnet; #endif /* VIMAGE */ + m->m_pkthdr.rcvif = ifp; m->m_pkthdr.flowid = ifp->if_index; } Modified: head/sys/netinet6/mld6.c ============================================================================== --- head/sys/netinet6/mld6.c Mon Feb 17 01:59:55 2020 (r358012) +++ head/sys/netinet6/mld6.c Mon Feb 17 09:46:32 2020 (r358013) @@ -283,6 +283,7 @@ mld_save_context(struct mbuf *m, struct ifnet *ifp) #ifdef VIMAGE m->m_pkthdr.PH_loc.ptr = ifp->if_vnet; #endif /* VIMAGE */ + m->m_pkthdr.rcvif = ifp; m->m_pkthdr.flowid = ifp->if_index; } From owner-svn-src-all@freebsd.org Mon Feb 17 09:53:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 07DDE253B5F; Mon, 17 Feb 2020 09:53:24 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LfSM6TtNz4LWS; Mon, 17 Feb 2020 09:53:23 +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 D532D51DC; Mon, 17 Feb 2020 09:53:23 +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 01H9rNgA084452; Mon, 17 Feb 2020 09:53:23 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01H9rNU8084449; Mon, 17 Feb 2020 09:53:23 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002170953.01H9rNU8084449@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 17 Feb 2020 09:53:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358014 - in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 358014 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 09:53:24 -0000 Author: hselasky Date: Mon Feb 17 09:53:23 2020 New Revision: 358014 URL: https://svnweb.freebsd.org/changeset/base/358014 Log: MFC r357801: Add support for disabling and polling MSIX interrupts in mlx5core. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/mlx5/driver.h stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx5/driver.h ============================================================================== --- stable/12/sys/dev/mlx5/driver.h Mon Feb 17 09:46:32 2020 (r358013) +++ stable/12/sys/dev/mlx5/driver.h Mon Feb 17 09:53:23 2020 (r358014) @@ -1184,4 +1184,7 @@ static inline bool mlx5_rl_is_supported(struct mlx5_co } #endif +void mlx5_disable_interrupts(struct mlx5_core_dev *); +void mlx5_poll_interrupts(struct mlx5_core_dev *); + #endif /* MLX5_DRIVER_H */ Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Feb 17 09:46:32 2020 (r358013) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Feb 17 09:53:23 2020 (r358014) @@ -739,3 +739,28 @@ static void mlx5_port_general_notification_event(struc } } +void +mlx5_disable_interrupts(struct mlx5_core_dev *dev) +{ + int nvec = dev->priv.eq_table.num_comp_vectors + MLX5_EQ_VEC_COMP_BASE; + int x; + + for (x = 0; x != nvec; x++) + disable_irq(dev->priv.msix_arr[x].vector); +} + +void +mlx5_poll_interrupts(struct mlx5_core_dev *dev) +{ + struct mlx5_eq *eq; + + if (unlikely(dev->priv.disable_irqs != 0)) + return; + + mlx5_eq_int(dev, &dev->priv.eq_table.cmd_eq); + mlx5_eq_int(dev, &dev->priv.eq_table.async_eq); + mlx5_eq_int(dev, &dev->priv.eq_table.pages_eq); + + list_for_each_entry(eq, &dev->priv.eq_table.comp_eqs_list, list) + mlx5_eq_int(dev, eq); +} Modified: stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Feb 17 09:46:32 2020 (r358013) +++ stable/12/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Feb 17 09:53:23 2020 (r358014) @@ -1585,7 +1585,7 @@ done: return 0; } -static void mlx5_disable_interrupts(struct mlx5_core_dev *mdev) +static void mlx5_shutdown_disable_interrupts(struct mlx5_core_dev *mdev) { int nvec = mdev->priv.eq_table.num_comp_vectors + MLX5_EQ_VEC_COMP_BASE; int x; @@ -1609,7 +1609,7 @@ static void shutdown_one(struct pci_dev *pdev) set_bit(MLX5_INTERFACE_STATE_TEARDOWN, &dev->intf_state); /* disable all interrupts */ - mlx5_disable_interrupts(dev); + mlx5_shutdown_disable_interrupts(dev); err = mlx5_try_fast_unload(dev); if (err) From owner-svn-src-all@freebsd.org Mon Feb 17 09:54:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 500B2253C06; Mon, 17 Feb 2020 09:54:52 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LfV41RJdz4MRL; Mon, 17 Feb 2020 09:54:52 +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 0D54051DE; Mon, 17 Feb 2020 09:54:52 +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 01H9spJr084720; Mon, 17 Feb 2020 09:54:51 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01H9spNv084716; Mon, 17 Feb 2020 09:54:51 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002170954.01H9spNv084716@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 17 Feb 2020 09:54:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358015 - in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 358015 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 09:54:52 -0000 Author: hselasky Date: Mon Feb 17 09:54:50 2020 New Revision: 358015 URL: https://svnweb.freebsd.org/changeset/base/358015 Log: MFC r357801: Add support for disabling and polling MSIX interrupts in mlx5core. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Feb 17 09:53:23 2020 (r358014) +++ stable/11/sys/dev/mlx5/driver.h Mon Feb 17 09:54:50 2020 (r358015) @@ -1146,4 +1146,7 @@ static inline int mlx5_core_is_pf(struct mlx5_core_dev return !(dev->priv.pci_dev_data & MLX5_PCI_DEV_IS_VF); } +void mlx5_disable_interrupts(struct mlx5_core_dev *); +void mlx5_poll_interrupts(struct mlx5_core_dev *); + #endif /* MLX5_DRIVER_H */ Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Feb 17 09:53:23 2020 (r358014) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Feb 17 09:54:50 2020 (r358015) @@ -739,3 +739,28 @@ static void mlx5_port_general_notification_event(struc } } +void +mlx5_disable_interrupts(struct mlx5_core_dev *dev) +{ + int nvec = dev->priv.eq_table.num_comp_vectors + MLX5_EQ_VEC_COMP_BASE; + int x; + + for (x = 0; x != nvec; x++) + disable_irq(dev->priv.msix_arr[x].vector); +} + +void +mlx5_poll_interrupts(struct mlx5_core_dev *dev) +{ + struct mlx5_eq *eq; + + if (unlikely(dev->priv.disable_irqs != 0)) + return; + + mlx5_eq_int(dev, &dev->priv.eq_table.cmd_eq); + mlx5_eq_int(dev, &dev->priv.eq_table.async_eq); + mlx5_eq_int(dev, &dev->priv.eq_table.pages_eq); + + list_for_each_entry(eq, &dev->priv.eq_table.comp_eqs_list, list) + mlx5_eq_int(dev, eq); +} Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Feb 17 09:53:23 2020 (r358014) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Feb 17 09:54:50 2020 (r358015) @@ -1567,7 +1567,7 @@ done: return 0; } -static void mlx5_disable_interrupts(struct mlx5_core_dev *mdev) +static void mlx5_shutdown_disable_interrupts(struct mlx5_core_dev *mdev) { int nvec = mdev->priv.eq_table.num_comp_vectors + MLX5_EQ_VEC_COMP_BASE; int x; @@ -1591,7 +1591,7 @@ static void shutdown_one(struct pci_dev *pdev) set_bit(MLX5_INTERFACE_STATE_TEARDOWN, &dev->intf_state); /* disable all interrupts */ - mlx5_disable_interrupts(dev); + mlx5_shutdown_disable_interrupts(dev); err = mlx5_try_fast_unload(dev); if (err) From owner-svn-src-all@freebsd.org Mon Feb 17 09:57:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 27B83253D7B; Mon, 17 Feb 2020 09:57:05 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LfXc5TtNz4Nqc; Mon, 17 Feb 2020 09:57:04 +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 73F9D51E1; Mon, 17 Feb 2020 09:57:04 +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 01H9v4NE085130; Mon, 17 Feb 2020 09:57:04 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01H9v32r085127; Mon, 17 Feb 2020 09:57:03 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002170957.01H9v32r085127@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 17 Feb 2020 09:57:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358016 - stable/12/sys/dev/usb/controller X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/usb/controller X-SVN-Commit-Revision: 358016 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 09:57:05 -0000 Author: hselasky Date: Mon Feb 17 09:57:03 2020 New Revision: 358016 URL: https://svnweb.freebsd.org/changeset/base/358016 Log: MFC r357726: Add USB host controller PCI ID's for Hygon. Differential Revision: https://reviews.freebsd.org/D23564 Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/usb/controller/ehci_pci.c stable/12/sys/dev/usb/controller/ohci_pci.c stable/12/sys/dev/usb/controller/xhci_pci.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/usb/controller/ehci_pci.c ============================================================================== --- stable/12/sys/dev/usb/controller/ehci_pci.c Mon Feb 17 09:54:50 2020 (r358015) +++ stable/12/sys/dev/usb/controller/ehci_pci.c Mon Feb 17 09:57:03 2020 (r358016) @@ -86,6 +86,7 @@ __FBSDID("$FreeBSD$"); #define PCI_EHCI_VENDORID_APPLE 0x106b #define PCI_EHCI_VENDORID_ATI 0x1002 #define PCI_EHCI_VENDORID_CMDTECH 0x1095 +#define PCI_EHCI_VENDORID_HYGON 0x1d94 #define PCI_EHCI_VENDORID_INTEL 0x8086 #define PCI_EHCI_VENDORID_NEC 0x1033 #define PCI_EHCI_VENDORID_OPTI 0x1045 @@ -371,6 +372,9 @@ ehci_pci_attach(device_t self) break; case PCI_EHCI_VENDORID_CMDTECH: sprintf(sc->sc_vendor, "CMDTECH"); + break; + case PCI_EHCI_VENDORID_HYGON: + sprintf(sc->sc_vendor, "Hygon"); break; case PCI_EHCI_VENDORID_INTEL: sprintf(sc->sc_vendor, "Intel"); Modified: stable/12/sys/dev/usb/controller/ohci_pci.c ============================================================================== --- stable/12/sys/dev/usb/controller/ohci_pci.c Mon Feb 17 09:54:50 2020 (r358015) +++ stable/12/sys/dev/usb/controller/ohci_pci.c Mon Feb 17 09:57:03 2020 (r358016) @@ -83,6 +83,7 @@ __FBSDID("$FreeBSD$"); #define PCI_OHCI_VENDORID_APPLE 0x106b #define PCI_OHCI_VENDORID_ATI 0x1002 #define PCI_OHCI_VENDORID_CMDTECH 0x1095 +#define PCI_OHCI_VENDORID_HYGON 0x1d94 #define PCI_OHCI_VENDORID_NEC 0x1033 #define PCI_OHCI_VENDORID_NVIDIA 0x12D2 #define PCI_OHCI_VENDORID_NVIDIA2 0x10DE @@ -279,6 +280,9 @@ ohci_pci_attach(device_t self) break; case PCI_OHCI_VENDORID_CMDTECH: sprintf(sc->sc_vendor, "CMDTECH"); + break; + case PCI_OHCI_VENDORID_HYGON: + sprintf(sc->sc_vendor, "Hygon"); break; case PCI_OHCI_VENDORID_NEC: sprintf(sc->sc_vendor, "NEC"); Modified: stable/12/sys/dev/usb/controller/xhci_pci.c ============================================================================== --- stable/12/sys/dev/usb/controller/xhci_pci.c Mon Feb 17 09:54:50 2020 (r358015) +++ stable/12/sys/dev/usb/controller/xhci_pci.c Mon Feb 17 09:57:03 2020 (r358016) @@ -107,6 +107,9 @@ xhci_pci_match(device_t self) case 0x78141022: return ("AMD FCH USB 3.0 controller"); + case 0x145f1d94: + return ("Hygon USB 3.0 controller"); + case 0x01941033: return ("NEC uPD720200 USB 3.0 controller"); case 0x00151912: From owner-svn-src-all@freebsd.org Mon Feb 17 09:57:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 40D18253DFC; Mon, 17 Feb 2020 09:57:41 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LfYK12pTz4PDd; Mon, 17 Feb 2020 09:57:40 +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 DF8D651E2; Mon, 17 Feb 2020 09:57:40 +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 01H9vej6085279; Mon, 17 Feb 2020 09:57:40 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01H9vee6085277; Mon, 17 Feb 2020 09:57:40 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002170957.01H9vee6085277@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 17 Feb 2020 09:57:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358017 - stable/11/sys/dev/usb/controller X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/usb/controller X-SVN-Commit-Revision: 358017 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 09:57:41 -0000 Author: hselasky Date: Mon Feb 17 09:57:40 2020 New Revision: 358017 URL: https://svnweb.freebsd.org/changeset/base/358017 Log: MFC r357726: Add USB host controller PCI ID's for Hygon. Differential Revision: https://reviews.freebsd.org/D23564 Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/controller/ehci_pci.c stable/11/sys/dev/usb/controller/ohci_pci.c stable/11/sys/dev/usb/controller/xhci_pci.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/controller/ehci_pci.c ============================================================================== --- stable/11/sys/dev/usb/controller/ehci_pci.c Mon Feb 17 09:57:03 2020 (r358016) +++ stable/11/sys/dev/usb/controller/ehci_pci.c Mon Feb 17 09:57:40 2020 (r358017) @@ -84,6 +84,7 @@ __FBSDID("$FreeBSD$"); #define PCI_EHCI_VENDORID_APPLE 0x106b #define PCI_EHCI_VENDORID_ATI 0x1002 #define PCI_EHCI_VENDORID_CMDTECH 0x1095 +#define PCI_EHCI_VENDORID_HYGON 0x1d94 #define PCI_EHCI_VENDORID_INTEL 0x8086 #define PCI_EHCI_VENDORID_NEC 0x1033 #define PCI_EHCI_VENDORID_OPTI 0x1045 @@ -369,6 +370,9 @@ ehci_pci_attach(device_t self) break; case PCI_EHCI_VENDORID_CMDTECH: sprintf(sc->sc_vendor, "CMDTECH"); + break; + case PCI_EHCI_VENDORID_HYGON: + sprintf(sc->sc_vendor, "Hygon"); break; case PCI_EHCI_VENDORID_INTEL: sprintf(sc->sc_vendor, "Intel"); Modified: stable/11/sys/dev/usb/controller/ohci_pci.c ============================================================================== --- stable/11/sys/dev/usb/controller/ohci_pci.c Mon Feb 17 09:57:03 2020 (r358016) +++ stable/11/sys/dev/usb/controller/ohci_pci.c Mon Feb 17 09:57:40 2020 (r358017) @@ -81,6 +81,7 @@ __FBSDID("$FreeBSD$"); #define PCI_OHCI_VENDORID_APPLE 0x106b #define PCI_OHCI_VENDORID_ATI 0x1002 #define PCI_OHCI_VENDORID_CMDTECH 0x1095 +#define PCI_OHCI_VENDORID_HYGON 0x1d94 #define PCI_OHCI_VENDORID_NEC 0x1033 #define PCI_OHCI_VENDORID_NVIDIA 0x12D2 #define PCI_OHCI_VENDORID_NVIDIA2 0x10DE @@ -277,6 +278,9 @@ ohci_pci_attach(device_t self) break; case PCI_OHCI_VENDORID_CMDTECH: sprintf(sc->sc_vendor, "CMDTECH"); + break; + case PCI_OHCI_VENDORID_HYGON: + sprintf(sc->sc_vendor, "Hygon"); break; case PCI_OHCI_VENDORID_NEC: sprintf(sc->sc_vendor, "NEC"); Modified: stable/11/sys/dev/usb/controller/xhci_pci.c ============================================================================== --- stable/11/sys/dev/usb/controller/xhci_pci.c Mon Feb 17 09:57:03 2020 (r358016) +++ stable/11/sys/dev/usb/controller/xhci_pci.c Mon Feb 17 09:57:40 2020 (r358017) @@ -105,6 +105,9 @@ xhci_pci_match(device_t self) case 0x78141022: return ("AMD FCH USB 3.0 controller"); + case 0x145f1d94: + return ("Hygon USB 3.0 controller"); + case 0x01941033: return ("NEC uPD720200 USB 3.0 controller"); case 0x00151912: From owner-svn-src-all@freebsd.org Mon Feb 17 09:58:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E4EC1253EAF; Mon, 17 Feb 2020 09:58:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LfZl52v8z4Q0S; Mon, 17 Feb 2020 09:58:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A010F51E3; Mon, 17 Feb 2020 09:58:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01H9wt4k085524; Mon, 17 Feb 2020 09:58:55 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01H9wtXk085523; Mon, 17 Feb 2020 09:58:55 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002170958.01H9wtXk085523@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 17 Feb 2020 09:58:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358018 - stable/12/sys/dev/usb/controller X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/usb/controller X-SVN-Commit-Revision: 358018 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 09:58:56 -0000 Author: hselasky Date: Mon Feb 17 09:58:55 2020 New Revision: 358018 URL: https://svnweb.freebsd.org/changeset/base/358018 Log: MFC r356597: Define the XHCI endpoint states. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/usb/controller/xhci.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/usb/controller/xhci.h ============================================================================== --- stable/12/sys/dev/usb/controller/xhci.h Mon Feb 17 09:57:40 2020 (r358017) +++ stable/12/sys/dev/usb/controller/xhci.h Mon Feb 17 09:58:55 2020 (r358018) @@ -115,6 +115,14 @@ struct xhci_endp_ctx { volatile uint32_t dwEpCtx0; #define XHCI_EPCTX_0_EPSTATE_SET(x) ((x) & 0x7) #define XHCI_EPCTX_0_EPSTATE_GET(x) ((x) & 0x7) +#define XHCI_EPCTX_0_EPSTATE_DISABLED 0 +#define XHCI_EPCTX_0_EPSTATE_RUNNING 1 +#define XHCI_EPCTX_0_EPSTATE_HALTED 2 +#define XHCI_EPCTX_0_EPSTATE_STOPPED 3 +#define XHCI_EPCTX_0_EPSTATE_ERROR 4 +#define XHCI_EPCTX_0_EPSTATE_RESERVED_5 5 +#define XHCI_EPCTX_0_EPSTATE_RESERVED_6 6 +#define XHCI_EPCTX_0_EPSTATE_RESERVED_7 7 #define XHCI_EPCTX_0_MULT_SET(x) (((x) & 0x3) << 8) #define XHCI_EPCTX_0_MULT_GET(x) (((x) >> 8) & 0x3) #define XHCI_EPCTX_0_MAXP_STREAMS_SET(x) (((x) & 0x1F) << 10) From owner-svn-src-all@freebsd.org Mon Feb 17 09:59:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BCB24253F1D; Mon, 17 Feb 2020 09:59:29 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LfbP4Y7pz4QKp; Mon, 17 Feb 2020 09:59:29 +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 554A151E4; Mon, 17 Feb 2020 09:59:29 +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 01H9xTkU085668; Mon, 17 Feb 2020 09:59:29 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01H9xTwJ085667; Mon, 17 Feb 2020 09:59:29 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002170959.01H9xTwJ085667@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 17 Feb 2020 09:59:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358019 - stable/11/sys/dev/usb/controller X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/usb/controller X-SVN-Commit-Revision: 358019 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 09:59:29 -0000 Author: hselasky Date: Mon Feb 17 09:59:28 2020 New Revision: 358019 URL: https://svnweb.freebsd.org/changeset/base/358019 Log: MFC r356597: Define the XHCI endpoint states. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/controller/xhci.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/controller/xhci.h ============================================================================== --- stable/11/sys/dev/usb/controller/xhci.h Mon Feb 17 09:58:55 2020 (r358018) +++ stable/11/sys/dev/usb/controller/xhci.h Mon Feb 17 09:59:28 2020 (r358019) @@ -113,6 +113,14 @@ struct xhci_endp_ctx { volatile uint32_t dwEpCtx0; #define XHCI_EPCTX_0_EPSTATE_SET(x) ((x) & 0x7) #define XHCI_EPCTX_0_EPSTATE_GET(x) ((x) & 0x7) +#define XHCI_EPCTX_0_EPSTATE_DISABLED 0 +#define XHCI_EPCTX_0_EPSTATE_RUNNING 1 +#define XHCI_EPCTX_0_EPSTATE_HALTED 2 +#define XHCI_EPCTX_0_EPSTATE_STOPPED 3 +#define XHCI_EPCTX_0_EPSTATE_ERROR 4 +#define XHCI_EPCTX_0_EPSTATE_RESERVED_5 5 +#define XHCI_EPCTX_0_EPSTATE_RESERVED_6 6 +#define XHCI_EPCTX_0_EPSTATE_RESERVED_7 7 #define XHCI_EPCTX_0_MULT_SET(x) (((x) & 0x3) << 8) #define XHCI_EPCTX_0_MULT_GET(x) (((x) >> 8) & 0x3) #define XHCI_EPCTX_0_MAXP_STREAMS_SET(x) (((x) & 0x1F) << 10) From owner-svn-src-all@freebsd.org Mon Feb 17 11:08:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 580E82552A9; Mon, 17 Feb 2020 11:08:52 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Lh7S1dlkz4BPF; Mon, 17 Feb 2020 11:08:52 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 31E525F38; Mon, 17 Feb 2020 11:08:52 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01HB8qmH035145; Mon, 17 Feb 2020 11:08:52 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HB8oqh035137; Mon, 17 Feb 2020 11:08:50 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202002171108.01HB8oqh035137@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Mon, 17 Feb 2020 11:08:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358020 - in head: . lib/libkvm sys/net sys/sys X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in head: . lib/libkvm sys/net sys/sys X-SVN-Commit-Revision: 358020 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 11:08:52 -0000 Author: bz Date: Mon Feb 17 11:08:50 2020 New Revision: 358020 URL: https://svnweb.freebsd.org/changeset/base/358020 Log: Partially revert VNET change and expand VNET structure. Revert parts of r353274 replacing vnet_state with a shutdown flag. Not having the state flag for the current SI_SUB_* makes it harder to debug kernel or module panics related to VNET bringup or teardown. Not having the state also does not allow us to check for other dependency levels between components, e.g. for moving interfaces. Expand the VNET structure with the new boolean flag indicating that we are doing a shutdown of a given vnet and update the vnet magic cookie for the change. Update libkvm to compile with a bool in the kernel struct. Bump __FreeBSD_version for (external) module builds to more easily detect the change. Reviewed by: hselasky MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23097 Modified: head/UPDATING head/lib/libkvm/kvm.c head/lib/libkvm/kvm_private.c head/lib/libkvm/kvm_vnet.c head/sys/net/if.c head/sys/net/vnet.c head/sys/net/vnet.h head/sys/sys/param.h Modified: head/UPDATING ============================================================================== --- head/UPDATING Mon Feb 17 09:59:28 2020 (r358019) +++ head/UPDATING Mon Feb 17 11:08:50 2020 (r358020) @@ -26,6 +26,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20200217: + The size of struct vnet and the magic cookie have changed. + Users need to recompile libkvm and all modules using VIMAGE + together with their new kernel. + 20200212: Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error. Update Modified: head/lib/libkvm/kvm.c ============================================================================== --- head/lib/libkvm/kvm.c Mon Feb 17 09:59:28 2020 (r358019) +++ head/lib/libkvm/kvm.c Mon Feb 17 11:08:50 2020 (r358020) @@ -49,6 +49,7 @@ __SCCSID("@(#)kvm.c 8.2 (Berkeley) 2/13/94"); #include #include +#include #include #include Modified: head/lib/libkvm/kvm_private.c ============================================================================== --- head/lib/libkvm/kvm_private.c Mon Feb 17 09:59:28 2020 (r358019) +++ head/lib/libkvm/kvm_private.c Mon Feb 17 11:08:50 2020 (r358020) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include Modified: head/lib/libkvm/kvm_vnet.c ============================================================================== --- head/lib/libkvm/kvm_vnet.c Mon Feb 17 09:59:28 2020 (r358019) +++ head/lib/libkvm/kvm_vnet.c Mon Feb 17 11:08:50 2020 (r358020) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Mon Feb 17 09:59:28 2020 (r358019) +++ head/sys/net/if.c Mon Feb 17 11:08:50 2020 (r358020) @@ -322,6 +322,11 @@ SX_SYSINIT_FLAGS(ifnet_sx, &ifnet_sxlock, "ifnet_sx", */ #define IFNET_HOLD (void *)(uintptr_t)(-1) +#ifdef VIMAGE +#define VNET_IS_SHUTTING_DOWN(_vnet) \ + ((_vnet)->vnet_shutdown && (_vnet)->vnet_state < SI_SUB_VNET_DONE) +#endif + static if_com_alloc_t *if_com_alloc[256]; static if_com_free_t *if_com_free[256]; @@ -1080,7 +1085,7 @@ if_detach_internal(struct ifnet *ifp, int vmove, struc #ifdef VIMAGE bool shutdown; - shutdown = ifp->if_vnet->vnet_shutdown; + shutdown = VNET_IS_SHUTTING_DOWN(ifp->if_vnet); #endif IFNET_WLOCK(); CK_STAILQ_FOREACH(iter, &V_ifnet, if_link) @@ -1339,6 +1344,7 @@ if_vmove_loan(struct thread *td, struct ifnet *ifp, ch struct prison *pr; struct ifnet *difp; int error; + bool shutdown; /* Try to find the prison within our visibility. */ sx_slock(&allprison_lock); @@ -1366,7 +1372,8 @@ if_vmove_loan(struct thread *td, struct ifnet *ifp, ch } /* Make sure the VNET is stable. */ - if (ifp->if_vnet->vnet_shutdown) { + shutdown = VNET_IS_SHUTTING_DOWN(ifp->if_vnet); + if (shutdown) { CURVNET_RESTORE(); prison_free(pr); return (EBUSY); @@ -1391,6 +1398,7 @@ if_vmove_reclaim(struct thread *td, char *ifname, int struct vnet *vnet_dst; struct ifnet *ifp; int error; + bool shutdown; /* Try to find the prison within our visibility. */ sx_slock(&allprison_lock); @@ -1419,7 +1427,8 @@ if_vmove_reclaim(struct thread *td, char *ifname, int } /* Make sure the VNET is stable. */ - if (ifp->if_vnet->vnet_shutdown) { + shutdown = VNET_IS_SHUTTING_DOWN(ifp->if_vnet); + if (shutdown) { CURVNET_RESTORE(); prison_free(pr); return (EBUSY); @@ -2950,11 +2959,15 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, s struct ifreq *ifr; int error; int oif_flags; +#ifdef VIMAGE + bool shutdown; +#endif CURVNET_SET(so->so_vnet); #ifdef VIMAGE /* Make sure the VNET is stable. */ - if (so->so_vnet->vnet_shutdown) { + shutdown = VNET_IS_SHUTTING_DOWN(so->so_vnet); + if (shutdown) { CURVNET_RESTORE(); return (EBUSY); } Modified: head/sys/net/vnet.c ============================================================================== --- head/sys/net/vnet.c Mon Feb 17 09:59:28 2020 (r358019) +++ head/sys/net/vnet.c Mon Feb 17 11:08:50 2020 (r358020) @@ -279,6 +279,9 @@ vnet_destroy(struct vnet *vnet) LIST_REMOVE(vnet, vnet_le); VNET_LIST_WUNLOCK(); + /* Signal that VNET is being shutdown. */ + vnet->vnet_shutdown = true; + CURVNET_SET_QUIET(vnet); vnet_sysuninit(); CURVNET_RESTORE(); @@ -350,15 +353,15 @@ vnet_data_startup(void *dummy __unused) } SYSINIT(vnet_data, SI_SUB_KLD, SI_ORDER_FIRST, vnet_data_startup, NULL); +/* Dummy VNET_SYSINIT to make sure we always reach the final end state. */ static void -vnet_sysuninit_shutdown(void *unused __unused) +vnet_sysinit_done(void *unused __unused) { - /* Signal that VNET is being shutdown. */ - curvnet->vnet_shutdown = 1; + return; } -VNET_SYSUNINIT(vnet_sysuninit_shutdown, SI_SUB_VNET_DONE, SI_ORDER_FIRST, - vnet_sysuninit_shutdown, NULL); +VNET_SYSINIT(vnet_sysinit_done, SI_SUB_VNET_DONE, SI_ORDER_ANY, + vnet_sysinit_done, NULL); /* * When a module is loaded and requires storage for a virtualized global @@ -572,8 +575,10 @@ vnet_sysinit(void) struct vnet_sysinit *vs; VNET_SYSINIT_RLOCK(); - TAILQ_FOREACH(vs, &vnet_constructors, link) + TAILQ_FOREACH(vs, &vnet_constructors, link) { + curvnet->vnet_state = vs->subsystem; vs->func(vs->arg); + } VNET_SYSINIT_RUNLOCK(); } @@ -589,8 +594,10 @@ vnet_sysuninit(void) VNET_SYSINIT_RLOCK(); TAILQ_FOREACH_REVERSE(vs, &vnet_destructors, vnet_sysuninit_head, - link) + link) { + curvnet->vnet_state = vs->subsystem; vs->func(vs->arg); + } VNET_SYSINIT_RUNLOCK(); } @@ -704,7 +711,8 @@ db_vnet_print(struct vnet *vnet) db_printf(" vnet_data_mem = %p\n", vnet->vnet_data_mem); db_printf(" vnet_data_base = %#jx\n", (uintmax_t)vnet->vnet_data_base); - db_printf(" vnet_shutdown = %#08x\n", vnet->vnet_shutdown); + db_printf(" vnet_state = %#08x\n", vnet->vnet_state); + db_printf(" vnet_shutdown = %#03x\n", vnet->vnet_shutdown); db_printf("\n"); } Modified: head/sys/net/vnet.h ============================================================================== --- head/sys/net/vnet.h Mon Feb 17 09:59:28 2020 (r358019) +++ head/sys/net/vnet.h Mon Feb 17 11:08:50 2020 (r358020) @@ -72,11 +72,12 @@ struct vnet { u_int vnet_magic_n; u_int vnet_ifcnt; u_int vnet_sockcnt; - u_int vnet_shutdown; /* Shutdown in progress. */ + u_int vnet_state; /* SI_SUB_* */ void *vnet_data_mem; uintptr_t vnet_data_base; -}; -#define VNET_MAGIC_N 0x3e0d8f29 + bool vnet_shutdown; /* Shutdown in progress. */ +} __aligned(CACHE_LINE_SIZE); +#define VNET_MAGIC_N 0x5e4a6f28 /* * These two virtual network stack allocator definitions are also required Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Mon Feb 17 09:59:28 2020 (r358019) +++ head/sys/sys/param.h Mon Feb 17 11:08:50 2020 (r358020) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300077 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300078 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Mon Feb 17 11:43:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DF675256056; Mon, 17 Feb 2020 11:43:28 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LhvM5Zplz3F5w; Mon, 17 Feb 2020 11:43:27 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-wr1-x443.google.com with SMTP id z3so19369273wru.3; Mon, 17 Feb 2020 03:43:27 -0800 (PST) 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=WrnnKy/DRPm5ub+fcbpUqNnAEmIXus2d91hZAWF/4Xo=; b=Fy1zvQEutqYw6Cs21JbuikeNOTBdI2h0cMxIVd891rzqvZRZ72eAUWx0Affgd6JtJI APtORsMtYI6cEBmjxdp0g2aRHnhNrWU7HjwoWMKhL77CkcLm9TVEMs5uLpBR+YEIQ2Hm EvbnKEg6sVBVHp6ByMBxkfZgIbaaOCRMbW7JadOqIBCzT8y6cnBcYV/qVEDpcgd5MW5m Ts8LsnhiqroN0qmmaNdX3+WvcC0D5g0BCYsAoighQ6cyOGLdT1FrJy2WiIhWWu7Kwcm7 sKWqXRnJ+ue5a8OJwG7MdL0TZFlK0I1tHDw1sThpo8KSr/e5NVrB+rSRWq7fj4PPVt5R vi5w== 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=WrnnKy/DRPm5ub+fcbpUqNnAEmIXus2d91hZAWF/4Xo=; b=pHvTYS0e+pmIWN8R3K3o3uM/kvj3w9vnnw27CEtx72jXD1XKWY4jY7u0qv2BhPiGNs p0bai68HKAvT67DdjA3p1bsN3yu3p0Oul+EdyOS2Sx03wuvqimS5sqzfbwCVFhHIhPR0 DKz8CED6tQua4ZERCBdwAIYy7HMxDjvVlxwC9IZ2CblF2mTYK1It+BtRJNSlGRmMbn2P Fh06IpB/vrlUtpSYWfsS30xXsipGA5sa7RPOWDY14OfpsTn2VHJzW0M36Gy+KEtk5AoF lpmvoQWWdmdk+0UkkJmc6IVUIkxf9FSgOEQPINm9dkizuYL/1OmhjEruysbxy/8rfU0g zFLA== X-Gm-Message-State: APjAAAVpQEnMYroWArpje9dO8u+7Rp93B6adxupCD48Ht4aNAMjfawJU emP7AWPF0DxMy14sx3TkY46xb8G47zF+/8jCQUC5uw== X-Google-Smtp-Source: APXvYqxptkKdrqxGQ7HLzdRkvsRUlc7SSe1R9vUxUgZeVUsRtqX4TlAXv6c/1MS/Z3j5godCb7vSXMmS8YrjMtFboM8= X-Received: by 2002:a5d:4651:: with SMTP id j17mr22122716wrs.237.1581939804222; Mon, 17 Feb 2020 03:43:24 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a5d:6b02:0:0:0:0:0 with HTTP; Mon, 17 Feb 2020 03:43:23 -0800 (PST) In-Reply-To: <41588a27-4a53-485f-6cd4-2a4a5b00d94a@FreeBSD.org> References: <202002010646.0116ktUk057327@repo.freebsd.org> <94dd2422-307b-9c06-ad84-d13d2e8a9fa4@FreeBSD.org> <41588a27-4a53-485f-6cd4-2a4a5b00d94a@FreeBSD.org> From: Mateusz Guzik Date: Mon, 17 Feb 2020 12:43:23 +0100 Message-ID: Subject: Re: svn commit: r357361 - in head/sys: kern sys ufs/ufs vm To: John Baldwin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48LhvM5Zplz3F5w X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=Fy1zvQEu; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mjguzik@gmail.com designates 2a00:1450:4864:20::443 as permitted sender) smtp.mailfrom=mjguzik@gmail.com X-Spamd-Result: default: False [-3.00 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[text/plain]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; IP_SCORE_FREEMAIL(0.00)[]; IP_SCORE(0.00)[ip: (2.38), ipnet: 2a00:1450::/32(-2.42), asn: 15169(-1.68), country: US(-0.05)]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[3.4.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.5.4.1.0.0.a.2.list.dnswl.org : 127.0.5.0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 11:43:29 -0000 On 2/11/20, John Baldwin wrote: > On 2/10/20 11:54 AM, Mateusz Guzik wrote: >> On 2/3/20, John Baldwin wrote: >>> On 1/31/20 10:46 PM, Mateusz Guzik wrote: >>>> Author: mjg >>>> Date: Sat Feb 1 06:46:55 2020 >>>> New Revision: 357361 >>>> URL: https://svnweb.freebsd.org/changeset/base/357361 >>>> >>>> Log: >>>> vfs: replace VOP_MARKATIME with VOP_MMAPPED >>>> >>>> The routine is only provided by ufs and is only used on mmap and >>>> exec. >>>> >>>> Reviewed by: kib >>>> Differential Revision: https://reviews.freebsd.org/D23422 >>>> >>>> Modified: >>>> head/sys/kern/kern_exec.c >>>> head/sys/kern/vfs_subr.c >>>> head/sys/kern/vnode_if.src >>>> head/sys/sys/vnode.h >>>> head/sys/ufs/ufs/ufs_vnops.c >>>> head/sys/vm/vm_mmap.c >>>> >>>> Modified: head/sys/ufs/ufs/ufs_vnops.c >>>> ============================================================================== >>>> --- head/sys/ufs/ufs/ufs_vnops.c Sat Feb 1 06:41:44 2020 (r357360) >>>> +++ head/sys/ufs/ufs/ufs_vnops.c Sat Feb 1 06:46:55 2020 (r357361) >>>> @@ -108,7 +108,7 @@ static vop_getattr_t ufs_getattr; >>>> static vop_ioctl_t ufs_ioctl; >>>> static vop_link_t ufs_link; >>>> static int ufs_makeinode(int mode, struct vnode *, struct vnode **, >>>> struct componentname *, const char *); >>>> -static vop_markatime_t ufs_markatime; >>>> +static vop_mmapped_t ufs_mmapped; >>>> static vop_mkdir_t ufs_mkdir; >>>> static vop_mknod_t ufs_mknod; >>>> static vop_open_t ufs_open; >>>> @@ -676,19 +676,22 @@ out: >>>> } >>>> #endif /* UFS_ACL */ >>>> >>>> -/* >>>> - * Mark this file's access time for update for vfs_mark_atime(). This >>>> - * is called from execve() and mmap(). >>>> - */ >>> >>> Why remove this comment rather than update it? It is largely still >>> true and explains the purpose of the VOP (update the atime) which is >>> now no longer obvious from the name. >>> >> >> I don't think a fs-specific implementation of a VOP is the right place to >> state where it is called from. I would argue the name could be better as >> the execve bit is definitely not obvious, but interested parties can >> always grep. > > This (always grep) is why comments matter. If we wanted people to just use > grep and always UTSL, we wouldn't bother having any comments at all. One > of the purposes of comments is to allow a human reader to understand the > code > in context without needing several different windows open to piece together > what is happening. In particular, the comment gives a better hint as to > _why_ we are updating the atime. The old name did a better job of this > than > the new one which is more bland, but presumably you have future changes to > add that are beyond just changing the atime and that is why you renamed it? > But this is an example of something which can be grepped for very easily. A comment who is calling given routine is warranted if there is only one such user or there are very special circumstances for it. As it is, should there be another user, the removed comment was prone to getting out of date and if anything was making things more confusing -- why is mark atime routine only called from mmap and exec, when there are so many other ways to trigger atime update? In my opinion comments are there to explain thing which are not obvious or not immediately resolvable (e.g., with said grep). Easy example would be what data is protected with what mechanism, or what can be racing with what. I think my recent additions to vput & friends are a decent example of what in my opinion warrants a comment. -- Mateusz Guzik From owner-svn-src-all@freebsd.org Mon Feb 17 13:26:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D88CC239370; Mon, 17 Feb 2020 13:26:37 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LlBP2Fyzz4Rvh; Mon, 17 Feb 2020 13:26:37 +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 47DFC7962; Mon, 17 Feb 2020 13:26:37 +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 01HDQbAh019281; Mon, 17 Feb 2020 13:26:37 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HDQbnb019280; Mon, 17 Feb 2020 13:26:37 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002171326.01HDQbnb019280@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 17 Feb 2020 13:26:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358021 - head/sys/dev/pci X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/dev/pci X-SVN-Commit-Revision: 358021 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 13:26:37 -0000 Author: kib Date: Mon Feb 17 13:26:36 2020 New Revision: 358021 URL: https://svnweb.freebsd.org/changeset/base/358021 Log: Fix typo. Sponsored by: The FreeBSD Foundation MFC after: 3 days Modified: head/sys/dev/pci/pcireg.h Modified: head/sys/dev/pci/pcireg.h ============================================================================== --- head/sys/dev/pci/pcireg.h Mon Feb 17 11:08:50 2020 (r358020) +++ head/sys/dev/pci/pcireg.h Mon Feb 17 13:26:36 2020 (r358021) @@ -192,7 +192,7 @@ #define PCIZ_PMUX 0x001a /* Protocol Multiplexing */ #define PCIZ_PASID 0x001b /* Process Address Space ID */ #define PCIZ_LN_REQ 0x001c /* LN Requester */ -#define PCIZ_DPC 0x001d /* Downstream Porto Containment */ +#define PCIZ_DPC 0x001d /* Downstream Port Containment */ #define PCIZ_L1PM 0x001e /* L1 PM Substates */ /* config registers for header type 0 devices */ From owner-svn-src-all@freebsd.org Mon Feb 17 13:31:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1CD23239481; Mon, 17 Feb 2020 13:31:31 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LlJ26w80z4WjX; Mon, 17 Feb 2020 13:31:30 +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 E6C467ABB; Mon, 17 Feb 2020 13:31:30 +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 01HDVUdf021055; Mon, 17 Feb 2020 13:31:30 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HDVUmU021054; Mon, 17 Feb 2020 13:31:30 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002171331.01HDVUmU021054@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 17 Feb 2020 13:31:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358022 - head/usr.sbin/pciconf X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/usr.sbin/pciconf X-SVN-Commit-Revision: 358022 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 13:31:31 -0000 Author: kib Date: Mon Feb 17 13:31:30 2020 New Revision: 358022 URL: https://svnweb.freebsd.org/changeset/base/358022 Log: pciconf: List names of all known extended PCIe capabilities. Some ids are redundand because the list_ecaps() function decodes them by explicit switch case. But listing them all makes it easier to not miss ecaps, while not changing the functionality. Initial submission by: Dmitry Luhtionov Sponsored by: The FreeBSD Foundation MFC after: 3 days Modified: head/usr.sbin/pciconf/cap.c Modified: head/usr.sbin/pciconf/cap.c ============================================================================== --- head/usr.sbin/pciconf/cap.c Mon Feb 17 13:26:36 2020 (r358021) +++ head/usr.sbin/pciconf/cap.c Mon Feb 17 13:31:30 2020 (r358022) @@ -986,20 +986,35 @@ static struct { uint16_t id; const char *name; } ecap_names[] = { + { PCIZ_AER, "AER" }, + { PCIZ_VC, "Virtual Channel" }, + { PCIZ_SERNUM, "Device Serial Number" }, { PCIZ_PWRBDGT, "Power Budgeting" }, { PCIZ_RCLINK_DCL, "Root Complex Link Declaration" }, { PCIZ_RCLINK_CTL, "Root Complex Internal Link Control" }, { PCIZ_RCEC_ASSOC, "Root Complex Event Collector ASsociation" }, { PCIZ_MFVC, "MFVC" }, + { PCIZ_VC2, "Virtual Channel 2" }, { PCIZ_RCRB, "RCRB" }, + { PCIZ_CAC, "Configuration Access Correction" }, { PCIZ_ACS, "ACS" }, { PCIZ_ARI, "ARI" }, { PCIZ_ATS, "ATS" }, + { PCIZ_SRIOV, "SRIOV" }, + { PCIZ_MRIOV, "MRIOV" }, { PCIZ_MULTICAST, "Multicast" }, + { PCIZ_PAGE_REQ, "Page Page Request" }, + { PCIZ_AMD, "AMD proprietary "}, { PCIZ_RESIZE_BAR, "Resizable BAR" }, { PCIZ_DPA, "DPA" }, { PCIZ_TPH_REQ, "TPH Requester" }, { PCIZ_LTR, "LTR" }, + { PCIZ_SEC_PCIE, "Secondary PCI Express" }, + { PCIZ_PMUX, "Protocol Multiplexing" }, + { PCIZ_PASID, "Process Address Space ID" }, + { PCIZ_LN_REQ, "LN Requester" }, + { PCIZ_DPC, "Downstream Port Containment" }, + { PCIZ_L1PM, "L1 PM Substates" }, { 0, NULL } }; From owner-svn-src-all@freebsd.org Mon Feb 17 14:54:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2CC9D23B371; Mon, 17 Feb 2020 14:54:22 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Ln7d47dXz40r4; Mon, 17 Feb 2020 14:54:21 +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 73CCB8A47; Mon, 17 Feb 2020 14:54:21 +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 01HEsLfv073078; Mon, 17 Feb 2020 14:54:21 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HEsLK0073077; Mon, 17 Feb 2020 14:54:21 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202002171454.01HEsLK0073077@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Mon, 17 Feb 2020 14:54:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358023 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 358023 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 14:54:22 -0000 Author: tuexen Date: Mon Feb 17 14:54:21 2020 New Revision: 358023 URL: https://svnweb.freebsd.org/changeset/base/358023 Log: Don't use uninitialised stack memory if the sysctl variable net.inet.tcp.hostcache.enable is set to 0. The bug resulted in using possibly a too small MSS value or wrong initial retransmission timer settings. Possibly the value used for ssthresh was also wrong. Submitted by: Richard Scheffenegger Reviewed by: Cheng Cui, rgrimes@, tuexen@ MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23687 Modified: head/sys/netinet/tcp_hostcache.c Modified: head/sys/netinet/tcp_hostcache.c ============================================================================== --- head/sys/netinet/tcp_hostcache.c Mon Feb 17 13:31:30 2020 (r358022) +++ head/sys/netinet/tcp_hostcache.c Mon Feb 17 14:54:21 2020 (r358023) @@ -437,8 +437,10 @@ tcp_hc_get(struct in_conninfo *inc, struct hc_metrics_ { struct hc_metrics *hc_entry; - if (!V_tcp_use_hostcache) + if (!V_tcp_use_hostcache) { + bzero(hc_metrics_lite, sizeof(*hc_metrics_lite)); return; + } /* * Find the right bucket. From owner-svn-src-all@freebsd.org Mon Feb 17 15:09:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 44AF123B933; Mon, 17 Feb 2020 15:09:41 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LnTK0hpHz4Bc0; Mon, 17 Feb 2020 15:09: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 0B10E8C3B; Mon, 17 Feb 2020 15:09: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 01HF9eWN079294; Mon, 17 Feb 2020 15:09:40 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HF9evH079293; Mon, 17 Feb 2020 15:09:40 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202002171509.01HF9evH079293@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 17 Feb 2020 15:09:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358024 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358024 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 15:09:41 -0000 Author: markj Date: Mon Feb 17 15:09:40 2020 New Revision: 358024 URL: https://svnweb.freebsd.org/changeset/base/358024 Log: Fix object locking races in swapoff(2). swap_pager_swapoff_object()'s goal is to allocate pages for all valid swap blocks belonging to the object, for which there is no resident page. If the page corresponding to a block is already resident and valid, the block can simply be discarded. The existing implementation tries to minimize the number of I/Os used. For each cluster of swap blocks, it finds maximal runs of valid swap blocks not resident in memory, and valid resident pages. During this processing, the object lock may be dropped in several places: when calling getpages, or when blocking on a busy page in vm_page_grab_pages(). While the lock is dropped, another thread may free swap blocks, causing getpages to page in stale data. Fix the problem following a suggestion from Jeff: use getpages' readahead capability to perform clustering rather than doing it ourselves. The simplies the code a bit without reintroducing the old behaviour of performing one I/O per page. Reviewed by: jeff Reported by: dhw, gallatin Tested by: pho MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23664 Modified: head/sys/vm/swap_pager.c Modified: head/sys/vm/swap_pager.c ============================================================================== --- head/sys/vm/swap_pager.c Mon Feb 17 14:54:21 2020 (r358023) +++ head/sys/vm/swap_pager.c Mon Feb 17 15:09:40 2020 (r358024) @@ -1188,8 +1188,8 @@ swap_pager_unswapped(vm_page_t m) * The pages in "ma" must be busied and will remain busied upon return. */ static int -swap_pager_getpages(vm_object_t object, vm_page_t *ma, int count, int *rbehind, - int *rahead) +swap_pager_getpages_locked(vm_object_t object, vm_page_t *ma, int count, + int *rbehind, int *rahead) { struct buf *bp; vm_page_t bm, mpred, msucc, p; @@ -1197,7 +1197,7 @@ swap_pager_getpages(vm_object_t object, vm_page_t *ma, daddr_t blk; int i, maxahead, maxbehind, reqcount; - VM_OBJECT_WLOCK(object); + VM_OBJECT_ASSERT_WLOCKED(object); reqcount = count; KASSERT(object->type == OBJT_SWAP, @@ -1352,6 +1352,15 @@ swap_pager_getpages(vm_object_t object, vm_page_t *ma, */ } +static int +swap_pager_getpages(vm_object_t object, vm_page_t *ma, int count, + int *rbehind, int *rahead) +{ + + VM_OBJECT_WLOCK(object); + return (swap_pager_getpages_locked(object, ma, count, rbehind, rahead)); +} + /* * swap_pager_getpages_async(): * @@ -1712,72 +1721,11 @@ swp_pager_force_dirty(vm_page_t m) { vm_page_dirty(m); -#ifdef INVARIANTS - if (!vm_page_wired(m) && m->a.queue == PQ_NONE) - panic("page %p is neither wired nor queued", m); -#endif - vm_page_xunbusy(m); swap_pager_unswapped(m); -} - -static void -swp_pager_force_launder(vm_page_t m) -{ - - vm_page_dirty(m); vm_page_launder(m); - vm_page_xunbusy(m); - swap_pager_unswapped(m); } /* - * SWP_PAGER_FORCE_PAGEIN() - force swap blocks to be paged in - * - * This routine dissociates pages starting at the given index within an - * object from their backing store, paging them in if they do not reside - * in memory. Pages that are paged in are marked dirty and placed in the - * laundry queue. Pages are marked dirty because they no longer have - * backing store. They are placed in the laundry queue because they have - * not been accessed recently. Otherwise, they would already reside in - * memory. - */ -static void -swp_pager_force_pagein(vm_object_t object, vm_pindex_t pindex, int npages) -{ - vm_page_t ma[npages]; - int i, j; - - KASSERT(npages > 0, ("%s: No pages", __func__)); - KASSERT(npages <= MAXPHYS / PAGE_SIZE, - ("%s: Too many pages: %d", __func__, npages)); - KASSERT(object->type == OBJT_SWAP, - ("%s: Object not swappable", __func__)); - vm_object_pip_add(object, npages); - vm_page_grab_pages(object, pindex, VM_ALLOC_NORMAL, ma, npages); - for (i = j = 0;; i++) { - /* Count nonresident pages, to page-in all at once. */ - if (i < npages && ma[i]->valid != VM_PAGE_BITS_ALL) - continue; - if (j < i) { - VM_OBJECT_WUNLOCK(object); - /* Page-in nonresident pages. Mark for laundering. */ - if (swap_pager_getpages(object, &ma[j], i - j, NULL, - NULL) != VM_PAGER_OK) - panic("%s: read from swap failed", __func__); - VM_OBJECT_WLOCK(object); - do { - swp_pager_force_launder(ma[j]); - } while (++j < i); - } - if (i == npages) - break; - /* Mark dirty a resident page. */ - swp_pager_force_dirty(ma[j++]); - } - vm_object_pip_wakeupn(object, npages); -} - -/* * swap_pager_swapoff_object: * * Page in all of the pages that have been paged out for an object @@ -1787,62 +1735,95 @@ static void swap_pager_swapoff_object(struct swdevt *sp, vm_object_t object) { struct swblk *sb; - vm_pindex_t pi, s_pindex; - daddr_t blk, n_blks, s_blk; - int i; + vm_page_t m; + vm_pindex_t pi; + daddr_t blk; + int i, nv, rahead, rv; KASSERT(object->type == OBJT_SWAP, ("%s: Object not swappable", __func__)); - n_blks = 0; + for (pi = 0; (sb = SWAP_PCTRIE_LOOKUP_GE( &object->un_pager.swp.swp_blks, pi)) != NULL; ) { + if ((object->flags & OBJ_DEAD) != 0) { + /* + * Make sure that pending writes finish before + * returning. + */ + vm_object_pip_wait(object, "swpoff"); + swp_pager_meta_free_all(object); + break; + } for (i = 0; i < SWAP_META_PAGES; i++) { - blk = sb->d[i]; - if (!swp_pager_isondev(blk, sp)) - blk = SWAPBLK_NONE; - /* - * If there are no blocks/pages accumulated, start a new - * accumulation here. + * Count the number of contiguous valid blocks. */ - if (n_blks == 0) { - if (blk != SWAPBLK_NONE) { - s_blk = blk; - s_pindex = sb->p + i; - n_blks = 1; - } - continue; + for (nv = 0; nv < SWAP_META_PAGES - i; nv++) { + blk = sb->d[i + nv]; + if (!swp_pager_isondev(blk, sp) || + blk == SWAPBLK_NONE) + break; } + if (nv == 0) + continue; /* - * If the accumulation can be extended without breaking - * the sequence of consecutive blocks and pages that - * swp_pager_force_pagein() depends on, do so. + * Look for a page corresponding to the first + * valid block and ensure that any pending paging + * operations on it are complete. If the page is valid, + * mark it dirty and free the swap block. Try to batch + * this operation since it may cause sp to be freed, + * meaning that we must restart the scan. Avoid busying + * valid pages since we may block forever on kernel + * stack pages. */ - if (n_blks < MAXPHYS / PAGE_SIZE && - s_blk + n_blks == blk && - s_pindex + n_blks == sb->p + i) { - ++n_blks; - continue; + m = vm_page_lookup(object, sb->p + i); + if (m == NULL) { + m = vm_page_alloc(object, sb->p + i, + VM_ALLOC_NORMAL | VM_ALLOC_WAITFAIL); + if (m == NULL) + break; + } else { + if ((m->oflags & VPO_SWAPINPROG) != 0) { + m->oflags |= VPO_SWAPSLEEP; + VM_OBJECT_SLEEP(object, &object->handle, + PSWP, "swpoff", 0); + break; + } + if (vm_page_all_valid(m)) { + do { + swp_pager_force_dirty(m); + } while (--nv > 0 && + (m = vm_page_next(m)) != NULL && + vm_page_all_valid(m) && + (m->oflags & VPO_SWAPINPROG) == 0); + break; + } + if (!vm_page_busy_acquire(m, VM_ALLOC_WAITFAIL)) + break; } + vm_object_pip_add(object, 1); + rahead = SWAP_META_PAGES; + rv = swap_pager_getpages_locked(object, &m, 1, NULL, + &rahead); + if (rv != VM_PAGER_OK) + panic("%s: read from swap failed: %d", + __func__, rv); + vm_object_pip_wakeupn(object, 1); + VM_OBJECT_WLOCK(object); + vm_page_xunbusy(m); + /* - * The sequence of consecutive blocks and pages cannot - * be extended, so page them all in here. Then, - * because doing so involves releasing and reacquiring - * a lock that protects the swap block pctrie, do not - * rely on the current swap block. Break this loop and - * re-fetch the same pindex from the pctrie again. + * The object lock was dropped so we must restart the + * scan of this swap block. Pages paged in during this + * iteration will be marked dirty in a future iteration. */ - swp_pager_force_pagein(object, s_pindex, n_blks); - n_blks = 0; break; } if (i == SWAP_META_PAGES) pi = sb->p + SWAP_META_PAGES; } - if (n_blks > 0) - swp_pager_force_pagein(object, s_pindex, n_blks); } /* From owner-svn-src-all@freebsd.org Mon Feb 17 15:10:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A340623BA6A; Mon, 17 Feb 2020 15:10:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LnVV2c7Bz4CWH; Mon, 17 Feb 2020 15:10:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DDF118C53; Mon, 17 Feb 2020 15:10: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 01HFAfbg079431; Mon, 17 Feb 2020 15:10:41 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HFAfHH079430; Mon, 17 Feb 2020 15:10:41 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202002171510.01HFAfHH079430@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 17 Feb 2020 15:10:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358025 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358025 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 15:10:42 -0000 Author: markj Date: Mon Feb 17 15:10:41 2020 New Revision: 358025 URL: https://svnweb.freebsd.org/changeset/base/358025 Log: Fix a swap block allocation race. putpages' allocation of swap blocks is done under the global sw_dev lock. Previously it would drop that lock before inserting the allocated blocks into the object's trie, creating a window in which swap blocks are allocated but are not visible to swapoff. This can cause swp_pager_strategy() to fail and panic the system. Fix the problem bluntly, by allocating swap blocks under the object lock. Reviewed by: jeff, kib Tested by: pho MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23665 Modified: head/sys/vm/swap_pager.c Modified: head/sys/vm/swap_pager.c ============================================================================== --- head/sys/vm/swap_pager.c Mon Feb 17 15:09:40 2020 (r358024) +++ head/sys/vm/swap_pager.c Mon Feb 17 15:10:41 2020 (r358025) @@ -1453,18 +1453,6 @@ swap_pager_putpages(vm_object_t object, vm_page_t *ma, /* Maximum I/O size is limited by maximum swap block size. */ n = min(count - i, nsw_cluster_max); - /* Get a block of swap of size up to size n. */ - blk = swp_pager_getswapspace(&n, 4); - if (blk == SWAPBLK_NONE) { - for (j = 0; j < n; ++j) - rtvals[i + j] = VM_PAGER_FAIL; - continue; - } - - /* - * All I/O parameters have been satisfied. Build the I/O - * request and assign the swap space. - */ if (async) { mtx_lock(&swbuf_mtx); while (nsw_wcount_async == 0) @@ -1473,19 +1461,20 @@ swap_pager_putpages(vm_object_t object, vm_page_t *ma, nsw_wcount_async--; mtx_unlock(&swbuf_mtx); } - bp = uma_zalloc(swwbuf_zone, M_WAITOK); - if (async) - bp->b_flags = B_ASYNC; - bp->b_flags |= B_PAGING; - bp->b_iocmd = BIO_WRITE; - bp->b_rcred = crhold(thread0.td_ucred); - bp->b_wcred = crhold(thread0.td_ucred); - bp->b_bcount = PAGE_SIZE * n; - bp->b_bufsize = PAGE_SIZE * n; - bp->b_blkno = blk; - + /* Get a block of swap of size up to size n. */ VM_OBJECT_WLOCK(object); + blk = swp_pager_getswapspace(&n, 4); + if (blk == SWAPBLK_NONE) { + VM_OBJECT_WUNLOCK(object); + mtx_lock(&swbuf_mtx); + if (++nsw_wcount_async == 1) + wakeup(&nsw_wcount_async); + mtx_unlock(&swbuf_mtx); + for (j = 0; j < n; ++j) + rtvals[i + j] = VM_PAGER_FAIL; + continue; + } for (j = 0; j < n; ++j) { mreq = ma[i + j]; vm_page_aflag_clear(mreq, PGA_SWAP_FREE); @@ -1496,10 +1485,24 @@ swap_pager_putpages(vm_object_t object, vm_page_t *ma, addr); MPASS(mreq->dirty == VM_PAGE_BITS_ALL); mreq->oflags |= VPO_SWAPINPROG; - bp->b_pages[j] = mreq; } VM_OBJECT_WUNLOCK(object); + + bp = uma_zalloc(swwbuf_zone, M_WAITOK); + if (async) + bp->b_flags = B_ASYNC; + bp->b_flags |= B_PAGING; + bp->b_iocmd = BIO_WRITE; + + bp->b_rcred = crhold(thread0.td_ucred); + bp->b_wcred = crhold(thread0.td_ucred); + bp->b_bcount = PAGE_SIZE * n; + bp->b_bufsize = PAGE_SIZE * n; + bp->b_blkno = blk; + for (j = 0; j < n; j++) + bp->b_pages[j] = ma[i + j]; bp->b_npages = n; + /* * Must set dirty range for NFS to work. */ @@ -2059,7 +2062,7 @@ allocated: * Free the swblk if we end up with the empty page run. */ if (swapblk == SWAPBLK_NONE) - swp_pager_free_empty_swblk(object, sb); + swp_pager_free_empty_swblk(object, sb); return (prev_swapblk); } From owner-svn-src-all@freebsd.org Mon Feb 17 15:11:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A43B523BAD4; Mon, 17 Feb 2020 15:11:09 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LnW04tgRz4Cy6; Mon, 17 Feb 2020 15:11:08 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8DBFB8C79; Mon, 17 Feb 2020 15:11:08 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01HFB8Ud080886; Mon, 17 Feb 2020 15:11:08 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HFB7Z5080884; Mon, 17 Feb 2020 15:11:07 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202002171511.01HFB7Z5080884@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 17 Feb 2020 15:11:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358026 - in head: lib/libkvm sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in head: lib/libkvm sys/vm X-SVN-Commit-Revision: 358026 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 15:11:09 -0000 Author: markj Date: Mon Feb 17 15:11:07 2020 New Revision: 358026 URL: https://svnweb.freebsd.org/changeset/base/358026 Log: Remove swblk_t. It was used only to store the bounds of each swap device. However, since swblk_t is a signed 32-bit int and daddr_t is a signed 64-bit int, swp_pager_isondev() may return an invalid result if swap devices are repeatedly added and removed and sw_end for a device ends up becoming a negative number. Note that the removed comment about maximum swap size still applies. Reviewed by: jeff, kib Tested by: pho MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23666 Modified: head/lib/libkvm/kvm_getswapinfo.c head/sys/vm/swap_pager.c head/sys/vm/swap_pager.h Modified: head/lib/libkvm/kvm_getswapinfo.c ============================================================================== --- head/lib/libkvm/kvm_getswapinfo.c Mon Feb 17 15:10:41 2020 (r358025) +++ head/lib/libkvm/kvm_getswapinfo.c Mon Feb 17 15:11:07 2020 (r358026) @@ -115,8 +115,7 @@ int kvm_getswapinfo_kvm(kvm_t *kd, struct kvm_swap *swap_ary, int swap_max, int flags) { - int i; - swblk_t ttl; + int i, ttl; TAILQ_HEAD(, swdevt) swtailq; struct swdevt *sp, swinfo; struct kvm_swap tot; @@ -167,8 +166,7 @@ int kvm_getswapinfo_sysctl(kvm_t *kd, struct kvm_swap *swap_ary, int swap_max, int flags) { - int ti; - swblk_t ttl; + int ti, ttl; size_t mibi, len; int soid[SWI_MAXMIB]; struct xswdev xsd; Modified: head/sys/vm/swap_pager.c ============================================================================== --- head/sys/vm/swap_pager.c Mon Feb 17 15:10:41 2020 (r358025) +++ head/sys/vm/swap_pager.c Mon Feb 17 15:11:07 2020 (r358026) @@ -2334,7 +2334,7 @@ swaponsomething(struct vnode *vp, void *id, u_long nbl sw_strategy_t *strategy, sw_close_t *close, dev_t dev, int flags) { struct swdevt *sp, *tsp; - swblk_t dvbase; + daddr_t dvbase; u_long mblocks; /* Modified: head/sys/vm/swap_pager.h ============================================================================== --- head/sys/vm/swap_pager.h Mon Feb 17 15:10:41 2020 (r358025) +++ head/sys/vm/swap_pager.h Mon Feb 17 15:11:07 2020 (r358026) @@ -38,14 +38,9 @@ */ #ifndef _VM_SWAP_PAGER_H_ -#define _VM_SWAP_PAGER_H_ 1 +#define _VM_SWAP_PAGER_H_ -typedef int32_t swblk_t; /* - * swap offset. This is the type used to - * address the "virtual swap device" and - * therefore the maximum swap space is - * 2^32 pages. - */ +#include struct buf; struct swdevt; @@ -62,8 +57,8 @@ struct swdevt { dev_t sw_dev; struct vnode *sw_vp; void *sw_id; - swblk_t sw_first; - swblk_t sw_end; + __daddr_t sw_first; + __daddr_t sw_end; struct blist *sw_blist; TAILQ_ENTRY(swdevt) sw_list; sw_strategy_t *sw_strategy; From owner-svn-src-all@freebsd.org Mon Feb 17 15:32:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 515CD23C33D; Mon, 17 Feb 2020 15:32:22 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LnzV1X6gz4cXf; Mon, 17 Feb 2020 15:32:22 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2F27691A3; Mon, 17 Feb 2020 15:32:22 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01HFWMq5096253; Mon, 17 Feb 2020 15:32:22 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HFWMgw096252; Mon, 17 Feb 2020 15:32:22 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <202002171532.01HFWMgw096252@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Mon, 17 Feb 2020 15:32:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358027 - head/sys/dev/acpica X-SVN-Group: head X-SVN-Commit-Author: andrew X-SVN-Commit-Paths: head/sys/dev/acpica X-SVN-Commit-Revision: 358027 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 15:32:22 -0000 Author: andrew Date: Mon Feb 17 15:32:21 2020 New Revision: 358027 URL: https://svnweb.freebsd.org/changeset/base/358027 Log: Use EARLY_DRIVER_MODULE in the acpi bus. We need this to use EARLY_DRIVER_MODULE in child drivers on arm64. This should be a no-op on x86 as it has DRIVER_MODULE in the nexus driver making all later drivers attach in the last pass. Reviewed by: imp MFC after: 1 month Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D23717 Modified: head/sys/dev/acpica/acpi.c Modified: head/sys/dev/acpica/acpi.c ============================================================================== --- head/sys/dev/acpica/acpi.c Mon Feb 17 15:11:07 2020 (r358026) +++ head/sys/dev/acpica/acpi.c Mon Feb 17 15:32:21 2020 (r358027) @@ -237,7 +237,8 @@ static driver_t acpi_driver = { }; static devclass_t acpi_devclass; -DRIVER_MODULE(acpi, nexus, acpi_driver, acpi_devclass, acpi_modevent, 0); +EARLY_DRIVER_MODULE(acpi, nexus, acpi_driver, acpi_devclass, acpi_modevent, 0, + BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); MODULE_VERSION(acpi, 1); ACPI_SERIAL_DECL(acpi, "ACPI root bus"); From owner-svn-src-all@freebsd.org Mon Feb 17 18:05:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DBED02413FC; Mon, 17 Feb 2020 18:05:03 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LsMg5bDTz48Ry; Mon, 17 Feb 2020 18:05:03 +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 B6C3AADE0; Mon, 17 Feb 2020 18:05:03 +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 01HI53Cs086763; Mon, 17 Feb 2020 18:05:03 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HI53gt086762; Mon, 17 Feb 2020 18:05:03 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202002171805.01HI53gt086762@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Mon, 17 Feb 2020 18:05:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358028 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 358028 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 18:05:03 -0000 Author: tuexen Date: Mon Feb 17 18:05:03 2020 New Revision: 358028 URL: https://svnweb.freebsd.org/changeset/base/358028 Log: Fix the non-default stream schedulers such that do not interleave user messages when it is now allowed. Thanks to Christian Wright for reporting the issue for the userland stack and providing a fix for the priority scheduler. MFC after: 1 week Modified: head/sys/netinet/sctp_ss_functions.c Modified: head/sys/netinet/sctp_ss_functions.c ============================================================================== --- head/sys/netinet/sctp_ss_functions.c Mon Feb 17 15:32:21 2020 (r358027) +++ head/sys/netinet/sctp_ss_functions.c Mon Feb 17 18:05:03 2020 (r358028) @@ -517,6 +517,9 @@ sctp_ss_prio_select(struct sctp_tcb *stcb SCTP_UNUSED, { struct sctp_stream_out *strq, *strqt, *strqn; + if (asoc->ss_data.locked_on_sending) { + return (asoc->ss_data.locked_on_sending); + } strqt = asoc->ss_data.last_out_stream; prio_again: /* Find the next stream to use */ @@ -694,6 +697,9 @@ sctp_ss_fb_select(struct sctp_tcb *stcb SCTP_UNUSED, s { struct sctp_stream_out *strq = NULL, *strqt; + if (asoc->ss_data.locked_on_sending) { + return (asoc->ss_data.locked_on_sending); + } if (asoc->ss_data.last_out_stream == NULL || TAILQ_FIRST(&asoc->ss_data.out.wheel) == TAILQ_LAST(&asoc->ss_data.out.wheel, sctpwheel_listhead)) { strqt = TAILQ_FIRST(&asoc->ss_data.out.wheel); @@ -900,6 +906,9 @@ sctp_ss_fcfs_select(struct sctp_tcb *stcb SCTP_UNUSED, struct sctp_stream_out *strq; struct sctp_stream_queue_pending *sp; + if (asoc->ss_data.locked_on_sending) { + return (asoc->ss_data.locked_on_sending); + } sp = TAILQ_FIRST(&asoc->ss_data.out.list); default_again: if (sp != NULL) { From owner-svn-src-all@freebsd.org Mon Feb 17 18:29:13 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A86EE241B4F; Mon, 17 Feb 2020 18:29:13 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LsvX5rbZz4XPG; Mon, 17 Feb 2020 18:29:12 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pf1-x430.google.com with SMTP id 2so9315458pfg.12; Mon, 17 Feb 2020 10:29:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=js0wDT60ivM282HgWYrXmQ6mUbF48dzOzU1PISmZpsM=; b=Vwh4nuNCAIabzt2yLjoSroNsclpU7aqtEptlzPUgw9mZaCn6/aL3v6N/9I2bAGvPoW uNbV7wmbfjlmB2ViZX5CuTz72ZNkW3Y/JCv0GH7U1rFy4Y8/R3hHUKBU/DizJpwB695E 0JRENnD/ZUcDUeitslB9eYbeOWtCdPzQfQTodhwuC90TVi6n2jG7tL0swZxiWRjTzPHH glJwOH7zX0TD9j8YF4XDGKf8RGehGo90WlExW1NG1B8i1YvxENP+eCNTt3SQrKOyppvI ZIn4sklrROM2nFVDbrt1eDyJAZanPS94i3wEP0U9uDovnNRN58FLZDRzD8pDab8Ge0jV Z9JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=js0wDT60ivM282HgWYrXmQ6mUbF48dzOzU1PISmZpsM=; b=gmHP1h0nlFKI3Rgz5JMKkFSN86LaaToODA4DW/uZH0nlLoBYl8qlgTv0M9gIWx5at2 GaehmwMB8mBfZsLnk3fPGWL4FJefmS4RKd5OyHPsqIouIvM4JT1MxNCPZlMtAQs+PEyN dpeR4XCkYjzJ/qK1zdRMdlrCsG+tkGsorC4fVKrfKEjJFVkVAswitUSbbu3AXTF1ugvI YvXdc7mfpd1qwldLjLsKotCqvkmFV/E2rPZHvS9Jb62htEZOoosf/NN9Ffg/IrHHn8v8 LiE8yXBPnw6zy8tGwfkbHndNKyFecSeI13LIaRkzT4oZF14MokcfT4MUrF02e61xg/Lw rYYw== X-Gm-Message-State: APjAAAXJ8OvawBe/QLC2XgA96UuPKqCsyREgNoFXR6MP9d2hc4JG4Y3q UaJlQYwTrM/q5rro46OhJMsXbzF4jIE= X-Google-Smtp-Source: APXvYqzyOEaVrJP8F4aWBB5rN6VqYHmT63gUY2pk/qc9YU1Os8j/jZF2lE+KoiuqhrluiFH/RV8c6w== X-Received: by 2002:aa7:9a42:: with SMTP id x2mr17795678pfj.71.1581964150357; Mon, 17 Feb 2020 10:29:10 -0800 (PST) Received: from [192.168.20.12] (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id x21sm1143713pfq.76.2020.02.17.10.29.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 17 Feb 2020 10:29:09 -0800 (PST) From: "Enji Cooper (yaneurabeya)" Message-Id: <5530D007-BEE5-45F1-B84C-93B0B3B19023@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.60.0.2.5\)) Subject: Re: svn commit: r357833 - head/tests/sys/pjdfstest/tests Date: Mon, 17 Feb 2020 10:29:08 -0800 In-Reply-To: Cc: src-committers , svn-src-all , svn-src-head To: Ed Maste References: <202002121737.01CHbWCN014937@repo.freebsd.org> X-Mailer: Apple Mail (2.3608.60.0.2.5) X-Rspamd-Queue-Id: 48LsvX5rbZz4XPG X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=Vwh4nuNC; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of yaneurabeya@gmail.com designates 2607:f8b0:4864:20::430 as permitted sender) smtp.mailfrom=yaneurabeya@gmail.com X-Spamd-Result: default: False [-1.50 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MV_CASE(0.50)[]; URI_COUNT_ODD(1.00)[3]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RECEIVED_SPAMHAUS_PBL(0.00)[228.52.19.73.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; IP_SCORE(0.00)[ip: (-8.87), ipnet: 2607:f8b0::/32(-1.89), asn: 15169(-1.68), country: US(-0.05)]; IP_SCORE_FREEMAIL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[0.3.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; RCVD_TLS_ALL(0.00)[] Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 18:29:13 -0000 > On Feb 12, 2020, at 14:01, Ed Maste wrote: >=20 > On Wed, 12 Feb 2020 at 15:34, Enji Cooper > wrote: >>=20 >> On Wed, Feb 12, 2020 at 9:37 AM Ed Maste wrote: >>>=20 >>> Author: emaste >>> Date: Wed Feb 12 17:37:32 2020 >>> New Revision: 357833 >>> URL: https://svnweb.freebsd.org/changeset/base/357833 >>>=20 >>> Log: >>> Tag pjdfstest symlink with pkgbase package >>>=20 >>> As with the rest of pjdfstest, tag the symlink with package=3Dtests. >>> The tests -> . symlink seems a little strange but that's = independent >>> of pkgbase. >>=20 >> Sidenote: the reason for the symlink was to facilitate integrating = the >> test suite without having to completely refactor the code. >=20 > Thanks for the note - this probably ought to be a comment by the > symlink; I'll add it at some point if you don't get to it first. I=E2=80=99ll do that in a bit. I need to dust off the cobwebs with my = src bit anyhow, lest the reaper reap it :). -Enji= From owner-svn-src-all@freebsd.org Mon Feb 17 18:29:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CEA2F241B89; Mon, 17 Feb 2020 18:29:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Lsvm4zGbz4Xgk; Mon, 17 Feb 2020 18:29:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "tensor.andric.com", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: dim) by smtp.freebsd.org (Postfix) with ESMTPSA id 7371BFB99; Mon, 17 Feb 2020 18:29:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from [IPv6:2001:470:7a58::a095:7158:79a2:dec0] (unknown [IPv6:2001:470:7a58:0:a095:7158:79a2:dec0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 8D0332CB19; Mon, 17 Feb 2020 19:29:22 +0100 (CET) From: Dimitry Andric Message-Id: Content-Type: multipart/signed; boundary="Apple-Mail=_D8BE2C6E-0B9E-40D8-804A-4923A420B97E"; protocol="application/pgp-signature"; micalg=pgp-sha1 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: svn commit: r357647 - in head/sys: cam/ata cam/mmc cam/nvme cam/scsi dev/aac dev/altera/avgen dev/altera/sdcard dev/amr dev/cfi dev/flash dev/ida dev/ips dev/mfi dev/mlx dev/mmc dev/nvme dev/pst de... Date: Mon, 17 Feb 2020 19:29:15 +0100 In-Reply-To: <202002070922.0179M9up051074@repo.freebsd.org> Cc: src-committers , svn-src-all , svn-src-head@freebsd.org To: Scott Long References: <202002070922.0179M9up051074@repo.freebsd.org> X-Mailer: Apple Mail (2.3445.104.11) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 18:29:24 -0000 --Apple-Mail=_D8BE2C6E-0B9E-40D8-804A-4923A420B97E Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On 7 Feb 2020, at 10:22, Scott Long wrote: >=20 > Author: scottl > Date: Fri Feb 7 09:22:08 2020 > New Revision: 357647 > URL: https://svnweb.freebsd.org/changeset/base/357647 >=20 > Log: > Ever since the block layer expanded its command syntax beyond just > BIO_READ and BIO_WRITE, we've handled this expanded syntax poorly in > drivers when the driver doesn't support a particular command. Do a > sweep and fix that. ... > Modified: head/sys/dev/altera/sdcard/altera_sdcard_io.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/dev/altera/sdcard/altera_sdcard_io.c Fri Feb 7 = 08:39:00 2020 (r357646) > +++ head/sys/dev/altera/sdcard/altera_sdcard_io.c Fri Feb 7 = 09:22:08 2020 (r357647) > @@ -293,27 +293,27 @@ recheck: > } >=20 > static void > -altera_sdcard_io_start_internal(struct altera_sdcard_softc *sc, = struct bio *bp) > +altera_sdcard_io_start_internal(struct altera_sdcard_softc *sc, = struct bio **bp) > { >=20 > - switch (bp->bio_cmd) { > + switch (*bp->bio_cmd) { > case BIO_READ: > - altera_sdcard_write_cmd_arg(sc, bp->bio_pblkno * > + altera_sdcard_write_cmd_arg(sc, *bp->bio_pblkno * > ALTERA_SDCARD_SECTORSIZE); > altera_sdcard_write_cmd(sc, = ALTERA_SDCARD_CMD_READ_BLOCK); > break; >=20 > case BIO_WRITE: > - altera_sdcard_write_rxtx_buffer(sc, bp->bio_data, > - bp->bio_bcount); > - altera_sdcard_write_cmd_arg(sc, bp->bio_pblkno * > + altera_sdcard_write_rxtx_buffer(sc, *bp->bio_data, > + *bp->bio_bcount); > + altera_sdcard_write_cmd_arg(sc, *bp->bio_pblkno * > ALTERA_SDCARD_SECTORSIZE); > altera_sdcard_write_cmd(sc, = ALTERA_SDCARD_CMD_WRITE_BLOCK); > break; >=20 > default: > - panic("%s: unsupported I/O operation %d", __func__, > - bp->bio_cmd); > + biofinish(*bp, NULL, EOPNOTSUPP); > + *bp =3D NULL; > } > } >=20 This gets the indirections wrong, leading to errors with at least clang = 10: sys/dev/altera/sdcard/altera_sdcard_io.c: In function = 'altera_sdcard_io_start_internal': sys/dev/altera/sdcard/altera_sdcard_io.c:299:13: error: '*bp' is a = pointer; did you mean to use '->'? switch (*bp->bio_cmd) { ^~ -> sys/dev/altera/sdcard/altera_sdcard_io.c:301:38: error: '*bp' is a = pointer; did you mean to use '->'? altera_sdcard_write_cmd_arg(sc, *bp->bio_pblkno * ^~ -> sys/dev/altera/sdcard/altera_sdcard_io.c:307:42: error: '*bp' is a = pointer; did you mean to use '->'? altera_sdcard_write_rxtx_buffer(sc, *bp->bio_data, ^~ -> sys/dev/altera/sdcard/altera_sdcard_io.c:308:10: error: '*bp' is a = pointer; did you mean to use '->'? *bp->bio_bcount); ^~ -> sys/dev/altera/sdcard/altera_sdcard_io.c:309:38: error: '*bp' is a = pointer; did you mean to use '->'? altera_sdcard_write_cmd_arg(sc, *bp->bio_pblkno * ^~ -> In this case, (*bp)->fieldname is the correct way to specify the struct = fields. > @@ -332,8 +332,8 @@ altera_sdcard_io_start(struct altera_sdcard_softc = *sc, > */ > KASSERT(bp->bio_bcount =3D=3D ALTERA_SDCARD_SECTORSIZE, > ("%s: I/O size not %d", __func__, = ALTERA_SDCARD_SECTORSIZE)); > - altera_sdcard_io_start_internal(sc, bp); > - sc->as_currentbio =3D bp; > + altera_sdcard_io_start_internal(sc, &bp); > + sc->as_currentbio =3D *bp; > sc->as_retriesleft =3D ALTERA_SDCARD_RETRY_LIMIT; > } And a similar error here: sys/dev/altera/sdcard/altera_sdcard_io.c: In function = 'altera_sdcard_io_start': sys/dev/altera/sdcard/altera_sdcard_io.c:336:20: error: incompatible = types when assigning to type 'struct bio *' from type 'struct bio' sc->as_currentbio =3D *bp; ^ As sc->as_currentbio is already a pointer, there is no need to = dereference bp again. I submitted https://reviews.freebsd.org/D23730 to get this fixed. -Dimitry --Apple-Mail=_D8BE2C6E-0B9E-40D8-804A-4923A420B97E Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.2 iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCXkrbewAKCRCwXqMKLiCW o/K3AKCUnzPm0IfBvYH85zHlI2CBvXm9sACfSqibE6We0VCDmVKvkaFagMqw2mw= =xBA8 -----END PGP SIGNATURE----- --Apple-Mail=_D8BE2C6E-0B9E-40D8-804A-4923A420B97E-- From owner-svn-src-all@freebsd.org Mon Feb 17 18:39:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A7738242569; Mon, 17 Feb 2020 18:39:38 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Lt7Z3L7fz3F3w; Mon, 17 Feb 2020 18:39:38 +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 6DCA0B3E9; Mon, 17 Feb 2020 18:39:38 +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 01HIdca6005355; Mon, 17 Feb 2020 18:39:38 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HIdcVQ005354; Mon, 17 Feb 2020 18:39:38 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202002171839.01HIdcVQ005354@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 17 Feb 2020 18:39:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358031 - stable/12/contrib/elftoolchain/addr2line X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/contrib/elftoolchain/addr2line X-SVN-Commit-Revision: 358031 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 18:39:38 -0000 Author: markj Date: Mon Feb 17 18:39:38 2020 New Revision: 358031 URL: https://svnweb.freebsd.org/changeset/base/358031 Log: MFC r350515: Capsicumize addr2line(1). Modified: stable/12/contrib/elftoolchain/addr2line/addr2line.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/elftoolchain/addr2line/addr2line.c ============================================================================== --- stable/12/contrib/elftoolchain/addr2line/addr2line.c Mon Feb 17 18:37:15 2020 (r358030) +++ stable/12/contrib/elftoolchain/addr2line/addr2line.c Mon Feb 17 18:39:38 2020 (r358031) @@ -25,6 +25,8 @@ */ #include + +#include #include #include #include @@ -649,6 +651,7 @@ find_section_base(const char *exe, Elf *e, const char int main(int argc, char **argv) { + cap_rights_t rights; Elf *e; Dwarf_Debug dbg; Dwarf_Error de; @@ -705,6 +708,16 @@ main(int argc, char **argv) if ((fd = open(exe, O_RDONLY)) < 0) err(EXIT_FAILURE, "%s", exe); + + if (caph_rights_limit(fd, cap_rights_init(&rights, CAP_FSTAT, + CAP_MMAP_R)) < 0) + errx(EXIT_FAILURE, "caph_rights_limit"); + + caph_cache_catpages(); + if (caph_limit_stdio() < 0) + errx(EXIT_FAILURE, "failed to limit stdio rights"); + if (caph_enter() < 0) + errx(EXIT_FAILURE, "failed to enter capability mode"); if (dwarf_init(fd, DW_DLC_READ, NULL, NULL, &dbg, &de)) errx(EXIT_FAILURE, "dwarf_init: %s", dwarf_errmsg(de)); From owner-svn-src-all@freebsd.org Mon Feb 17 18:40:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E0E9A2425E5; Mon, 17 Feb 2020 18:40:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Lt804ccPz3FYn; Mon, 17 Feb 2020 18:40:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 93A83B3F2; Mon, 17 Feb 2020 18:40:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01HIe0Za005466; Mon, 17 Feb 2020 18:40:00 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HIe0CD005465; Mon, 17 Feb 2020 18:40:00 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202002171840.01HIe0CD005465@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 17 Feb 2020 18:40:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358032 - stable/12/contrib/elftoolchain/addr2line X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/contrib/elftoolchain/addr2line X-SVN-Commit-Revision: 358032 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 18:40:01 -0000 Author: markj Date: Mon Feb 17 18:40:00 2020 New Revision: 358032 URL: https://svnweb.freebsd.org/changeset/base/358032 Log: MFC r357450, r357462: addr2line: Cache CU DIEs upon a successful address lookup. Modified: stable/12/contrib/elftoolchain/addr2line/addr2line.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/elftoolchain/addr2line/addr2line.c ============================================================================== --- stable/12/contrib/elftoolchain/addr2line/addr2line.c Mon Feb 17 18:39:38 2020 (r358031) +++ stable/12/contrib/elftoolchain/addr2line/addr2line.c Mon Feb 17 18:40:00 2020 (r358032) @@ -25,6 +25,7 @@ */ #include +#include #include #include @@ -39,7 +40,6 @@ #include #include -#include "uthash.h" #include "_elftc.h" ELFTC_VCSID("$Id: addr2line.c 3544 2017-06-05 14:51:44Z emaste $"); @@ -57,13 +57,14 @@ struct Func { }; struct CU { + RB_ENTRY(CU) entry; Dwarf_Off off; Dwarf_Unsigned lopc; Dwarf_Unsigned hipc; char **srcfiles; Dwarf_Signed nsrcfiles; STAILQ_HEAD(, Func) funclist; - UT_hash_handle hh; + Dwarf_Die die; }; static struct option longopts[] = { @@ -80,11 +81,23 @@ static struct option longopts[] = { {"version", no_argument, NULL, 'V'}, {NULL, 0, NULL, 0} }; + static int demangle, func, base, inlines, print_addr, pretty_print; static char unknown[] = { '?', '?', '\0' }; static Dwarf_Addr section_base; -static struct CU *culist; +/* Need a new curlopc that stores last lopc value. */ +static Dwarf_Unsigned curlopc = ~0ULL; +static RB_HEAD(cutree, CU) cuhead = RB_INITIALIZER(&cuhead); +static int +lopccmp(struct CU *e1, struct CU *e2) +{ + return (e1->lopc < e2->lopc ? -1 : e1->lopc > e2->lopc); +} + +RB_PROTOTYPE(cutree, CU, entry, lopccmp); +RB_GENERATE(cutree, CU, entry, lopccmp) + #define USAGE_MESSAGE "\ Usage: %s [options] hexaddress...\n\ Map program addresses to source file names and line numbers.\n\n\ @@ -378,6 +391,26 @@ print_inlines(struct CU *cu, struct Func *f, Dwarf_Uns f->call_line); } +static struct CU * +culookup(Dwarf_Unsigned addr) +{ + struct CU find, *res; + + find.lopc = addr; + res = RB_NFIND(cutree, &cuhead, &find); + if (res != NULL) { + if (res->lopc != addr) + res = RB_PREV(cutree, &cuhead, res); + if (res != NULL && addr >= res->lopc && addr < res->hipc) + return (res); + } else { + res = RB_MAX(cutree, &cuhead); + if (res != NULL && addr >= res->lopc && addr < res->hipc) + return (res); + } + return (NULL); +} + static void translate(Dwarf_Debug dbg, Elf *e, const char* addrstr) { @@ -400,11 +433,30 @@ translate(Dwarf_Debug dbg, Elf *e, const char* addrstr addr += section_base; lineno = 0; file = unknown; - cu = NULL; die = NULL; + ret = DW_DLV_OK; - while ((ret = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, NULL, - &de)) == DW_DLV_OK) { + cu = culookup(addr); + if (cu != NULL) { + die = cu->die; + goto status_ok; + } + + while (true) { + /* + * We resume the CU scan from the last place we found a match. + * Because when we have 2 sequential addresses, and the second + * one is of the next CU, it is faster to just go to the next CU + * instead of starting from the beginning. + */ + ret = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, NULL, + &de); + if (ret == DW_DLV_NO_ENTRY) { + if (curlopc == ~0ULL) + goto out; + ret = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, + NULL, &de); + } die = NULL; while (dwarf_siblingof(dbg, die, &ret_die, &de) == DW_DLV_OK) { if (die != NULL) @@ -420,12 +472,15 @@ translate(Dwarf_Debug dbg, Elf *e, const char* addrstr if (tag == DW_TAG_compile_unit) break; } + if (ret_die == NULL) { warnx("could not find DW_TAG_compile_unit die"); goto next_cu; } if (dwarf_attrval_unsigned(die, DW_AT_low_pc, &lopc, &de) == DW_DLV_OK) { + if (lopc == curlopc) + goto out; if (dwarf_attrval_unsigned(die, DW_AT_high_pc, &hipc, &de) == DW_DLV_OK) { /* @@ -440,31 +495,27 @@ translate(Dwarf_Debug dbg, Elf *e, const char* addrstr hipc = ~0ULL; } - /* - * Record the CU in the hash table for faster lookup - * later. - */ if (dwarf_dieoffset(die, &off, &de) != DW_DLV_OK) { warnx("dwarf_dieoffset failed: %s", dwarf_errmsg(de)); goto out; } - HASH_FIND(hh, culist, &off, sizeof(off), cu); - if (cu == NULL) { + + if (addr >= lopc && addr < hipc) { if ((cu = calloc(1, sizeof(*cu))) == NULL) err(EXIT_FAILURE, "calloc"); cu->off = off; cu->lopc = lopc; cu->hipc = hipc; + cu->die = die; STAILQ_INIT(&cu->funclist); - HASH_ADD(hh, culist, off, sizeof(off), cu); - } + RB_INSERT(cutree, &cuhead, cu); - if (addr >= lopc && addr < hipc) + curlopc = lopc; break; + } } - - next_cu: +next_cu: if (die != NULL) { dwarf_dealloc(dbg, die, DW_DLA_DIE); die = NULL; @@ -474,6 +525,7 @@ translate(Dwarf_Debug dbg, Elf *e, const char* addrstr if (ret != DW_DLV_OK || die == NULL) goto out; +status_ok: switch (dwarf_srclines(die, &lbuf, &lcount, &de)) { case DW_DLV_OK: break; @@ -572,21 +624,6 @@ out: cu->srcfiles != NULL && f != NULL && f->inlined_caller != NULL) print_inlines(cu, f->inlined_caller, f->call_file, f->call_line); - - if (die != NULL) - dwarf_dealloc(dbg, die, DW_DLA_DIE); - - /* - * Reset internal CU pointer, so we will start from the first CU - * next round. - */ - while (ret != DW_DLV_NO_ENTRY) { - if (ret == DW_DLV_ERROR) - errx(EXIT_FAILURE, "dwarf_next_cu_header: %s", - dwarf_errmsg(de)); - ret = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, NULL, - &de); - } } static void From owner-svn-src-all@freebsd.org Mon Feb 17 19:31:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7BEA5243B1C; Mon, 17 Feb 2020 19:31:35 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LvHW1hHyz4cTn; Mon, 17 Feb 2020 19:31:35 +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 2DFBCBF92; Mon, 17 Feb 2020 19:31:35 +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 01HJVZ96042981; Mon, 17 Feb 2020 19:31:35 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HJVZZe042980; Mon, 17 Feb 2020 19:31:35 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202002171931.01HJVZZe042980@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Mon, 17 Feb 2020 19:31:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r358035 - stable/10/sys/fs/nfsserver X-SVN-Group: stable-10 X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: stable/10/sys/fs/nfsserver X-SVN-Commit-Revision: 358035 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 19:31:35 -0000 Author: rmacklem Date: Mon Feb 17 19:31:34 2020 New Revision: 358035 URL: https://svnweb.freebsd.org/changeset/base/358035 Log: MFC: r357149 Fix a crash in the NFSv4 server. The PR reported a crash that occurred when a file was removed while client(s) were actively doing lock operations on it. Since nfsvno_getvp() will return NULL when the file does not exist, the bug was obvious and easy to fix via this patch. It is a little surprising that this wasn't found sooner, but I guess the above case rarely occurs. PR: 242768 Modified: stable/10/sys/fs/nfsserver/nfs_nfsdstate.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/nfsserver/nfs_nfsdstate.c ============================================================================== --- stable/10/sys/fs/nfsserver/nfs_nfsdstate.c Mon Feb 17 19:20:47 2020 (r358034) +++ stable/10/sys/fs/nfsserver/nfs_nfsdstate.c Mon Feb 17 19:31:34 2020 (r358035) @@ -1488,7 +1488,8 @@ nfsrv_freeallnfslocks(struct nfsstate *stp, vnode_t vp tvp = NULL; else if (vp == NULL && cansleep != 0) { tvp = nfsvno_getvp(&lfp->lf_fh); - NFSVOPUNLOCK(tvp, 0); + if (tvp != NULL) + NFSVOPUNLOCK(tvp, 0); } else tvp = vp; gottvp = 1; From owner-svn-src-all@freebsd.org Mon Feb 17 19:32:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9B156243CE7; Mon, 17 Feb 2020 19:32:55 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LvK25bfbz4dlR; Mon, 17 Feb 2020 19:32:54 +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 BB604C118; Mon, 17 Feb 2020 19:32:54 +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 01HJWsoE044521; Mon, 17 Feb 2020 19:32:54 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HJWsr5044520; Mon, 17 Feb 2020 19:32:54 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202002171932.01HJWsr5044520@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Mon, 17 Feb 2020 19:32:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358036 - stable/12/sys/fs/nfsserver X-SVN-Group: stable-12 X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: stable/12/sys/fs/nfsserver X-SVN-Commit-Revision: 358036 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 19:32:55 -0000 Author: rmacklem Date: Mon Feb 17 19:32:54 2020 New Revision: 358036 URL: https://svnweb.freebsd.org/changeset/base/358036 Log: MFC: r357149 Fix a crash in the NFSv4 server. The PR reported a crash that occurred when a file was removed while client(s) were actively doing lock operations on it. Since nfsvno_getvp() will return NULL when the file does not exist, the bug was obvious and easy to fix via this patch. It is a little surprising that this wasn't found sooner, but I guess the above case rarely occurs. PR: 242768 Modified: stable/12/sys/fs/nfsserver/nfs_nfsdstate.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/fs/nfsserver/nfs_nfsdstate.c ============================================================================== --- stable/12/sys/fs/nfsserver/nfs_nfsdstate.c Mon Feb 17 19:31:34 2020 (r358035) +++ stable/12/sys/fs/nfsserver/nfs_nfsdstate.c Mon Feb 17 19:32:54 2020 (r358036) @@ -1555,7 +1555,8 @@ nfsrv_freeallnfslocks(struct nfsstate *stp, vnode_t vp tvp = NULL; else if (vp == NULL && cansleep != 0) { tvp = nfsvno_getvp(&lfp->lf_fh); - NFSVOPUNLOCK(tvp, 0); + if (tvp != NULL) + NFSVOPUNLOCK(tvp, 0); } else tvp = vp; gottvp = 1; From owner-svn-src-all@freebsd.org Mon Feb 17 19:40:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AF353244058; Mon, 17 Feb 2020 19:40:26 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LvTk42h6z3GsG; Mon, 17 Feb 2020 19:40:26 +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 85F11C150; Mon, 17 Feb 2020 19:40:26 +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 01HJeQ6x045165; Mon, 17 Feb 2020 19:40:26 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HJeQGM045164; Mon, 17 Feb 2020 19:40:26 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202002171940.01HJeQGM045164@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Mon, 17 Feb 2020 19:40:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358037 - stable/11/sys/fs/nfsserver X-SVN-Group: stable-11 X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: stable/11/sys/fs/nfsserver X-SVN-Commit-Revision: 358037 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 19:40:26 -0000 Author: rmacklem Date: Mon Feb 17 19:40:26 2020 New Revision: 358037 URL: https://svnweb.freebsd.org/changeset/base/358037 Log: MFC: r357149 Fix a crash in the NFSv4 server. The PR reported a crash that occurred when a file was removed while client(s) were actively doing lock operations on it. Since nfsvno_getvp() will return NULL when the file does not exist, the bug was obvious and easy to fix via this patch. It is a little surprising that this wasn't found sooner, but I guess the above case rarely occurs. PR: 242768 Modified: stable/11/sys/fs/nfsserver/nfs_nfsdstate.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/fs/nfsserver/nfs_nfsdstate.c ============================================================================== --- stable/11/sys/fs/nfsserver/nfs_nfsdstate.c Mon Feb 17 19:32:54 2020 (r358036) +++ stable/11/sys/fs/nfsserver/nfs_nfsdstate.c Mon Feb 17 19:40:26 2020 (r358037) @@ -1483,7 +1483,8 @@ nfsrv_freeallnfslocks(struct nfsstate *stp, vnode_t vp tvp = NULL; else if (vp == NULL && cansleep != 0) { tvp = nfsvno_getvp(&lfp->lf_fh); - NFSVOPUNLOCK(tvp, 0); + if (tvp != NULL) + NFSVOPUNLOCK(tvp, 0); } else tvp = vp; gottvp = 1; From owner-svn-src-all@freebsd.org Mon Feb 17 20:12:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 424952455B2; Mon, 17 Feb 2020 20:12:35 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LwBq0mmRz4FND; Mon, 17 Feb 2020 20:12:34 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CCB3CC91F; Mon, 17 Feb 2020 20:12:34 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01HKCYJP071042; Mon, 17 Feb 2020 20:12:34 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HKCYFG071041; Mon, 17 Feb 2020 20:12:34 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <202002172012.01HKCYFG071041@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Mon, 17 Feb 2020 20:12:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358041 - head/sys/dev/altera/sdcard X-SVN-Group: head X-SVN-Commit-Author: scottl X-SVN-Commit-Paths: head/sys/dev/altera/sdcard X-SVN-Commit-Revision: 358041 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 20:12:35 -0000 Author: scottl Date: Mon Feb 17 20:12:34 2020 New Revision: 358041 URL: https://svnweb.freebsd.org/changeset/base/358041 Log: Fix syntax error from r357647. Adjust a variable name to make the use more clear. Reported by: dim Modified: head/sys/dev/altera/sdcard/altera_sdcard_io.c Modified: head/sys/dev/altera/sdcard/altera_sdcard_io.c ============================================================================== --- head/sys/dev/altera/sdcard/altera_sdcard_io.c Mon Feb 17 20:09:06 2020 (r358040) +++ head/sys/dev/altera/sdcard/altera_sdcard_io.c Mon Feb 17 20:12:34 2020 (r358041) @@ -293,27 +293,31 @@ recheck: } static void -altera_sdcard_io_start_internal(struct altera_sdcard_softc *sc, struct bio **bp) +altera_sdcard_io_start_internal(struct altera_sdcard_softc *sc, + struct bio **bpp) { + struct bio *bp; - switch (*bp->bio_cmd) { + bp = *bpp; + + switch (bp->bio_cmd) { case BIO_READ: - altera_sdcard_write_cmd_arg(sc, *bp->bio_pblkno * + altera_sdcard_write_cmd_arg(sc, bp->bio_pblkno * ALTERA_SDCARD_SECTORSIZE); altera_sdcard_write_cmd(sc, ALTERA_SDCARD_CMD_READ_BLOCK); break; case BIO_WRITE: - altera_sdcard_write_rxtx_buffer(sc, *bp->bio_data, - *bp->bio_bcount); - altera_sdcard_write_cmd_arg(sc, *bp->bio_pblkno * + altera_sdcard_write_rxtx_buffer(sc, bp->bio_data, + bp->bio_bcount); + altera_sdcard_write_cmd_arg(sc, bp->bio_pblkno * ALTERA_SDCARD_SECTORSIZE); altera_sdcard_write_cmd(sc, ALTERA_SDCARD_CMD_WRITE_BLOCK); break; default: - biofinish(*bp, NULL, EOPNOTSUPP); - *bp = NULL; + biofinish(bp, NULL, EOPNOTSUPP); + *bpp = NULL; } } @@ -333,7 +337,7 @@ altera_sdcard_io_start(struct altera_sdcard_softc *sc, KASSERT(bp->bio_bcount == ALTERA_SDCARD_SECTORSIZE, ("%s: I/O size not %d", __func__, ALTERA_SDCARD_SECTORSIZE)); altera_sdcard_io_start_internal(sc, &bp); - sc->as_currentbio = *bp; + sc->as_currentbio = bp; sc->as_retriesleft = ALTERA_SDCARD_RETRY_LIMIT; } From owner-svn-src-all@freebsd.org Mon Feb 17 20:22:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 498DA245BB1; Mon, 17 Feb 2020 20:22:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LwPt6g8zz4Q5q; Mon, 17 Feb 2020 20:22:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DB466CB25; Mon, 17 Feb 2020 20:22:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01HKMAn5074331; Mon, 17 Feb 2020 20:22:10 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HKMAKS074330; Mon, 17 Feb 2020 20:22:10 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002172022.01HKMAKS074330@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 17 Feb 2020 20:22:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358044 - head/sys/arm/allwinner X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: head/sys/arm/allwinner X-SVN-Commit-Revision: 358044 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 20:22:11 -0000 Author: dim Date: Mon Feb 17 20:22:10 2020 New Revision: 358044 URL: https://svnweb.freebsd.org/changeset/base/358044 Log: Merge r358030 from the clang1000-import branch: Work around new clang 10.0.0 -Werror warning: sys/arm/allwinner/aw_cir.c:208:41: error: converting the result of '<<' to a boolean; did you mean '((1 & 255) << 23) != 0'? [-Werror,-Wint-in-bool-context] active_delay = (AW_IR_ACTIVE_T + 1) * (AW_IR_ACTIVE_T_C ? 128 : 1); ^ sys/arm/allwinner/aw_cir.c:130:39: note: expanded from macro 'AW_IR_ACTIVE_T_C' #define AW_IR_ACTIVE_T_C ((1 & 0xff) << 23) ^ Add the != 0 part to indicate that we indeed want to compare against zero. MFC after: 3 days Modified: head/sys/arm/allwinner/aw_cir.c Directory Properties: head/ (props changed) Modified: head/sys/arm/allwinner/aw_cir.c ============================================================================== --- head/sys/arm/allwinner/aw_cir.c Mon Feb 17 20:19:43 2020 (r358043) +++ head/sys/arm/allwinner/aw_cir.c Mon Feb 17 20:22:10 2020 (r358044) @@ -205,7 +205,7 @@ aw_ir_decode_packets(struct aw_ir_softc *sc) device_printf(sc->dev, "sc->dcnt = %d\n", sc->dcnt); /* Find Lead 1 (bit separator) */ - active_delay = (AW_IR_ACTIVE_T + 1) * (AW_IR_ACTIVE_T_C ? 128 : 1); + active_delay = (AW_IR_ACTIVE_T + 1) * (AW_IR_ACTIVE_T_C != 0 ? 128 : 1); len = 0; len += (active_delay >> 1); if (bootverbose) From owner-svn-src-all@freebsd.org Mon Feb 17 20:23:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 618FC245C6F; Mon, 17 Feb 2020 20:23:27 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LwRM1PK3z4RW0; Mon, 17 Feb 2020 20:23:27 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1CC57CB4C; Mon, 17 Feb 2020 20:23:27 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01HKNQ5g077354; Mon, 17 Feb 2020 20:23:26 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HKNQCD077353; Mon, 17 Feb 2020 20:23:26 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002172023.01HKNQCD077353@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 17 Feb 2020 20:23:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358045 - head/sys/powerpc/conf/dpaa X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: head/sys/powerpc/conf/dpaa X-SVN-Commit-Revision: 358045 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 20:23:27 -0000 Author: dim Date: Mon Feb 17 20:23:26 2020 New Revision: 358045 URL: https://svnweb.freebsd.org/changeset/base/358045 Log: Merge r358034 from the clang1000-import branch: Disable new clang 10.0.0 warnings about misleading indentation in sys/contrib/ncsw/Peripherals/FM/fman_ncsw.c. This is horribly formatted contributed code, and fixing it is not worth the effort. MFC after: 3 days Modified: head/sys/powerpc/conf/dpaa/files.dpaa Directory Properties: head/ (props changed) Modified: head/sys/powerpc/conf/dpaa/files.dpaa ============================================================================== --- head/sys/powerpc/conf/dpaa/files.dpaa Mon Feb 17 20:22:10 2020 (r358044) +++ head/sys/powerpc/conf/dpaa/files.dpaa Mon Feb 17 20:23:26 2020 (r358045) @@ -74,7 +74,7 @@ contrib/ncsw/Peripherals/FM/fm_muram.c optional dpaa contrib/ncsw/Peripherals/FM/fm_ncsw.c optional dpaa \ no-depend compile-with "${DPAA_COMPILE_CMD}" contrib/ncsw/Peripherals/FM/fman_ncsw.c optional dpaa \ - no-depend compile-with "${DPAA_COMPILE_CMD}" + no-depend compile-with "${DPAA_COMPILE_CMD} ${NO_WMISLEADING_INDENTATION}" contrib/ncsw/Peripherals/QM/qm.c optional dpaa \ no-depend compile-with "${DPAA_COMPILE_CMD}" contrib/ncsw/Peripherals/QM/qm_portal_fqr.c optional dpaa \ From owner-svn-src-all@freebsd.org Mon Feb 17 20:24:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1F0CA245D0F; Mon, 17 Feb 2020 20:24:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LwSS04Whz4SYp; Mon, 17 Feb 2020 20:24:23 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E63DACB4D; Mon, 17 Feb 2020 20:24:23 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01HKON5w077469; Mon, 17 Feb 2020 20:24:23 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HKOMVc077458; Mon, 17 Feb 2020 20:24:22 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002172024.01HKOMVc077458@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 17 Feb 2020 20:24:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358046 - head/lib/libc/quad X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: head/lib/libc/quad X-SVN-Commit-Revision: 358046 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 20:24:24 -0000 Author: dim Date: Mon Feb 17 20:24:21 2020 New Revision: 358046 URL: https://svnweb.freebsd.org/changeset/base/358046 Log: Merge r358042 from the clang1000-import branch: Add casts and L suffixes to libc quad support, to work around various -Werror warnings from clang 10.0.0, such as: lib/libc/quad/fixdfdi.c:57:12: error: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Werror,-Wimplicit-int-float-conversion] if (x >= QUAD_MAX) ~~ ^~~~~~~~ /usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/sys/limits.h:89:19: note: expanded from macro 'QUAD_MAX' #define QUAD_MAX (__QUAD_MAX) /* max value for a quad_t */ ^~~~~~~~~~ /usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/machine/_limits.h:91:20: note: expanded from macro '__QUAD_MAX' #define __QUAD_MAX __LLONG_MAX /* max value for a quad_t */ ^~~~~~~~~~~ /usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/machine/_limits.h:75:21: note: expanded from macro '__LLONG_MAX' #define __LLONG_MAX 0x7fffffffffffffffLL /* max value for a long long */ ^~~~~~~~~~~~~~~~~~~~ and many instances of: lib/libc/quad/fixunsdfdi.c:73:17: error: shift count >= width of type [-Werror,-Wshift-count-overflow] toppart = (x - ONE_HALF) / ONE; ^~~~~~~~ lib/libc/quad/fixunsdfdi.c:45:19: note: expanded from macro 'ONE_HALF' #define ONE_HALF (ONE_FOURTH * 2.0) ^~~~~~~~~~ lib/libc/quad/fixunsdfdi.c:44:23: note: expanded from macro 'ONE_FOURTH' #define ONE_FOURTH (1 << (LONG_BITS - 2)) ^ ~~~~~~~~~~~~~~~ lib/libc/quad/fixunsdfdi.c:73:29: error: shift count >= width of type [-Werror,-Wshift-count-overflow] toppart = (x - ONE_HALF) / ONE; ^~~ lib/libc/quad/fixunsdfdi.c:46:15: note: expanded from macro 'ONE' #define ONE (ONE_FOURTH * 4.0) ^~~~~~~~~~ lib/libc/quad/fixunsdfdi.c:44:23: note: expanded from macro 'ONE_FOURTH' #define ONE_FOURTH (1 << (LONG_BITS - 2)) ^ ~~~~~~~~~~~~~~~ MFC after: 3 days Modified: head/lib/libc/quad/fixdfdi.c head/lib/libc/quad/fixsfdi.c head/lib/libc/quad/fixunsdfdi.c head/lib/libc/quad/fixunssfdi.c head/lib/libc/quad/floatdidf.c head/lib/libc/quad/floatdisf.c head/lib/libc/quad/floatunsdidf.c head/lib/libc/quad/qdivrem.c head/lib/libc/quad/quad.h Directory Properties: head/ (props changed) Modified: head/lib/libc/quad/fixdfdi.c ============================================================================== --- head/lib/libc/quad/fixdfdi.c Mon Feb 17 20:23:26 2020 (r358045) +++ head/lib/libc/quad/fixdfdi.c Mon Feb 17 20:24:21 2020 (r358046) @@ -49,12 +49,12 @@ quad_t __fixdfdi(double x) { if (x < 0) - if (x <= QUAD_MIN) + if (x <= (double)QUAD_MIN) return (QUAD_MIN); else return ((quad_t)-(u_quad_t)-x); else - if (x >= QUAD_MAX) + if (x >= (double)QUAD_MAX) return (QUAD_MAX); else return ((quad_t)(u_quad_t)x); Modified: head/lib/libc/quad/fixsfdi.c ============================================================================== --- head/lib/libc/quad/fixsfdi.c Mon Feb 17 20:23:26 2020 (r358045) +++ head/lib/libc/quad/fixsfdi.c Mon Feb 17 20:24:21 2020 (r358046) @@ -51,12 +51,12 @@ long long __fixsfdi(float x) { if (x < 0) - if (x <= QUAD_MIN) + if (x <= (float)QUAD_MIN) return (QUAD_MIN); else return ((quad_t)-(u_quad_t)-x); else - if (x >= QUAD_MAX) + if (x >= (float)QUAD_MAX) return (QUAD_MAX); else return ((quad_t)(u_quad_t)x); Modified: head/lib/libc/quad/fixunsdfdi.c ============================================================================== --- head/lib/libc/quad/fixunsdfdi.c Mon Feb 17 20:23:26 2020 (r358045) +++ head/lib/libc/quad/fixunsdfdi.c Mon Feb 17 20:24:21 2020 (r358046) @@ -41,7 +41,7 @@ __FBSDID("$FreeBSD$"); #include "quad.h" -#define ONE_FOURTH (1 << (LONG_BITS - 2)) +#define ONE_FOURTH (1L << (LONG_BITS - 2)) #define ONE_HALF (ONE_FOURTH * 2.0) #define ONE (ONE_FOURTH * 4.0) @@ -84,11 +84,11 @@ __fixunsdfdi(double x) x -= (double)t.uq; if (x < 0) { t.ul[H]--; - x += ULONG_MAX; + x += (double)ULONG_MAX; } - if (x > ULONG_MAX) { + if (x > (double)ULONG_MAX) { t.ul[H]++; - x -= ULONG_MAX; + x -= (double)ULONG_MAX; } t.ul[L] = (u_long)x; return (t.uq); Modified: head/lib/libc/quad/fixunssfdi.c ============================================================================== --- head/lib/libc/quad/fixunssfdi.c Mon Feb 17 20:23:26 2020 (r358045) +++ head/lib/libc/quad/fixunssfdi.c Mon Feb 17 20:24:21 2020 (r358046) @@ -41,7 +41,7 @@ __FBSDID("$FreeBSD$"); #include "quad.h" -#define ONE_FOURTH (1 << (LONG_BITS - 2)) +#define ONE_FOURTH (1L << (LONG_BITS - 2)) #define ONE_HALF (ONE_FOURTH * 2.0) #define ONE (ONE_FOURTH * 4.0) @@ -89,11 +89,11 @@ __fixunssfdi(float f) x -= (double)t.uq; if (x < 0) { t.ul[H]--; - x += ULONG_MAX; + x += (double)ULONG_MAX; } - if (x > ULONG_MAX) { + if (x > (double)ULONG_MAX) { t.ul[H]++; - x -= ULONG_MAX; + x -= (double)ULONG_MAX; } t.ul[L] = (u_long)x; return (t.uq); Modified: head/lib/libc/quad/floatdidf.c ============================================================================== --- head/lib/libc/quad/floatdidf.c Mon Feb 17 20:23:26 2020 (r358045) +++ head/lib/libc/quad/floatdidf.c Mon Feb 17 20:24:21 2020 (r358046) @@ -66,7 +66,7 @@ __floatdidf(quad_t x) * code and does not know how to get at an exponent. Machine- * specific code may be able to do this more efficiently. */ - d = (double)u.ul[H] * ((1 << (LONG_BITS - 2)) * 4.0); + d = (double)u.ul[H] * ((1L << (LONG_BITS - 2)) * 4.0); d += u.ul[L]; return (neg ? -d : d); Modified: head/lib/libc/quad/floatdisf.c ============================================================================== --- head/lib/libc/quad/floatdisf.c Mon Feb 17 20:23:26 2020 (r358045) +++ head/lib/libc/quad/floatdisf.c Mon Feb 17 20:24:21 2020 (r358046) @@ -68,7 +68,7 @@ __floatdisf(quad_t x) * * Using double here may be excessive paranoia. */ - f = (double)u.ul[H] * ((1 << (LONG_BITS - 2)) * 4.0); + f = (double)u.ul[H] * ((1L << (LONG_BITS - 2)) * 4.0); f += u.ul[L]; return (neg ? -f : f); Modified: head/lib/libc/quad/floatunsdidf.c ============================================================================== --- head/lib/libc/quad/floatunsdidf.c Mon Feb 17 20:23:26 2020 (r358045) +++ head/lib/libc/quad/floatunsdidf.c Mon Feb 17 20:24:21 2020 (r358046) @@ -52,7 +52,7 @@ __floatunsdidf(u_quad_t x) union uu u; u.uq = x; - d = (double)u.ul[H] * ((1 << (LONG_BITS - 2)) * 4.0); + d = (double)u.ul[H] * ((1L << (LONG_BITS - 2)) * 4.0); d += u.ul[L]; return (d); } Modified: head/lib/libc/quad/qdivrem.c ============================================================================== --- head/lib/libc/quad/qdivrem.c Mon Feb 17 20:23:26 2020 (r358045) +++ head/lib/libc/quad/qdivrem.c Mon Feb 17 20:24:21 2020 (r358046) @@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$"); #include "quad.h" -#define B (1 << HALF_BITS) /* digit base */ +#define B (1L << HALF_BITS) /* digit base */ /* Combine two `digits' to make a single two-digit number. */ #define COMBINE(a, b) (((u_long)(a) << HALF_BITS) | (b)) Modified: head/lib/libc/quad/quad.h ============================================================================== --- head/lib/libc/quad/quad.h Mon Feb 17 20:23:26 2020 (r358045) +++ head/lib/libc/quad/quad.h Mon Feb 17 20:24:21 2020 (r358046) @@ -91,7 +91,7 @@ union uu { * (sizeof(long)*CHAR_BIT/2). */ #define HHALF(x) ((x) >> HALF_BITS) -#define LHALF(x) ((x) & ((1 << HALF_BITS) - 1)) +#define LHALF(x) ((x) & ((1L << HALF_BITS) - 1)) #define LHUP(x) ((x) << HALF_BITS) int __cmpdi2(quad_t a, quad_t b); From owner-svn-src-all@freebsd.org Mon Feb 17 20:25:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 497D3245EFD; Mon, 17 Feb 2020 20:25:35 +0000 (UTC) (envelope-from lwhsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48LwTp3hVwz4VCb; Mon, 17 Feb 2020 20:25:34 +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 6BA00CB59; Mon, 17 Feb 2020 20:25:34 +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 01HKPYw4077657; Mon, 17 Feb 2020 20:25:34 GMT (envelope-from lwhsu@FreeBSD.org) Received: (from lwhsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01HKPYda077656; Mon, 17 Feb 2020 20:25:34 GMT (envelope-from lwhsu@FreeBSD.org) Message-Id: <202002172025.01HKPYda077656@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: lwhsu set sender to lwhsu@FreeBSD.org using -f From: Li-Wen Hsu Date: Mon, 17 Feb 2020 20:25:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358048 - head/contrib/capsicum-test X-SVN-Group: head X-SVN-Commit-Author: lwhsu X-SVN-Commit-Paths: head/contrib/capsicum-test X-SVN-Commit-Revision: 358048 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Feb 2020 20:25:35 -0000 Author: lwhsu Date: Mon Feb 17 20:25:33 2020 New Revision: 358048 URL: https://svnweb.freebsd.org/changeset/base/358048 Log: Really skip the tests in capsicum tests Sponsored by: The FreeBSD Foundation Modified: head/contrib/capsicum-test/capsicum-test.h Modified: head/contrib/capsicum-test/capsicum-test.h ============================================================================== --- head/contrib/capsicum-test/capsicum-test.h Mon Feb 17 20:25:29 2020 (r358047) +++ head/contrib/capsicum-test/capsicum-test.h Mon Feb 17 20:25:33 2020 (r358048) @@ -248,6 +248,7 @@ void TestSkipped(const char *testcase, const char *tes const ::testing::TestInfo* const info = ::testing::UnitTest::GetInstance()->current_test_info(); \ std::cerr << "Skipping " << info->test_case_name() << "::" << info->name() << " because: " << reason << std::endl; \ TestSkipped(info->test_case_name(), info->name(), reason); \ + GTEST_SKIP(); \ } while (0) // Mark a test that can only be run as root. From owner-svn-src-all@freebsd.org Tue Feb 18 00:01:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B14BA24B2D7; Tue, 18 Feb 2020 00:01:19 +0000 (UTC) (envelope-from freqlabs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48M1Gk5pXdz3CXF; Tue, 18 Feb 2020 00:01:18 +0000 (UTC) (envelope-from freqlabs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A13E9F37A; Tue, 18 Feb 2020 00:01:18 +0000 (UTC) (envelope-from freqlabs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01I01Ivf007386; Tue, 18 Feb 2020 00:01:18 GMT (envelope-from freqlabs@FreeBSD.org) Received: (from freqlabs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01I01In3007385; Tue, 18 Feb 2020 00:01:18 GMT (envelope-from freqlabs@FreeBSD.org) Message-Id: <202002180001.01I01In3007385@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: freqlabs set sender to freqlabs@FreeBSD.org using -f From: Ryan Moeller Date: Tue, 18 Feb 2020 00:01:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358057 - stable/12/share/misc X-SVN-Group: stable-12 X-SVN-Commit-Author: freqlabs X-SVN-Commit-Paths: stable/12/share/misc X-SVN-Commit-Revision: 358057 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 00:01:19 -0000 Author: freqlabs Date: Tue Feb 18 00:01:18 2020 New Revision: 358057 URL: https://svnweb.freebsd.org/changeset/base/358057 Log: MFC r357850: Add myself (freqlabs) as a src committer Approved by: mav (mentor) Modified: stable/12/share/misc/committers-src.dot Directory Properties: stable/12/ (props changed) Modified: stable/12/share/misc/committers-src.dot ============================================================================== --- stable/12/share/misc/committers-src.dot Mon Feb 17 21:33:58 2020 (r358056) +++ stable/12/share/misc/committers-src.dot Tue Feb 18 00:01:18 2020 (r358057) @@ -171,6 +171,7 @@ fabient [label="Fabien Thomas\nfabient@FreeBSD.org\n20 fanf [label="Tony Finch\nfanf@FreeBSD.org\n2002/05/05"] fjoe [label="Max Khon\nfjoe@FreeBSD.org\n2001/08/06"] flz [label="Florent Thoumie\nflz@FreeBSD.org\n2006/03/30"] +freqlabs [label="Ryan Moeller\nfreqlabs@FreeBSD.org\n2020/02/10"] fsu [label="Fedor Uporov\nfsu@FreeBSD.org\n2017/08/28"] gabor [label="Gabor Kovesdan\ngabor@FreeBSD.org\n2010/02/02"] gad [label="Garance A. Drosehn\ngad@FreeBSD.org\n2000/10/27"] @@ -697,6 +698,7 @@ markm -> sheldonh mav -> ae mav -> eugen +mav -> freqlabs mav -> ram mdf -> gleb @@ -709,6 +711,8 @@ mlaier -> benjsc mlaier -> dhartmei mlaier -> thompsa mlaier -> eri + +mmacy -> freqlabs msmith -> cokane msmith -> jasone From owner-svn-src-all@freebsd.org Tue Feb 18 00:02:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8888024B372; Tue, 18 Feb 2020 00:02:22 +0000 (UTC) (envelope-from chs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48M1Hx49MJz3D82; Tue, 18 Feb 2020 00:02:21 +0000 (UTC) (envelope-from chs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6FF27F3D7; Tue, 18 Feb 2020 00:02:21 +0000 (UTC) (envelope-from chs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01I02LGt009839; Tue, 18 Feb 2020 00:02:21 GMT (envelope-from chs@FreeBSD.org) Received: (from chs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01I02LH7009838; Tue, 18 Feb 2020 00:02:21 GMT (envelope-from chs@FreeBSD.org) Message-Id: <202002180002.01I02LH7009838@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: chs set sender to chs@FreeBSD.org using -f From: Chuck Silvers Date: Tue, 18 Feb 2020 00:02:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358058 - head/sys/amd64/amd64 X-SVN-Group: head X-SVN-Commit-Author: chs X-SVN-Commit-Paths: head/sys/amd64/amd64 X-SVN-Commit-Revision: 358058 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 00:02:22 -0000 Author: chs Date: Tue Feb 18 00:02:20 2020 New Revision: 358058 URL: https://svnweb.freebsd.org/changeset/base/358058 Log: amd64: keep PTE bitmasks in sync with target pmap during pv reclaim in reclaim_pv_chunk_domain(), when we switch to a new target pmap from which we are trying to reclaim a pv chunk, always update the current PTE bitmasks to match. Reviewed by: kib, markj Approved by: imp (mentor) Sponsored by: Netflix Modified: head/sys/amd64/amd64/pmap.c Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Tue Feb 18 00:01:18 2020 (r358057) +++ head/sys/amd64/amd64/pmap.c Tue Feb 18 00:02:20 2020 (r358058) @@ -4298,7 +4298,7 @@ reclaim_pv_chunk_domain(pmap_t locked_pmap, struct rwl struct spglist free; uint64_t inuse; int bit, field, freed; - bool start_di; + bool start_di, restart; PMAP_LOCK_ASSERT(locked_pmap, MA_OWNED); KASSERT(lockp != NULL, ("reclaim_pv_chunk: lockp is NULL")); @@ -4343,6 +4343,7 @@ reclaim_pv_chunk_domain(pmap_t locked_pmap, struct rwl * corresponding pmap is locked. */ if (pmap != next_pmap) { + restart = false; reclaim_pv_chunk_leave_pmap(pmap, locked_pmap, start_di); pmap = next_pmap; @@ -4353,13 +4354,13 @@ reclaim_pv_chunk_domain(pmap_t locked_pmap, struct rwl if (start_di) pmap_delayed_invl_start(); mtx_lock(&pvc->pvc_lock); - continue; + restart = true; } else if (pmap != locked_pmap) { if (PMAP_TRYLOCK(pmap)) { if (start_di) pmap_delayed_invl_start(); mtx_lock(&pvc->pvc_lock); - continue; + restart = true; } else { pmap = NULL; /* pmap is not locked */ mtx_lock(&pvc->pvc_lock); @@ -4375,6 +4376,8 @@ reclaim_pv_chunk_domain(pmap_t locked_pmap, struct rwl PG_A = pmap_accessed_bit(pmap); PG_M = pmap_modified_bit(pmap); PG_RW = pmap_rw_bit(pmap); + if (restart) + continue; } /* From owner-svn-src-all@freebsd.org Tue Feb 18 00:44:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D797324BD1B; Tue, 18 Feb 2020 00:44:33 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (glebi.us [162.251.186.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 48M2Dd3BBhz4PbW; Tue, 18 Feb 2020 00:44:33 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id 01I0iNTQ035569 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Mon, 17 Feb 2020 16:44:23 -0800 (PST) (envelope-from glebius@freebsd.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id 01I0iNas035568; Mon, 17 Feb 2020 16:44:23 -0800 (PST) (envelope-from glebius@freebsd.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@freebsd.org using -f Date: Mon, 17 Feb 2020 16:44:23 -0800 From: Gleb Smirnoff To: Hans Petter Selasky , bz@freebsd.org Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r358013 - in head/sys: net netinet netinet6 Message-ID: <20200218004423.GG5741@FreeBSD.org> References: <202002170946.01H9kWAh078738@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202002170946.01H9kWAh078738@repo.freebsd.org> X-Rspamd-Queue-Id: 48M2Dd3BBhz4PbW X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.992,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 00:44:34 -0000 On Mon, Feb 17, 2020 at 09:46:32AM +0000, Hans Petter Selasky wrote: H> Author: hselasky H> Date: Mon Feb 17 09:46:32 2020 H> New Revision: 358013 H> URL: https://svnweb.freebsd.org/changeset/base/358013 H> H> Log: H> Fix kernel panic while trying to read multicast stream. H> H> When VIMAGE is enabled make sure the "m_pkthdr.rcvif" pointer is set H> for all mbufs being input by the IGMP/MLD6 code. Else there will be a H> NULL-pointer dereference in the netisr code when trying to set the H> VNET based on the incoming mbuf. Add an assert to catch this when H> queueing mbufs on a netisr to make debugging of similar cases easier. H> H> Found by: Vladislav V. Prodan H> PR: 244002 H> Reviewed by: bz@ H> MFC after: 1 week H> Sponsored by: Mellanox Technologies H> H> Modified: H> head/sys/net/netisr.c H> head/sys/netinet/igmp.c H> head/sys/netinet6/mld6.c H> H> Modified: head/sys/net/netisr.c H> ============================================================================== H> --- head/sys/net/netisr.c Mon Feb 17 01:59:55 2020 (r358012) H> +++ head/sys/net/netisr.c Mon Feb 17 09:46:32 2020 (r358013) H> @@ -1056,6 +1056,8 @@ netisr_queue_src(u_int proto, uintptr_t source, struct H> if (m != NULL) { H> KASSERT(!CPU_ABSENT(cpuid), ("%s: CPU %u absent", __func__, H> cpuid)); H> + VNET_ASSERT(m->m_pkthdr.rcvif != NULL, H> + ("%s:%d rcvif == NULL: m=%p", __func__, __LINE__, m)); H> error = netisr_queue_internal(proto, m, cpuid); H> } else H> error = ENOBUFS; H> H> Modified: head/sys/netinet/igmp.c H> ============================================================================== H> --- head/sys/netinet/igmp.c Mon Feb 17 01:59:55 2020 (r358012) H> +++ head/sys/netinet/igmp.c Mon Feb 17 09:46:32 2020 (r358013) H> @@ -303,6 +303,7 @@ igmp_save_context(struct mbuf *m, struct ifnet *ifp) H> #ifdef VIMAGE H> m->m_pkthdr.PH_loc.ptr = ifp->if_vnet; H> #endif /* VIMAGE */ H> + m->m_pkthdr.rcvif = ifp; H> m->m_pkthdr.flowid = ifp->if_index; H> } H> H> H> Modified: head/sys/netinet6/mld6.c H> ============================================================================== H> --- head/sys/netinet6/mld6.c Mon Feb 17 01:59:55 2020 (r358012) H> +++ head/sys/netinet6/mld6.c Mon Feb 17 09:46:32 2020 (r358013) H> @@ -283,6 +283,7 @@ mld_save_context(struct mbuf *m, struct ifnet *ifp) H> #ifdef VIMAGE H> m->m_pkthdr.PH_loc.ptr = ifp->if_vnet; H> #endif /* VIMAGE */ H> + m->m_pkthdr.rcvif = ifp; H> m->m_pkthdr.flowid = ifp->if_index; H> } This functions igmp_save_context() and mld_save_context() were clearly designed to avoid dereferencing an ifnet pointer after a packet has been queued and dequeued on IGMP/MLD internal queue. This patch now replicates the exactly same problem but with netisr queue. Of course netisr not always queues, sometimes dispatches directly, but it may do queue. I think same thing needs to be done to netisr internally - don't dereference m->m_pkthdr.rcvif on dequeued packets, but store the vnet info in the m->m_pkthdr.PH_loc.ptr before queueing. -- Gleb Smirnoff From owner-svn-src-all@freebsd.org Tue Feb 18 01:19:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 49E5B24CD14; Tue, 18 Feb 2020 01:19:33 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48M3106pVxz48QM; Tue, 18 Feb 2020 01:19:32 +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 C3942180C9; Tue, 18 Feb 2020 01:19:32 +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 01I1JWtR052037; Tue, 18 Feb 2020 01:19:32 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01I1JWGp052036; Tue, 18 Feb 2020 01:19:32 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202002180119.01I1JWGp052036@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 18 Feb 2020 01:19:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358059 - stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 358059 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 01:19:33 -0000 Author: mav Date: Tue Feb 18 01:19:32 2020 New Revision: 358059 URL: https://svnweb.freebsd.org/changeset/base/358059 Log: MFC r357453: Unblock kstat.zfs.misc.dbufstats sysctls. It is not so much broken to hide it after we wasted time to collect it. Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Tue Feb 18 00:02:20 2020 (r358058) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Tue Feb 18 01:19:32 2020 (r358059) @@ -747,6 +747,10 @@ dbuf_evict_thread(void *unused __unused) (void) cv_timedwait_hires(&dbuf_evict_cv, &dbuf_evict_lock, SEC2NSEC(1), MSEC2NSEC(1), 0); CALLB_CPR_SAFE_END(&cpr, &dbuf_evict_lock); +#ifdef __FreeBSD__ + if (dbuf_ksp != NULL) + dbuf_ksp->ks_update(dbuf_ksp, KSTAT_READ); +#endif } mutex_exit(&dbuf_evict_lock); @@ -880,18 +884,10 @@ retry: dbuf_cache_evict_thread = thread_create(NULL, 0, dbuf_evict_thread, NULL, 0, &p0, TS_RUN, minclsyspri); -#ifdef __linux__ - /* - * XXX FreeBSD's SPL lacks KSTAT_TYPE_NAMED support - TODO - */ dbuf_ksp = kstat_create("zfs", 0, "dbufstats", "misc", KSTAT_TYPE_NAMED, sizeof (dbuf_stats) / sizeof (kstat_named_t), KSTAT_FLAG_VIRTUAL); if (dbuf_ksp != NULL) { - dbuf_ksp->ks_data = &dbuf_stats; - dbuf_ksp->ks_update = dbuf_kstat_update; - kstat_install(dbuf_ksp); - for (i = 0; i < DN_MAX_LEVELS; i++) { snprintf(dbuf_stats.cache_levels[i].name, KSTAT_STRLEN, "cache_level_%d", i); @@ -902,8 +898,10 @@ retry: dbuf_stats.cache_levels_bytes[i].data_type = KSTAT_DATA_UINT64; } + dbuf_ksp->ks_data = &dbuf_stats; + dbuf_ksp->ks_update = dbuf_kstat_update; + kstat_install(dbuf_ksp); } -#endif } void From owner-svn-src-all@freebsd.org Tue Feb 18 01:21:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 078F924CEB6; Tue, 18 Feb 2020 01:21:57 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48M33m63Kcz4C5f; Tue, 18 Feb 2020 01:21: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 BE1501825A; Tue, 18 Feb 2020 01:21: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 01I1Lusv056636; Tue, 18 Feb 2020 01:21:56 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01I1LuB2056635; Tue, 18 Feb 2020 01:21:56 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202002180121.01I1LuB2056635@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 18 Feb 2020 01:21:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358060 - in stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Commit-Revision: 358060 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 01:21:57 -0000 Author: mav Date: Tue Feb 18 01:21:56 2020 New Revision: 358060 URL: https://svnweb.freebsd.org/changeset/base/358060 Log: MFC r357502: Few microoptimizations to dbuf layer. Move db_link into the same cache line as db_blkid and db_level. It allows significantly reduce avl_add() time in dbuf_create() on systems with large RAM and huge number of dbufs per dnode. Avoid few accesses to dbuf_caches[].size, which is highly congested under high IOPS and never stays in cache for a long time. Use local value we are receiving from zfs_refcount_add_many() any way. Remove cache_size_bytes_max bump from dbuf_evict_one(). I don't see a point to do it on dbuf eviction after we done it on insertion in dbuf_rele_and_unlock(). Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Tue Feb 18 01:19:32 2020 (r358059) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Tue Feb 18 01:21:56 2020 (r358060) @@ -671,13 +671,6 @@ dbuf_cache_lowater_bytes(void) } static inline boolean_t -dbuf_cache_above_hiwater(void) -{ - return (zfs_refcount_count(&dbuf_caches[DB_DBUF_CACHE].size) > - dbuf_cache_hiwater_bytes()); -} - -static inline boolean_t dbuf_cache_above_lowater(void) { return (zfs_refcount_count(&dbuf_caches[DB_DBUF_CACHE].size) > @@ -717,8 +710,6 @@ dbuf_evict_one(void) ASSERT3U(db->db_caching_status, ==, DB_DBUF_CACHE); db->db_caching_status = DB_NO_CACHE; dbuf_destroy(db); - DBUF_STAT_MAX(cache_size_bytes_max, - zfs_refcount_count(&dbuf_caches[DB_DBUF_CACHE].size)); DBUF_STAT_BUMP(cache_total_evicts); } else { multilist_sublist_unlock(mls); @@ -778,16 +769,15 @@ dbuf_evict_thread(void *unused __unused) * dbuf cache using the callers context. */ static void -dbuf_evict_notify(void) +dbuf_evict_notify(uint64_t size) { /* * We check if we should evict without holding the dbuf_evict_lock, * because it's OK to occasionally make the wrong decision here, * and grabbing the lock results in massive lock contention. */ - if (zfs_refcount_count(&dbuf_caches[DB_DBUF_CACHE].size) > - dbuf_cache_max_bytes) { - if (dbuf_cache_above_hiwater()) + if (size > dbuf_cache_max_bytes) { + if (size > dbuf_cache_hiwater_bytes()) dbuf_evict_one(); cv_signal(&dbuf_evict_cv); } @@ -3186,6 +3176,7 @@ void dbuf_rele_and_unlock(dmu_buf_impl_t *db, void *tag, boolean_t evicting) { int64_t holds; + uint64_t size; ASSERT(MUTEX_HELD(&db->db_mtx)); DBUF_VERIFY(db); @@ -3282,15 +3273,14 @@ dbuf_rele_and_unlock(dmu_buf_impl_t *db, void *tag, bo db->db_caching_status = dcs; multilist_insert(dbuf_caches[dcs].cache, db); - (void) zfs_refcount_add_many( + size = zfs_refcount_add_many( &dbuf_caches[dcs].size, db->db.db_size, db); if (dcs == DB_DBUF_METADATA_CACHE) { DBUF_STAT_BUMP(metadata_cache_count); DBUF_STAT_MAX( metadata_cache_size_bytes_max, - zfs_refcount_count( - &dbuf_caches[dcs].size)); + size); } else { DBUF_STAT_BUMP( cache_levels[db->db_level]); @@ -3299,15 +3289,12 @@ dbuf_rele_and_unlock(dmu_buf_impl_t *db, void *tag, bo cache_levels_bytes[db->db_level], db->db.db_size); DBUF_STAT_MAX(cache_size_bytes_max, - zfs_refcount_count( - &dbuf_caches[dcs].size)); + size); } mutex_exit(&db->db_mtx); - if (db->db_caching_status == DB_DBUF_CACHE && - !evicting) { - dbuf_evict_notify(); - } + if (dcs == DB_DBUF_CACHE && !evicting) + dbuf_evict_notify(size); } if (do_arc_evict) Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h Tue Feb 18 01:19:32 2020 (r358059) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h Tue Feb 18 01:21:56 2020 (r358060) @@ -189,6 +189,13 @@ typedef struct dmu_buf_impl { */ struct dmu_buf_impl *db_hash_next; + /* + * Our link on the owner dnodes's dn_dbufs list. + * Protected by its dn_dbufs_mtx. Should be on the same cache line + * as db_level and db_blkid for the best avl_add() performance. + */ + avl_node_t db_link; + /* our block number */ uint64_t db_blkid; @@ -229,12 +236,6 @@ typedef struct dmu_buf_impl { /* pointer to most recent dirty record for this buffer */ dbuf_dirty_record_t *db_last_dirty; - - /* - * Our link on the owner dnodes's dn_dbufs list. - * Protected by its dn_dbufs_mtx. - */ - avl_node_t db_link; /* Link in dbuf_cache or dbuf_metadata_cache */ multilist_node_t db_cache_link; From owner-svn-src-all@freebsd.org Tue Feb 18 01:50:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5084924EB6A; Tue, 18 Feb 2020 01:50:46 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48M3j14Zjmz3MLk; Tue, 18 Feb 2020 01:50:45 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 56AAB186F5; Tue, 18 Feb 2020 01:50:45 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01I1ojZD070068; Tue, 18 Feb 2020 01:50:45 GMT (envelope-from hrs@FreeBSD.org) Received: (from hrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01I1ojEa070066; Tue, 18 Feb 2020 01:50:45 GMT (envelope-from hrs@FreeBSD.org) Message-Id: <202002180150.01I1ojEa070066@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hrs set sender to hrs@FreeBSD.org using -f From: Hiroki Sato Date: Tue, 18 Feb 2020 01:50:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358061 - head/share/vt/keymaps X-SVN-Group: head X-SVN-Commit-Author: hrs X-SVN-Commit-Paths: head/share/vt/keymaps X-SVN-Commit-Revision: 358061 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 01:50:46 -0000 Author: hrs Date: Tue Feb 18 01:50:44 2020 New Revision: 358061 URL: https://svnweb.freebsd.org/changeset/base/358061 Log: Use 0x5c for the scan code 0x7d. Japanese keyboards traditionally use 0x5c for both Japanese yen sign key and backslash key. While a Japanese yen sign is depicted on the keytop, most of Japanese expect that the scan code 0x7d gives a backslash (0x5c), not a Japanese yen sign (0xa5). This is because JIS X 0201 encoding (aka ISO/IEC 646-JA, an extended version of ASCII which is very popular in Japan) has Japanese yen sign at 0x5c and no backslash. On the other hand, ISO/IEC 8859-1 has Japanese yen sign at 0xa5. This difference has caused a confusion after Unicode became popular since ISO/IEC 10646 adopted 8859-1 for the plane 0. MFC after: 1 week Modified: head/share/vt/keymaps/jp.capsctrl.kbd head/share/vt/keymaps/jp.kbd Modified: head/share/vt/keymaps/jp.capsctrl.kbd ============================================================================== --- head/share/vt/keymaps/jp.capsctrl.kbd Tue Feb 18 01:21:56 2020 (r358060) +++ head/share/vt/keymaps/jp.capsctrl.kbd Tue Feb 18 01:50:44 2020 (r358061) @@ -117,4 +117,4 @@ 115 '\' '_' fs us '\' '_' fs us O 121 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O 123 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O - 125 0xa5 '|' fs us 0xa5 '|' fs us O + 125 '\' '|' fs us 0xa5 '|' fs us O Modified: head/share/vt/keymaps/jp.kbd ============================================================================== --- head/share/vt/keymaps/jp.kbd Tue Feb 18 01:21:56 2020 (r358060) +++ head/share/vt/keymaps/jp.kbd Tue Feb 18 01:50:44 2020 (r358061) @@ -115,4 +115,4 @@ 115 '\' '_' fs us '\' '_' fs us O 121 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O 123 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O - 125 0xa5 '|' fs us 0xa5 '|' fs us O + 125 '\' '|' fs us 0xa5 '|' fs us O From owner-svn-src-all@freebsd.org Tue Feb 18 08:11:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A69DF2581BD; Tue, 18 Feb 2020 08:11:53 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MD8m6Lpyz40cs; Tue, 18 Feb 2020 08:11:52 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D40911CEE4; Tue, 18 Feb 2020 08:11:52 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01I8BqLO001152; Tue, 18 Feb 2020 08:11:52 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01I8BqEq001150; Tue, 18 Feb 2020 08:11:52 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002180811.01I8BqEq001150@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Tue, 18 Feb 2020 08:11:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358062 - in head: contrib/ncurses contrib/ncurses/doc contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/mis... X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: in head: contrib/ncurses contrib/ncurses/doc contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/misc contrib/ncurses/ncurses... X-SVN-Commit-Revision: 358062 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 08:11:53 -0000 Author: bapt Date: Tue Feb 18 08:11:52 2020 New Revision: 358062 URL: https://svnweb.freebsd.org/changeset/base/358062 Log: Update ncurses to 20200118 Among the changes from before: - Add support for extended colors on widechar version - Enable ncurses extended functions - Enable version 2 of the extended mouse support - Enable SCREEN extensions Modification that differs from upstream: - _nc_delink_entries used to be exposed and was turn static, turn it back as dynamic to not break abi - Adapt our old termcap.c to modern ncurses MFC after: 3 weeks Added: head/contrib/ncurses/VERSION - copied unchanged from r357645, vendor/ncurses/dist/VERSION head/contrib/ncurses/include/Caps-ncurses - copied unchanged from r357645, vendor/ncurses/dist/include/Caps-ncurses head/contrib/ncurses/man/new_pair.3x - copied unchanged from r357645, vendor/ncurses/dist/man/new_pair.3x head/contrib/ncurses/man/scr_dump.5 - copied unchanged from r357645, vendor/ncurses/dist/man/scr_dump.5 head/contrib/ncurses/man/user_caps.5 - copied unchanged from r357645, vendor/ncurses/dist/man/user_caps.5 head/contrib/ncurses/misc/magic - copied unchanged from r357645, vendor/ncurses/dist/misc/magic head/contrib/ncurses/ncurses/base/new_pair.c - copied unchanged from r357645, vendor/ncurses/dist/ncurses/base/new_pair.c head/contrib/ncurses/ncurses/new_pair.h - copied unchanged from r357645, vendor/ncurses/dist/ncurses/new_pair.h head/contrib/ncurses/ncurses/report_offsets.c - copied unchanged from r357645, vendor/ncurses/dist/ncurses/report_offsets.c head/contrib/ncurses/ncurses/tinfo/MKuserdefs.sh - copied unchanged from r357645, vendor/ncurses/dist/ncurses/tinfo/MKuserdefs.sh head/contrib/ncurses/progs/clear_cmd.c - copied unchanged from r357645, vendor/ncurses/dist/progs/clear_cmd.c head/contrib/ncurses/progs/clear_cmd.h - copied unchanged from r357645, vendor/ncurses/dist/progs/clear_cmd.h head/contrib/ncurses/progs/reset_cmd.c - copied unchanged from r357645, vendor/ncurses/dist/progs/reset_cmd.c head/contrib/ncurses/progs/reset_cmd.h - copied unchanged from r357645, vendor/ncurses/dist/progs/reset_cmd.h head/contrib/ncurses/progs/tparm_type.c - copied unchanged from r357645, vendor/ncurses/dist/progs/tparm_type.c head/contrib/ncurses/progs/tparm_type.h - copied unchanged from r357645, vendor/ncurses/dist/progs/tparm_type.h head/contrib/ncurses/progs/tty_settings.c - copied unchanged from r357645, vendor/ncurses/dist/progs/tty_settings.c head/contrib/ncurses/progs/tty_settings.h - copied unchanged from r357645, vendor/ncurses/dist/progs/tty_settings.h Modified: head/contrib/ncurses/ANNOUNCE head/contrib/ncurses/AUTHORS head/contrib/ncurses/COPYING head/contrib/ncurses/INSTALL head/contrib/ncurses/MANIFEST head/contrib/ncurses/Makefile.in head/contrib/ncurses/NEWS head/contrib/ncurses/README head/contrib/ncurses/README.emx head/contrib/ncurses/aclocal.m4 head/contrib/ncurses/announce.html.in head/contrib/ncurses/config.guess head/contrib/ncurses/config.sub head/contrib/ncurses/configure head/contrib/ncurses/configure.in head/contrib/ncurses/dist.mk head/contrib/ncurses/doc/hackguide.doc head/contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html head/contrib/ncurses/doc/html/announce.html head/contrib/ncurses/doc/html/hackguide.html head/contrib/ncurses/doc/html/ncurses-intro.html head/contrib/ncurses/doc/ncurses-intro.doc head/contrib/ncurses/form/Makefile.in head/contrib/ncurses/form/f_trace.c head/contrib/ncurses/form/fld_arg.c head/contrib/ncurses/form/fld_attr.c head/contrib/ncurses/form/fld_current.c head/contrib/ncurses/form/fld_def.c head/contrib/ncurses/form/fld_ftchoice.c head/contrib/ncurses/form/fld_max.c head/contrib/ncurses/form/fld_newftyp.c head/contrib/ncurses/form/form.h head/contrib/ncurses/form/form.priv.h head/contrib/ncurses/form/frm_driver.c head/contrib/ncurses/form/frm_hook.c head/contrib/ncurses/form/frm_post.c head/contrib/ncurses/form/frm_req_name.c head/contrib/ncurses/form/fty_generic.c head/contrib/ncurses/form/fty_num.c head/contrib/ncurses/form/fty_regex.c head/contrib/ncurses/form/llib-lform head/contrib/ncurses/form/llib-lformt head/contrib/ncurses/form/llib-lformtw head/contrib/ncurses/form/llib-lformw head/contrib/ncurses/include/Caps head/contrib/ncurses/include/Caps.aix4 head/contrib/ncurses/include/Caps.hpux11 head/contrib/ncurses/include/Caps.keys head/contrib/ncurses/include/Caps.osf1r5 head/contrib/ncurses/include/Caps.uwin head/contrib/ncurses/include/MKhashsize.sh head/contrib/ncurses/include/MKkey_defs.sh head/contrib/ncurses/include/MKncurses_def.sh head/contrib/ncurses/include/MKparametrized.sh head/contrib/ncurses/include/MKterm.h.awk.in head/contrib/ncurses/include/Makefile.in head/contrib/ncurses/include/curses.h.in head/contrib/ncurses/include/curses.tail head/contrib/ncurses/include/curses.wide head/contrib/ncurses/include/edit_cfg.sh head/contrib/ncurses/include/hashed_db.h head/contrib/ncurses/include/nc_alloc.h head/contrib/ncurses/include/nc_mingw.h head/contrib/ncurses/include/nc_panel.h head/contrib/ncurses/include/nc_string.h head/contrib/ncurses/include/nc_termios.h head/contrib/ncurses/include/nc_tparm.h head/contrib/ncurses/include/ncurses_cfg.hin head/contrib/ncurses/include/ncurses_defs head/contrib/ncurses/include/ncurses_dll.h.in head/contrib/ncurses/include/ncurses_mingw.h head/contrib/ncurses/include/term_entry.h head/contrib/ncurses/include/termcap.h.in head/contrib/ncurses/include/tic.h head/contrib/ncurses/man/MKada_config.in head/contrib/ncurses/man/MKterminfo.sh head/contrib/ncurses/man/Makefile.in head/contrib/ncurses/man/captoinfo.1m head/contrib/ncurses/man/clear.1 head/contrib/ncurses/man/curs_add_wch.3x head/contrib/ncurses/man/curs_add_wchstr.3x head/contrib/ncurses/man/curs_addch.3x head/contrib/ncurses/man/curs_addchstr.3x head/contrib/ncurses/man/curs_addstr.3x head/contrib/ncurses/man/curs_addwstr.3x head/contrib/ncurses/man/curs_attr.3x head/contrib/ncurses/man/curs_beep.3x head/contrib/ncurses/man/curs_bkgd.3x head/contrib/ncurses/man/curs_bkgrnd.3x head/contrib/ncurses/man/curs_border.3x head/contrib/ncurses/man/curs_border_set.3x head/contrib/ncurses/man/curs_clear.3x head/contrib/ncurses/man/curs_color.3x head/contrib/ncurses/man/curs_delch.3x head/contrib/ncurses/man/curs_deleteln.3x head/contrib/ncurses/man/curs_extend.3x head/contrib/ncurses/man/curs_get_wch.3x head/contrib/ncurses/man/curs_get_wstr.3x head/contrib/ncurses/man/curs_getcchar.3x head/contrib/ncurses/man/curs_getch.3x head/contrib/ncurses/man/curs_getstr.3x head/contrib/ncurses/man/curs_in_wch.3x head/contrib/ncurses/man/curs_in_wchstr.3x head/contrib/ncurses/man/curs_inch.3x head/contrib/ncurses/man/curs_inchstr.3x head/contrib/ncurses/man/curs_initscr.3x head/contrib/ncurses/man/curs_inopts.3x head/contrib/ncurses/man/curs_ins_wch.3x head/contrib/ncurses/man/curs_ins_wstr.3x head/contrib/ncurses/man/curs_insch.3x head/contrib/ncurses/man/curs_insstr.3x head/contrib/ncurses/man/curs_instr.3x head/contrib/ncurses/man/curs_inwstr.3x head/contrib/ncurses/man/curs_kernel.3x head/contrib/ncurses/man/curs_legacy.3x head/contrib/ncurses/man/curs_memleaks.3x head/contrib/ncurses/man/curs_mouse.3x head/contrib/ncurses/man/curs_move.3x head/contrib/ncurses/man/curs_opaque.3x head/contrib/ncurses/man/curs_outopts.3x head/contrib/ncurses/man/curs_overlay.3x head/contrib/ncurses/man/curs_pad.3x head/contrib/ncurses/man/curs_print.3x head/contrib/ncurses/man/curs_printw.3x head/contrib/ncurses/man/curs_refresh.3x head/contrib/ncurses/man/curs_scanw.3x head/contrib/ncurses/man/curs_scr_dump.3x head/contrib/ncurses/man/curs_scroll.3x head/contrib/ncurses/man/curs_slk.3x head/contrib/ncurses/man/curs_sp_funcs.3x head/contrib/ncurses/man/curs_termattrs.3x head/contrib/ncurses/man/curs_termcap.3x head/contrib/ncurses/man/curs_terminfo.3x head/contrib/ncurses/man/curs_threads.3x head/contrib/ncurses/man/curs_touch.3x head/contrib/ncurses/man/curs_trace.3x head/contrib/ncurses/man/curs_util.3x head/contrib/ncurses/man/curs_variables.3x head/contrib/ncurses/man/curs_window.3x head/contrib/ncurses/man/default_colors.3x head/contrib/ncurses/man/define_key.3x head/contrib/ncurses/man/form.3x head/contrib/ncurses/man/form_cursor.3x head/contrib/ncurses/man/form_data.3x head/contrib/ncurses/man/form_driver.3x head/contrib/ncurses/man/form_field.3x head/contrib/ncurses/man/form_field_attributes.3x head/contrib/ncurses/man/form_field_buffer.3x head/contrib/ncurses/man/form_field_info.3x head/contrib/ncurses/man/form_field_just.3x head/contrib/ncurses/man/form_field_new.3x head/contrib/ncurses/man/form_field_opts.3x head/contrib/ncurses/man/form_field_userptr.3x head/contrib/ncurses/man/form_field_validation.3x head/contrib/ncurses/man/form_fieldtype.3x head/contrib/ncurses/man/form_hook.3x head/contrib/ncurses/man/form_new.3x head/contrib/ncurses/man/form_new_page.3x head/contrib/ncurses/man/form_opts.3x head/contrib/ncurses/man/form_page.3x head/contrib/ncurses/man/form_post.3x head/contrib/ncurses/man/form_requestname.3x head/contrib/ncurses/man/form_userptr.3x head/contrib/ncurses/man/form_variables.3x head/contrib/ncurses/man/form_win.3x head/contrib/ncurses/man/infocmp.1m head/contrib/ncurses/man/infotocap.1m head/contrib/ncurses/man/key_defined.3x head/contrib/ncurses/man/keybound.3x head/contrib/ncurses/man/keyok.3x head/contrib/ncurses/man/legacy_coding.3x head/contrib/ncurses/man/make_sed.sh head/contrib/ncurses/man/man_db.renames head/contrib/ncurses/man/manhtml.aliases head/contrib/ncurses/man/manhtml.externs head/contrib/ncurses/man/menu.3x head/contrib/ncurses/man/menu_attributes.3x head/contrib/ncurses/man/menu_cursor.3x head/contrib/ncurses/man/menu_driver.3x head/contrib/ncurses/man/menu_format.3x head/contrib/ncurses/man/menu_hook.3x head/contrib/ncurses/man/menu_items.3x head/contrib/ncurses/man/menu_mark.3x head/contrib/ncurses/man/menu_new.3x head/contrib/ncurses/man/menu_opts.3x head/contrib/ncurses/man/menu_pattern.3x head/contrib/ncurses/man/menu_post.3x head/contrib/ncurses/man/menu_requestname.3x head/contrib/ncurses/man/menu_spacing.3x head/contrib/ncurses/man/menu_userptr.3x head/contrib/ncurses/man/menu_win.3x head/contrib/ncurses/man/mitem_current.3x head/contrib/ncurses/man/mitem_name.3x head/contrib/ncurses/man/mitem_new.3x head/contrib/ncurses/man/mitem_opts.3x head/contrib/ncurses/man/mitem_userptr.3x head/contrib/ncurses/man/mitem_value.3x head/contrib/ncurses/man/mitem_visible.3x head/contrib/ncurses/man/ncurses.3x head/contrib/ncurses/man/panel.3x head/contrib/ncurses/man/resizeterm.3x head/contrib/ncurses/man/tabs.1 head/contrib/ncurses/man/term.5 head/contrib/ncurses/man/term.7 head/contrib/ncurses/man/term_variables.3x head/contrib/ncurses/man/terminfo.head head/contrib/ncurses/man/terminfo.tail head/contrib/ncurses/man/tic.1m head/contrib/ncurses/man/toe.1m head/contrib/ncurses/man/tput.1 head/contrib/ncurses/man/tset.1 head/contrib/ncurses/man/wresize.3x head/contrib/ncurses/menu/Makefile.in head/contrib/ncurses/menu/llib-lmenu head/contrib/ncurses/menu/llib-lmenut head/contrib/ncurses/menu/llib-lmenutw head/contrib/ncurses/menu/llib-lmenuw head/contrib/ncurses/menu/m_driver.c head/contrib/ncurses/menu/m_global.c head/contrib/ncurses/menu/m_hook.c head/contrib/ncurses/menu/m_item_use.c head/contrib/ncurses/menu/m_req_name.c head/contrib/ncurses/menu/m_trace.c head/contrib/ncurses/menu/m_userptr.c head/contrib/ncurses/menu/menu.h head/contrib/ncurses/menu/menu.priv.h head/contrib/ncurses/misc/Makefile.in head/contrib/ncurses/misc/emx.src head/contrib/ncurses/misc/gen-pkgconfig.in head/contrib/ncurses/misc/ncurses-config.in head/contrib/ncurses/misc/run_tic.in head/contrib/ncurses/misc/shlib head/contrib/ncurses/misc/tdlint head/contrib/ncurses/misc/terminfo.src head/contrib/ncurses/mk-1st.awk head/contrib/ncurses/ncurses/Makefile.in head/contrib/ncurses/ncurses/README.IZ head/contrib/ncurses/ncurses/SigAction.h head/contrib/ncurses/ncurses/base/MKkeyname.awk head/contrib/ncurses/ncurses/base/MKlib_gen.sh head/contrib/ncurses/ncurses/base/MKunctrl.awk head/contrib/ncurses/ncurses/base/define_key.c head/contrib/ncurses/ncurses/base/keyok.c head/contrib/ncurses/ncurses/base/lib_addch.c head/contrib/ncurses/ncurses/base/lib_addstr.c head/contrib/ncurses/ncurses/base/lib_beep.c head/contrib/ncurses/ncurses/base/lib_bkgd.c head/contrib/ncurses/ncurses/base/lib_box.c head/contrib/ncurses/ncurses/base/lib_chgat.c head/contrib/ncurses/ncurses/base/lib_color.c head/contrib/ncurses/ncurses/base/lib_colorset.c head/contrib/ncurses/ncurses/base/lib_dft_fgbg.c head/contrib/ncurses/ncurses/base/lib_driver.c head/contrib/ncurses/ncurses/base/lib_endwin.c head/contrib/ncurses/ncurses/base/lib_erase.c head/contrib/ncurses/ncurses/base/lib_flash.c head/contrib/ncurses/ncurses/base/lib_freeall.c head/contrib/ncurses/ncurses/base/lib_getch.c head/contrib/ncurses/ncurses/base/lib_getstr.c head/contrib/ncurses/ncurses/base/lib_hline.c head/contrib/ncurses/ncurses/base/lib_inchstr.c head/contrib/ncurses/ncurses/base/lib_initscr.c head/contrib/ncurses/ncurses/base/lib_insch.c head/contrib/ncurses/ncurses/base/lib_insnstr.c head/contrib/ncurses/ncurses/base/lib_instr.c head/contrib/ncurses/ncurses/base/lib_isendwin.c head/contrib/ncurses/ncurses/base/lib_mouse.c head/contrib/ncurses/ncurses/base/lib_newterm.c head/contrib/ncurses/ncurses/base/lib_newwin.c head/contrib/ncurses/ncurses/base/lib_overlay.c head/contrib/ncurses/ncurses/base/lib_pad.c head/contrib/ncurses/ncurses/base/lib_printw.c head/contrib/ncurses/ncurses/base/lib_restart.c head/contrib/ncurses/ncurses/base/lib_scanw.c head/contrib/ncurses/ncurses/base/lib_screen.c head/contrib/ncurses/ncurses/base/lib_scroll.c head/contrib/ncurses/ncurses/base/lib_set_term.c head/contrib/ncurses/ncurses/base/lib_slkatr_set.c head/contrib/ncurses/ncurses/base/lib_slkcolor.c head/contrib/ncurses/ncurses/base/lib_slkinit.c head/contrib/ncurses/ncurses/base/lib_slkrefr.c head/contrib/ncurses/ncurses/base/lib_slkset.c head/contrib/ncurses/ncurses/base/lib_touch.c head/contrib/ncurses/ncurses/base/lib_vline.c head/contrib/ncurses/ncurses/base/lib_window.c head/contrib/ncurses/ncurses/base/resizeterm.c head/contrib/ncurses/ncurses/base/safe_sprintf.c head/contrib/ncurses/ncurses/base/use_window.c head/contrib/ncurses/ncurses/base/wresize.c head/contrib/ncurses/ncurses/build.priv.h head/contrib/ncurses/ncurses/curses.priv.h head/contrib/ncurses/ncurses/fifo_defs.h head/contrib/ncurses/ncurses/llib-lncurses head/contrib/ncurses/ncurses/llib-lncursest head/contrib/ncurses/ncurses/llib-lncursestw head/contrib/ncurses/ncurses/llib-lncursesw head/contrib/ncurses/ncurses/llib-ltic head/contrib/ncurses/ncurses/llib-ltict head/contrib/ncurses/ncurses/llib-ltictw head/contrib/ncurses/ncurses/llib-lticw head/contrib/ncurses/ncurses/llib-ltinfo head/contrib/ncurses/ncurses/llib-ltinfot head/contrib/ncurses/ncurses/llib-ltinfotw head/contrib/ncurses/ncurses/llib-ltinfow head/contrib/ncurses/ncurses/modules head/contrib/ncurses/ncurses/tinfo/MKcaptab.sh head/contrib/ncurses/ncurses/tinfo/MKcodes.awk head/contrib/ncurses/ncurses/tinfo/MKfallback.sh head/contrib/ncurses/ncurses/tinfo/MKkeys_list.sh head/contrib/ncurses/ncurses/tinfo/MKnames.awk head/contrib/ncurses/ncurses/tinfo/access.c head/contrib/ncurses/ncurses/tinfo/add_tries.c head/contrib/ncurses/ncurses/tinfo/alloc_entry.c head/contrib/ncurses/ncurses/tinfo/alloc_ttype.c head/contrib/ncurses/ncurses/tinfo/captoinfo.c head/contrib/ncurses/ncurses/tinfo/comp_error.c head/contrib/ncurses/ncurses/tinfo/comp_expand.c head/contrib/ncurses/ncurses/tinfo/comp_hash.c head/contrib/ncurses/ncurses/tinfo/comp_parse.c head/contrib/ncurses/ncurses/tinfo/comp_scan.c head/contrib/ncurses/ncurses/tinfo/db_iterator.c head/contrib/ncurses/ncurses/tinfo/entries.c head/contrib/ncurses/ncurses/tinfo/free_ttype.c head/contrib/ncurses/ncurses/tinfo/getenv_num.c head/contrib/ncurses/ncurses/tinfo/hashed_db.c head/contrib/ncurses/ncurses/tinfo/home_terminfo.c head/contrib/ncurses/ncurses/tinfo/init_keytry.c head/contrib/ncurses/ncurses/tinfo/lib_acs.c head/contrib/ncurses/ncurses/tinfo/lib_baudrate.c head/contrib/ncurses/ncurses/tinfo/lib_cur_term.c head/contrib/ncurses/ncurses/tinfo/lib_data.c head/contrib/ncurses/ncurses/tinfo/lib_longname.c head/contrib/ncurses/ncurses/tinfo/lib_napms.c head/contrib/ncurses/ncurses/tinfo/lib_options.c head/contrib/ncurses/ncurses/tinfo/lib_print.c head/contrib/ncurses/ncurses/tinfo/lib_raw.c head/contrib/ncurses/ncurses/tinfo/lib_setup.c head/contrib/ncurses/ncurses/tinfo/lib_termcap.c head/contrib/ncurses/ncurses/tinfo/lib_tgoto.c head/contrib/ncurses/ncurses/tinfo/lib_ti.c head/contrib/ncurses/ncurses/tinfo/lib_tparm.c head/contrib/ncurses/ncurses/tinfo/lib_tputs.c head/contrib/ncurses/ncurses/tinfo/lib_ttyflags.c head/contrib/ncurses/ncurses/tinfo/make_hash.c head/contrib/ncurses/ncurses/tinfo/make_keys.c head/contrib/ncurses/ncurses/tinfo/name_match.c head/contrib/ncurses/ncurses/tinfo/obsolete.c head/contrib/ncurses/ncurses/tinfo/parse_entry.c head/contrib/ncurses/ncurses/tinfo/read_entry.c head/contrib/ncurses/ncurses/tinfo/read_termcap.c head/contrib/ncurses/ncurses/tinfo/strings.c head/contrib/ncurses/ncurses/tinfo/tinfo_driver.c head/contrib/ncurses/ncurses/tinfo/trim_sgr0.c head/contrib/ncurses/ncurses/tinfo/use_screen.c head/contrib/ncurses/ncurses/tinfo/write_entry.c head/contrib/ncurses/ncurses/trace/lib_trace.c head/contrib/ncurses/ncurses/trace/lib_traceatr.c head/contrib/ncurses/ncurses/trace/lib_tracebits.c head/contrib/ncurses/ncurses/trace/lib_tracedmp.c head/contrib/ncurses/ncurses/trace/lib_tracemse.c head/contrib/ncurses/ncurses/trace/trace_xnames.c head/contrib/ncurses/ncurses/trace/visbuf.c head/contrib/ncurses/ncurses/tty/MKexpanded.sh head/contrib/ncurses/ncurses/tty/hardscroll.c head/contrib/ncurses/ncurses/tty/hashmap.c head/contrib/ncurses/ncurses/tty/lib_mvcur.c head/contrib/ncurses/ncurses/tty/lib_tstp.c head/contrib/ncurses/ncurses/tty/lib_twait.c head/contrib/ncurses/ncurses/tty/lib_vidattr.c head/contrib/ncurses/ncurses/tty/tty_update.c head/contrib/ncurses/ncurses/widechar/charable.c head/contrib/ncurses/ncurses/widechar/lib_add_wch.c head/contrib/ncurses/ncurses/widechar/lib_cchar.c head/contrib/ncurses/ncurses/widechar/lib_get_wch.c head/contrib/ncurses/ncurses/widechar/lib_get_wstr.c head/contrib/ncurses/ncurses/widechar/lib_hline_set.c head/contrib/ncurses/ncurses/widechar/lib_in_wch.c head/contrib/ncurses/ncurses/widechar/lib_ins_wch.c head/contrib/ncurses/ncurses/widechar/lib_inwstr.c head/contrib/ncurses/ncurses/widechar/lib_key_name.c head/contrib/ncurses/ncurses/widechar/lib_slk_wset.c head/contrib/ncurses/ncurses/widechar/lib_unget_wch.c head/contrib/ncurses/ncurses/widechar/lib_vid_attr.c head/contrib/ncurses/ncurses/widechar/lib_vline_set.c head/contrib/ncurses/ncurses/widechar/lib_wacs.c head/contrib/ncurses/ncurses/widechar/widechars.c head/contrib/ncurses/ncurses/win32con/gettimeofday.c head/contrib/ncurses/ncurses/win32con/win_driver.c head/contrib/ncurses/panel/Makefile.in head/contrib/ncurses/panel/llib-lpanel head/contrib/ncurses/panel/llib-lpanelt head/contrib/ncurses/panel/llib-lpaneltw head/contrib/ncurses/panel/llib-lpanelw head/contrib/ncurses/panel/panel.h head/contrib/ncurses/panel/panel.priv.h head/contrib/ncurses/progs/MKtermsort.sh head/contrib/ncurses/progs/Makefile.in head/contrib/ncurses/progs/capconvert head/contrib/ncurses/progs/clear.c head/contrib/ncurses/progs/dump_entry.c head/contrib/ncurses/progs/dump_entry.h head/contrib/ncurses/progs/infocmp.c head/contrib/ncurses/progs/modules head/contrib/ncurses/progs/progs.priv.h head/contrib/ncurses/progs/tabs.c head/contrib/ncurses/progs/tic.c head/contrib/ncurses/progs/toe.c head/contrib/ncurses/progs/tput.c head/contrib/ncurses/progs/tset.c head/lib/ncurses/ncurses/Makefile head/lib/ncurses/ncurses/ncurses_cfg.h head/lib/ncurses/ncurses/termcap.c Directory Properties: head/contrib/ncurses/ (props changed) Modified: head/contrib/ncurses/ANNOUNCE ============================================================================== --- head/contrib/ncurses/ANNOUNCE Tue Feb 18 01:50:44 2020 (r358061) +++ head/contrib/ncurses/ANNOUNCE Tue Feb 18 08:11:52 2020 (r358062) @@ -1,79 +1,943 @@ - Announcing ncurses 5.9 + Announcing ncurses 6.1 +Overview + The ncurses (new curses) library is a free software emulation of - curses in System V Release 4.0, and more. It uses terminfo format, - supports pads and color and multiple highlights and forms characters - and function-key mapping, and has all the other SYSV-curses - enhancements over BSD curses. + curses in System V Release 4.0 (SVr4), and more. It uses terminfo + format, supports pads and color and multiple highlights and forms + characters and function-key mapping, and has all the other SVr4-curses + enhancements over BSD curses. SVr4 curses became the basis of X/Open + Curses. In mid-June 1995, the maintainer of 4.4BSD curses declared that he - considered 4.4BSD curses obsolete, and encouraged the keepers of Unix + considered 4.4BSD curses obsolete, and encouraged the keepers of unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses. - The ncurses code was developed under GNU/Linux. It has been in use for - some time with OpenBSD as the system curses library, and on FreeBSD - and NetBSD as an external package. It should port easily to any - ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp! + Since 1995, ncurses has been ported to many systems: + * It is used in almost every system based on the Linux kernel (aside + from some embedded applications). + * It is used as the system curses library on OpenBSD, FreeBSD and + OSX. + * It is used in environments such as Cygwin and MinGW. The first of + these was EMX on OS/2 Warp. + * It is used (though usually not as the system curses) on all of the + vendor unix systems, e.g., AIX, HP-UX, IRIX64, SCO, Solaris, + Tru64. + * It should work readily on any ANSI/POSIX-conforming unix. The distribution includes the library and support utilities, including - a terminfo compiler tic(1), a decompiler infocmp(1), clear(1), - tput(1), tset(1), and a termcap conversion tool captoinfo(1). Full - manual pages are provided for the library and tools. + * [1]captoinfo, a termcap conversion tool + * [2]clear, utility for clearing the screen + * [3]infocmp, the terminfo decompiler + * [4]tabs, set tabs on a terminal + * [5]tic, the terminfo compiler + * [6]toe, list (table of) terminfo entries + * [7]tput, utility for retrieving terminal capabilities in shell + scripts + * [8]tset, to initialize the terminal - The ncurses distribution is available via anonymous FTP at the GNU - distribution site [1]ftp://ftp.gnu.org/gnu/ncurses/ . - It is also available at [2]ftp://invisible-island.net/ncurses/ . + Full manual pages are provided for the library and tools. - Release Notes + The ncurses distribution is available at ncurses' [9]homepage: - This release is designed to be upward compatible from ncurses 5.0 - through 5.8; very few applications will require recompilation, - depending on the platform. These are the highlights from the - change-log since ncurses 5.8 release. + [10]ftp://ftp.invisible-island.net/ncurses/ or + [11]https://invisible-mirror.net/archives/ncurses/ . - This is a bug-fix release, correcting a small number of urgent - problems in the ncurses library from the 5.8 release. + It is also available via anonymous FTP at the GNU distribution site - It also improves the Ada95 binding: - * fixes a longstanding portability problem with its use of the - [3]set_field_type function. Because that function uses - variable-length argument lists, its interface with gnat does not - work with certain platforms. - * improves configurability and portability, particularly when built - separately from the main ncurses tree. The 5.8 release introduced - scripts which can be used to construct separate tarballs for the - Ada95 and ncurses examples. - Those were a proof of concept. For the 5.9 release, those scripts - are augmented with rpm- and dpkg-scripts used in test builds - against a variety of gnat- and system ncurses versions as old as - gnat 3.15 and ncurses 5.4 (see snapshots and systems tested - [4]here. - * additional improvements were made for portability of the ncurses - examples, adding rpm- and dpkg-scripts for test-builds. See - [5]this page for snapshots and other information. + [12]ftp://ftp.gnu.org/gnu/ncurses/ . - Features of Ncurses +Release Notes - The ncurses package is fully compatible with SVr4 (System V Release 4) - curses: - * All 257 of the SVr4 calls have been implemented (and are - documented). - * Full support for SVr4 curses features including keyboard mapping, - color, forms-drawing with ACS characters, and automatic - recognition of keypad and function keys. - * An emulation of the SVr4 panels library, supporting a stack of - windows with backing store, is included. - * An emulation of the SVr4 menus library, supporting a uniform but - flexible interface for menu programming, is included. - * An emulation of the SVr4 form library, supporting data collection - through on-screen forms, is included. - * Binary terminfo entries generated by the ncurses tic(1) - implementation are bit-for-bit-compatible with the entry format - SVr4 curses uses. - * The utilities have options to allow you to filter terminfo entries - for use with less capable curses/terminfo versions such as the - HP/UX and AIX ports. + These notes are for ncurses 6.1, released January 27, 2018. + This release is designed to be source-compatible with ncurses 5.0 + through 6.0; providing extensions to the application binary interface + (ABI). Although the source can still be configured to support the + ncurses 5 ABI, the intent of the release is to provide extensions to + the ncurses 6 ABI: + * improve integration of tput and tset + * provide support for extended numeric capabilities. + + There are, of course, numerous other improvements, listed in this + announcement. + + The release notes also mention some bug-fixes, but are focused on new + features and improvements to existing features since ncurses 6.0 + release. + + Library improvements + + New features + + The improved integration of tput and tset made only small changes to + the libraries. However, supporting extended numeric capabilities + required a few changes: + * The TERMINAL structure in is now opaque. Doing that + allowed making the structure larger, to hold the extended numeric + data. + A few applications required changes during development of + ncurses 6.1 because those applications misused the members of that + structure, e.g., directly modifying it rather than using + [13]def_prog_mode. + * Having made TERMINAL opaque (and because none of the library + functions use anything except a pointer to TERMINAL), it was + possible to increase the size of the structure, adding to the end. + Existing applications which were linked to the ncurses 6.0 + high-level (ncurses, ncursesw) and low-level (tinfo, tinfo) + libraries should not require re-linking since the binary interface + did not change, nor did the structure offsets with TERMINAL + change. + A few applications use the inner TERMTYPE structure's offsets to + refer to terminfo capabilities within that structure. Again, those + do not require modification because their offsets within TERMINAL + did not change. + * When configured for wide-characters, i.e., "ncursesw" the TERMINAL + structure is extended. + The new data in TERMINAL holds the same information as TERMTYPE, + but with larger numbers ("int" versus "short"). It is named + TERMTYPE2. + The library uses this structure internally in preference to + TERMTYPE, referring to TERMTYPE only to initialize it for + applications that use the capabilities defined in + * When configured for 8-bit (narrow) characters, the TERMTYPE2 + structure is not used. + * The updated application binary interface is 6.1.20171230 (used for + new [14]versioned symbols), although the interface changes were + developed several months previously. + + The motivation for making this extension came from noticing that + [15]termcap applications could (though not [16]realistically) use + larger numbers than would fit in 16-bits, and the fact that the number + of color pairs for a 256-color xterm could not be expressed in + terminfo (i.e., 32767 versus 65536). Also, a few terminals support + direct-colors, which could use the extension. + + Generally speaking, applications that use internal details of a + library are unsupported. There was exactly one exception for ncurses: + the tack program used the internal details of TERMINAL, because it + provides an ncurses-specific feature for interactively modifying a + terminfo description and writing the updated description to a + text-file. It was possible to not only separate tack from these + [17]internal details of ncurses, but to generalize it so that the + program works with Unix curses (omitting the ncurses-specific + feature). That was released as [18]tack 1.08 in July 2017. + + While making changes to tack to eliminate its dependency upon ncurses + internals, the publicly-visible details of those internals were + reviewed, and some symbols were moved to private header files, while + others were marked explicitly as ncurses internals. Future releases of + ncurses may eliminate some of those symbols (such as those used by + tack 1.07) because they are neither part of the API or the ABI. + + Using the TERMTYPE2 extended numeric capabilities, it is possible to + support both color pair values and color values past 32767. Taking + compatibility into account, developers readily understand that neither + function signatures nor structure offsets change. Also, existing + functions have to operate with the extended numbers. Most of that work + is internal to the library. For the external interfaces, a hybrid + approach was used: + * X/Open Curses defined function prototypes such as wattr_set with + an unused parameter, for "future" use. After 25 years, the future + is here: ncurses uses the parameter to augment color pair values + as described in the [19]manual page. + * Other functions such as those defining color pairs did not have a + corresponding reserved parameter. For those, ncurses defines + extended versions such as init_extended_pair (versus init_pair), + init_extended_color (versus init_color). + + Additionally, to improve performance other changes (and extensions) + are provided in this release: + * Several new functions simplify management of large sets of color + pairs: reset_color_pairs, alloc_pair, find_pair and free_pair. + * New "RGB" extension capability for direct-color support is used to + improve performance of color_content. + * The internal colorpair_t is now a struct, eliminating an internal + 8-bit limit on colors + * Allocation for SCREEN's color-pair table starts small, grows on + demand up to the limit given in the terminal description. + * setcchar and getcchar now treat a negative color-pair as an error. + + Other improvements + + These are new or revised features: + * modify c++/etip.h.in to accommodate deprecation of throw and + throws in c++17 + * add new function unfocus_current_field + * add option to preserve leading whitespace in form fields + * add a macro for is_linetouched and adjust the function's return + value to make it possible for most applications to check for an + error-return. + * add build-time utility report_offsets to help show when the + various configurations of tinfo library are compatible or not. + + These were done to limit or ultimately deprecate features: + * drop two symbols obsoleted in 2004: _nc_check_termtype, and + _nc_resolve_uses + * move _nc_tracebits, _tracedump and _tracemouse to curses.priv.h, + since they are not part of the suggested ABI6. + * mark some structs in form/menu/panel libraries as potentially + opaque without modifying API/ABI. + * ifdef'd header-file definition of mouse_trafo with + NCURSES_NOMACROS + * remove initialization-check for calling napms in the term-driver + configuration; none is needed. + * modify trace to avoid overwriting existing file + + These are improvements to existing features: + * modify make_hash to allow building with address-sanitizer, + assuming that --disable-leaks is configured. + * move SCREEN field for use_tioctl data before the ncursesw fields, + and limit that to the sp-funcs configuration to improve termlib + compatibility + * modify db-iterator: + + ignore zero-length files in db-iterator; these are useful for + instance to suppress $HOME/.terminfo when not wanted. + + modify update_getenv to ensure that environment variables + which are not initially set will be checked later if an + application happens to set them + * modify _nc_outc_wrapper to use the standard output if the screen + was not initialized, rather than returning an error. + * improve checks for low-level terminfo functions when the terminal + has not been initialized. + * modify set_curterm to update ttytype[] data used by longname/p> + * modify _nc_get_screensize to allow for use_env and use_tioctl + state to be per-screen when sp-funcs are configured, better + matching the behavior when using the term-driver configuration. + * remove an early-return from _nc_do_color, which can interfere with + data needed by bkgd when ncurses is configured with extended + colors + * incorporate A_COLOR mask into COLOR_PAIR, in case user application + provides an out-of-range pair number + * modify logic for endwin-state to be able to detect the case where + the screen was never initialized, using that to trigger a flush of + ncurses' buffer for mvcur, e.g., in the sample program dots_mvcur + for the term-driver configuration. + + These are corrections to existing features: + * fixes for writing extended color pairs in putwin. + * modify no-leaks code for lib_cur_term.c to account for the tgetent + cache. + * amend handling of the repeat_char capability in EmitRange to avoid + scope creep: translate the character to the alternate character + set when the alternate character set is enabled, and do not use + repeat_char for characters past 255. + * improve wide-character implementation of myADDNSTR in + frm_driver.c, which was inconsistent with the normal + implementation. + * modify winnstr and winchnstr to return error if the output pointer + is null, as well as adding a null pointer check of the window + pointer for better compatibility with other implementations. + * modify setupterm to save original tty-modes so that erasechar + works as expected. Also modify _nc_setupscreen to avoid redundant + calls to get original tty-modes. + * modify wattr_set and wattr_get to return ERR if win-parameter is + null, as documented. + * correct order of initialization for traces in use_env and + use_tioctl versus first _tracef calls. + * correct parameters for copywin call in _nc_Synchronize_Attributes + * flush the standard output in _nc_flush for the case where SP is + zero, e.g., when called via putp. This fixes a scenario where + "tput flash" did not work after changes in 20130112. + * amend internal use of tputs to consistently use the number of + lines affected, e.g., for insert/delete character operations. + While merging terminfo source early in 1995, several descriptions + used the "*" proportional delay for these operations, prompting a + change in doupdate. + * correct return-value of extended putwin. + * double-width multibyte characters were not counted properly in + winsnstr and wins_nwstr. + * amend fix for _nc_ripoffline from 20091031 to make test/ditto.c + work in threaded configuration. + * modify _nc_viscbuf2 and _tracecchar_t2 to trace wide-characters as + a whole rather than their multibyte equivalents. + * minor fix in wadd_wchnstr to ensure that each cell has nonzero + width. + * move PUTC_INIT calls next to wcrtomb calls, to avoid carry-over of + error status when processing Unicode values which are not mapped. + * add missing assignment in lib_getch.c to make notimeout work + + Program improvements + + While reviewing user feedback, it became apparent that the differences + between [20]reset (an alias for tset) and "tput reset" were confusing: + * one ([21]tset) updated the terminal modes, but used only part of + the terminfo capabilities for initialization, while + * the other ([22]tput) used all of the terminal capabilities while + neglecting the terminal modes. + + On further investigation, it turned out that the differences were + largely an accident due to the way those programs had evolved. + + This release eliminates the unnecessary differences, using the same + approach for tput's init (initialization), reset and clear operations + as the separate [23]reset and [24]clear programs. Doing this does not + change the command-line options; existing scripts are unaffected. + + These are the user-visible changes for the three programs (tput, tset + and clear): + * add the terminal-mode parts of "reset" (aka tset) to the "tput + reset" command, making the two almost the same except for + window-size. + * improve tput's check for being called as "init" or "reset" to + allow for transformed names. + * add "clear" as a possible link/alias to tput. + * amend changes for tput to reset tty modes to "sane" if the program + is run as "reset", like tset. Likewise, ensure that tset sends + either reset- or init-strings. + * add -x option to clear/tput to make the E3 extension optional + * add functionality of "tset -w" to tput, like the "-c" feature this + is not optional in tput. + * add options -T and -V to clear command for compatibility with + tput. + * drop long-obsolete "-n" option from tset. + * modify tset's assignment to TERM in its output to reflect the name + by which the terminal description is found, rather than the + primary name. That was an unnecessary part from the initial + conversion of tset from termcap to terminfo. The termcap library + in 4.3BSD did this to avoid using the short 2-character name + * remove a restriction in tput's support for termcap names which + omitted capabilities normally not shown in termcap translations + * add usage message to clear command + * improve usage messages for tset and tput. + + Other user-visible improvements and new features include: + * modify tic/infocmp display of numeric values to use hexadecimal + when they are "close" to a power of two, making the result more + readable. + * add "-W" option to tic/infocmp to force long strings to wrap. + + This is in addition to the "-w" option which attempts to fit + capabilities into a given line-length. + + If "-f" option splits line, do not further split it with + "-W". + + Begin a new line when adding "use=" after a wrapped line. + * add "-q" option to infocmp to suppress the "Reconstructed from" + comment from the header, and a corresponding option to tic to + suppress all comments from the "tic -I" output. + * Sorted options in usage message for infocmp, to make it simpler to + see unused letters. + * Updated usage message for tic, adding "-0" option. + * add infocmp/tic "-Q" option, which allows one to dump the compiled + form of the terminal entry, in hexadecimal or base64: + + A "b64:" prefix in the TERMINFO variable tells the terminfo + reader to use base64 according to RFC-3548 as well as + RFC-4648 url/filename-safe format. + + A "hex:" prefix tells the terminfo reader to accept + hexadecimal data as generated by "infocmp -0qQ1". + + Other less-visible improvements and new features include: + * modify utility headers such as tic.h to make it clearer which are + externals that are used by tack. + * add "reset" to list of programs whose names might change in + manpages due to program-transformation configure options. + * modify "-T" option of clear and tput to call use_tioctl to obtain + the operating system's notion of the screensize if possible. + * add check in tput for init/reset operands to ensure those use a + terminal. + * modify programs clear, tabs, tput and tset to pass the actual tty + file descriptor to setupterm rather than the standard output or + error, making padding work. + * change tset's initialization to allow it to get settings from the + standard input as well as /dev/tty, to be more effective when + output or error are redirected. + * amend check in tput, tabs and clear to allow those to use the + database-only features in cron if a "-T" option gives a suitable + terminal name. + * improve error message from tset/reset when both stderr/stdout are + redirected to a file or pipe. + + Several of the less apparent features deal with translation of + terminfo to termcap (and the reverse), with corresponding checks by + tic: + * modify check in fmt_entry to handle a cancelled reset string. Make + similar fixes in other parts of dump_entry.c and tput.c + * correct read of terminfo entry in which all strings are absent or + explicitly cancelled. Before this fix, the result was that all + were treated as only absent. + * modify infocmp to suppress mixture of absent/cancelled + capabilities that would only show as "NULL, NULL", unless the "-q" + option is used, e.g., to show "-, @" or "@, -". + * correct a warning from tic about keys which are the same, to skip + over missing/cancelled values. + * add check in tic for use of bold, etc., video attributes in the + color capabilities, accounting whether the feature is listed in + ncv. + * add check in tic for unnecessary use of "2" to denote a shifted + special key. + * improve check in tic for delays by also warning about beep/flash + when a delay is not embedded, or if those use the VT100 reverse + video escape without using a delay. + * improve checks in trim_sgr0, comp_parse.c and parse_entry.c, for + cancelled string capabilities. + * add check in tic for some syntax errors of delays, as well as use + of proportional delays for non-line capabilities. + * add check in tic for conflict between ritm, rmso, rmul versus + sgr0. + * add check in _nc_parse_entry for invalid entry name, setting the + name to "invalid" to avoid problems storing entries. + * improve _nc_tparm_analyze, using that to extend the checks made by + tic for reporting inconsistencies between the expected number of + parameters for a capability and the actual. + * remove tic warning about "^?" in string capabilities, which was + marked as an extension; however all Unix implementations support + this and X/Open Curses does not address it. On the other hand, + [25]BSD termcap did not support this feature (until the + [26]mid-1990s). + in _nc_infotocap, added a check to ensure that terminfo "^?" is + not written to termcap. + * modify sscanf calls in _nc_infotocap for patterns "%{number}%+%c" + and "%'char'%+%c" to check that the final character is really "c", + avoiding a case in icl6404 which cannot be converted to termcap. + * in _nc_tic_expand and _nc_infotocap, improved string-length check + when deciding whether to use "^X" or "\xxx" format for control + characters, to make the output of tic/infocmp more predictable. + * limited termcap "%d" width to 2 digits on input, and use "%2" in + preference to "%02" on output. + * correct terminfo/termcap conversion of "%02" and "%03" into "%2" + and "%3"; the result repeated the last character. + + Examples + + Along with the library and utilities, many improvements were made to + the [27]ncurses-examples. + + These changes were made to demonstrate new extensions in ncurses: + * add demo_new_pair program, to demonstrate [28]alloc_pair, + [29]find_pair and [30]free_pair functions. + This program iterates over the possible color combinations, + allocating or initializing color pairs. For best results, choose + screen-width dividing evenly into the number of colors. e.g., + + 32x64,32x128 256 colors + 24x44,24x88 88 colors + 32x64,24x128 16 colors + + * add extended_color program, like the older color_set program, but + using the extended color functions, with and without the + SP-functions interface. + * add picsmap program to fill in some testing issues not met by + dots, using this as the third example in a comparison of the + [31]ncurses versus slang libraries. + The program can directly read X bitmap and pixmap files, + displaying a picture. It can read other image files using + ImageMagick's convert program to translate the image into text. + For 16-, 88- and 256-color terminal descriptions, picsmap can load + a palette file which tells it which color palette entries to use. + For direct-colors, the terminal descriptions use the RGB extension + capability. + + There are other new example programs and a few scripts: + * add dots_xcurses program to illustrate a different approach used + for extended colors which can be contrasted with dots_curses. + * add list_keys program show function keys for one or more terminal + descriptions. It uses ncurses's convention of modifiers for + special keys, based on xterm. + * add padview program, to compare pads with direct updates in the + view program. + * add sp_tinfo program to exercise the SP-functions extension of the + low-level terminfo library. + * add test-programs for termattrs and term_attrs functions. + * add test_sgr program to exercise all combinations of the sgr + capability. + * add tput-colorcube demo script, imitating xterm's 88- and + 256-color scripts using tput. + * add tput-initc script to demonstrate how tput may be used to + initialize a color palette from a data file. + + A variety of improvements were made to existing programs, both new + features as well as options added to make the set of programs more + consistent. + + The ncurses program is the largest; a proportionately large number of + changes were made to it: + * modify a/A screens to make exiting on an escape character depend + on the start of keypad and timeout modes, to allow better testing + of function-keys. + add "t" toggle for notimeout function. + * modify layout of b/B screens to allow for additional annotation on + the right margin; some terminals with partial support did not + display well. + * modify c/C screens to allow for extended color pairs. + add z/Z zoom feature to make extended color pairs easier to test. + modify test-screens to take advantage of wide screens, reducing + the number of lines used for 88- and 256-colors. + * modify "d" edit-color screen to optionally read xterm color + palette directly from terminal, as well as handling KEY_RESIZE and + screen-repainting with control/L and control/R. + * add examples to "F" screen for WACS_D_PLUS and WACS_T_PLUS. + * improve "g" screen, correcting ifdef which made the legend not + reflect changes to keypad- and scroll-modes. Added check for + return-value of putwin. + * make "s" test easier to understand which subtests are available + add a corresponding "S" wide-character overlap test-screen. + * add "v" screen to show baudrate and other values. + + These changes were made to the other examples: + * modify blue program to use Unicode values for card-glyphs when + available, as well as improving the check for CP437 and CP850. + * improve demo_menus program, allowing mouse-click on the + menu-headers to switch the active menu. This requires a new + extension option O_MOUSE_MENU to tell the menu driver to put mouse + events which do not apply to the active menu back into the queue + so that the application can handle the event. + * correct logic in demo_terminfo program for "-f" option + * modify ditto program to allow $XTERM_PROG environment variable to + override "xterm" as the name of the program to run in the threaded + configuration. + * add several options to the "dots" test-programs. + * modify filter program: + + illustrate an alternative to getnstr, that polls for input + while updating a clock on the right margin as well as + responding to window size-changes. + + adapt logic used in [32]dialog [33]"--keep-tite" option for + filter program as the "-a" option. When set, filter attempts + to suppress the alternate screen. + * modify knight program to provide the "slow" solution for small + screens using "R", noting that Warnsdorf's method is easily done + with "a". + * modify the savescreen program to add test patterns that exercise + 88-, 256-, etc., colors. + * add options to test_arrays, for selecting termcap vs terminfo, + etc. + * modify the view program: + + expand tabs using the ncurses library rather than in the + test-program. + + eliminate the "-n" option by simply reading the whole file. + + implement page up/down commands. + + remove the very old SIGWINCH example; just use KEY_RESIZE. + * improve animation in xmas program by adding a time-delay in + blinkit. + * modify several test-programs which call use_default_colors to + consistently do this only if the "-d" option is given. + * modify the install-rule for ncurses-examples to put the data files + in the data directory, e.g., /usr/share/ncurses-examples. + * modify several test programs to use new popup_msgs function, + adapted from the help-screen used in the edit_field program. + * modify test data for xterm palettes to use the newer + color4/color12 values. + * improve the tracemunch script: + + show screenXX pointers and thread identifiers as names. + + chang address-parameters of add_wch, color_content and + pair_content to dummy parameters. + + Terminal database + + There are several new terminal descriptions: + + dumb-emacs-ansi, dvtm, dvtm-256color, fbterm, iterm2, linux-m1 + minitel entries, putty-noapp, viewdata, and vt100+4bsd + building-block. + + xterm+noalt, xterm+titlestack, xterm+alt1049, xterm+alt+title + building blocks and xterm+direct, xterm+indirect, xterm-direct. + from [34]xterm patch #331. + + several other "-direct" descriptions to address the differences of + other terminal emulators versus xterm-direct. + + There are many changes to existing terminal descriptions. Some were + updates to several descriptions: + * use xterm+sm+1006 in several terminal descriptions which were + validated as supporting the extended mouse feature for their + respective terminal emulators. + * corrected sgr/sgr0 strings in a few cases reported by tic, making + those correspond to the non-sgr settings where they differ, but + otherwise use ECMA-48 consistently. + * add 0.1sec mandatory delay to flash capabilities using the VT100 + reverse-video control + + while others affected specific descriptions. These were retested, to + take into account new/undocumented changes by their developers: + + iterm, minitel, st, viewdata, nsterm + + while these are specific fixes based on user reports, or warnings from + tic: + + [35]ansi building blocks + + + restored rmir/smir in ansi+idc to better match original + ansiterm+idc, add alias ansiterm + + [36]icl6402 + + + corrected missing comma-separator between string capabilities + in icl6402 and m2-nam + + [37]interix + + + updated using tack and SFU with Windows 7 Ultimate. + + used ^? for kdch1 + + [38]linux + + + made linux3.0 entry the default linux entry + + modify linux2.6 entry to improve line-drawing so that the + linux3.0 entry can be used in non-UTF-8 mode + + omitted selection of ISO-8859-1 for G0 in enacs capability + from linux2.6 entry, to avoid conflict with the user-defined + mapping. The reset feature uses ISO-8859-1 in any case. + + modify flash capability for linux and wyse entries to put the + delay between the reverse/normal escapes rather than after + + modify linux-16color to not mask dim, standout or reverse + with the ncv capability + + [39]pccon entries + + + fixed some inconsistencies in the pccon* entries + + add bold to pccon+sgr+acs and pccon-base + + add keys f12-f124 to pccon+keys + + [40]tmux + + + corrected sgr string, which used screen's "standout" code + rather than the standard code. + + add settings corresponding to xterm-keys option to reflect + upcoming change to make that option "on" by default + + uncanceled Ms + + [41]vt100 + + + modify vt100 rs2 string to reset vt52 mode and scrolling + regions + + corrected rs2 string for vt100-nam + + made minor fixes for vt100+4bsd, e.g., delay in sgr for + consistency + + [42]vte + + + moved SGR 24 and 27 from vte-2014 to vte-2012 + + add a few capabilities fixed in recent VTE development + + [43]xterm + + + add rep to xterm-new, available since [44]late 1996. + + modify xterm+256color and xterm+256setaf to use correct + number of color pairs. + + modify rs1 for xterm-16color, xterm-88color and + xterm-256color to reset palette using oc string as in linux + entry. + + add rs1 capability to xterm-256color + + add oc capability to xterm+256color, allowing palette reset + for xterm + + add op to xterm+256setaf + + modify xterm-r5, xterm-r6 and xterm-xf86-v32 to use xterm+kbs + to match [45]xterm #272, reflecting packager's changes + + used ANSI reply for u8 in xterm-new, to reflect vt220-style + responses that could be returned. + + made xterm-pcolor sgr consistent with other capabilities + + A few entries use extensions (user-defined terminal capabilities): + * add rmxx/smxx ECMA-48 strikeout extension to tmux and xterm-basic + * used RGB capability in new *-direct entries to denote direct-color + feature. + + Documentation + + As usual, this release + * improves documentation by describing new features, + * attempts to improve the description of features which users have + found confusing + * fills in overlooked descriptions of features which were described + in the [46]NEWS file but treated sketchily in manual pages. + + In particular, + * Since the underlying features for [47]tset, [48]tput, and + [49]clear have been better integrated, the documentation now + includes information on how those tools evolved. + In addition to explaining the improved integration of the tools, + the manual pages made it easier to see how the tools are similar + and how they are different. + * The addch manual page has additional information on + [50]portability and differences from other implementations. + * The discussion of color-pairs in the attributes manual page is + improved in its [51]history section. + * The documentation of the chtype, cchar_t types and the attribute + values which can be stored in those types, in particular the + [52]history and [53]portability sections of the attributes manual + page, has been improved. + * improve discussion of [54]portability in the mouse manual. + * The pad manual page has a section on the [55]origin and + portability of pads. + * Differences between SVr4 and X/Open Curses soft-keys are discussed + in a new section on [56]portability. + * There are updated/improved notes on portability in the + [57]resizeterm and [58]wresize manual pages. + + In addition to providing background information to explain these + features and show how they evolved, there are corrections, + clarifications, etc.: + * add note in the [59]addch manual about line-drawing when it + depends upon UTF-8. + * improve discussion of line-drawing characters in the [60]add_wch + manual. + * explain in [61]clear's manual page that it writes to the standard + output. + * improve description of [62]endwin. + * improve discussion of field validation in the [63]form driver + manual page. + * clarify the use of wint_t vs wchar_t in [64]get_wstr manual page. + * clarify in the [65]getch manual that the keypad mode affects an + application's ability to read KEY_MOUSE codes, but does not affect + KEY_RESIZE. + trim some obsolete/incorrect wording about EINTR from the getch + manual page + improve manual pages for [66]getch and [67]get_wch to point out + that they might return user-defined values which have no + predefined names in + * improve description of the -R option in the [68]infocmp manual + page + * clarify in the [69]resizeterm manual page how KEY_RESIZE is pushed + onto the input stream. + * document return value of [70]use_extended_names + * document differences in [71]ESCDELAY versus AIX's implementation + in the variables manual page. + * The _nc_free_tinfo function is now documented in the + [72]memory-leaks manual page, because it could be used in tack for + memory-leak checking. + * add a note to the [73]tic manual page about -W versus -f options. + * improve terminfo manual description of [74]terminfo syntax. + improve terminfo manual page discussion of [75]control- and + graphics- characters. + improve [76]color-handling section in terminfo manual page + * clarify description in [77]tput manual page regarding support for + termcap names + update [78]tput manual page to reflect changes to manipulate + terminal modes by sharing functions with tset. + * clarify in manual pages that the optional verbose option level of + [79]tic and [80]infocmp is available only when ncurses is + configured for tracing. + * improve manual page description of [81]tset/reset versus + window-size. + * improve description of [82]tgoto parameters + + There are new manual pages: + * [83]user_caps documents the terminfo extensions used by ncurses. + * [84]scr_dump documents the screen-dump format. + + Some of the improvements are more subtle, relating to the way the + information is presented: + * Made minor fixes to manpage NAME/SYNOPSIS sections to consistently + use rule that either all functions which are prototyped in + SYNOPSIS are listed in the NAME section, or the manual-page name + is the sole item listed in the NAME section. The latter is used to + reduce clutter, e.g., for the top-level library manual pages as + well as for certain feature-pages such as [85]SP-funcs and + [86]threading. + * improve manual pages for utilities with respect to POSIX versus + X/Open Curses. + * improve organization of the [87]attributes and [88]color manual + pages. + + Interesting bug-fixes + + * modify toe to not exit if unable to read a terminal description, + e.g., if there is a permission problem. + * correct 20100515 change for weak signals versus sigprocmask + * work around Ada tool-breakage in Debian 9 and later by invoking + gprconfig to specify the C compiler to be used by gnatmake, and + conditionally suppressing Library_Options line for static + libraries. + * There were, as well, several bug-fixes to handle illegal input for + tic. Because those did not correspond to useful terminal + descriptions, most users are unaffected. + + Configuration changes + + Major changes + + This release provides a new binary format for terminal descriptions + that use extended numeric capabilities. Applications built with the + wide-character ncursesw library can use these extended numbers. + * This includes utilities such as tic and infocmp, because (as noted + in [89]New features), the feature relies upon an extension to the + low-level tinfo library. + * A few software packagers use a configuration option of ncurses + which allows the low-level tinfo library to be shared between the + high-level ncurses and ncursesw libraries. This new feature was + designed to work in that configuration as well. + + Other applications (i.e., using the 8-bit ncurses library) which read + the extended terminal descriptions see those numeric capabilities set + to the maximum value for a signed 16-bit number. + + Older versions of ncurses' tic accept out-of-range numeric + capabilities, storing those as the maximum value for a signed 16-bit + number. Other implementations of curses (mentioned in the discussion + of [90]picsmap) give zero for these out-of-range capabilities. + + Configuration options + + These changes provide support for tack 1.08, released in [91]July + 2017: + * add --without-tack configure option to refine --with-progs + configure option. Normally tack is built outside the ncurses tree, + but a few packagers combine it during the build. If term_entry.h + is installed, there is no advantage to in-tree builds. + * adjust configure-script to define HAVE_CURSES_DATA_BOOLNAMES + symbol needed for tack 1.08 when built in-tree. Rather than + relying upon internal "_nc_" functions, tack now uses the boolean, + number and string capability name-arrays provided by ncurses and + SVr4 Unix curses. It still uses term_entry.h for the definitions + of the extended capability arrays. + * add dependency upon ncurses_cfg.h to tic's header-files; any + program using tic-library will have to supply this file. Legacy + tack versions supply this file; ongoing tack development has + dropped the dependency upon tic-library and new releases will not + be affected. + + Other changes to the configure-script and generated files include + * add configure options to disable checks for form, menu and panel + libraries so that ncurses-examples can be built with non-SVr4 + curses implementations. + * add configure option --enable-opaque-curses for ncurses library + and similar options for the other libraries. + * add configure option --disable-wattr-macros for use in cases where + one wants to use the same headers for ncurses5/ncurses6 + development, by suppressing the wattr* macros which differ due to + the introduction of extended colors + * modify configure macro for shared-library rules to use -Wl,-rpath + rather than -rpath to work around a bug in scons + * improve ncurses-examples' configure script to define as needed + NCURSES_WIDECHAR for platforms where _XOPEN_SOURCE_EXTENDED does + not work. Also modified the test program to ensure that if + building with ncurses, that the cchar_t type is checked, since + that is normally (since [92]20111030) ifdef'd depending on this + test. + * modify configure script to handle the case where tic-library is + renamed, but the --with-debug option is used by itself without + normal or shared libraries + * modify editing script which generates resulting.map to work with + the clang configuration on recent FreeBSD, which gives an error on + an empty "local" section. + * improve configure check for setting the WILDCARD_SYMS variable; on + ppc64 the variable is in the Data section rather than Text. + * correct result of configure option --without-fallbacks, which + caused FALLBACK_LIST to be set to "no" + * modify --with-pkg-config-libdir option to make it possible to + install ".pc" files even if pkg-config is not found. Limit this + change, to suppress the actual install if it is not overridden to + a valid directory at install time. + * disallow "no" as a possible value for --with-shlib-version option, + overlooked in cleanup-changes for [93]20000708. + + Portability + + Many of the portability changes are implemented via the configure + script: + * improve configure script's CF_CC_ENV_FLAGS macro to allow for + compiler wrappers such as ccache. This change moves only the + preprocessor, optimization and warning flags to CPPFLAGS and + CFLAGS, leaving the residue in CC. That happens to work for gcc's + various "model" options, but may require tuning for other + compilers. + * modify ncurses-examples' configure script to use pkg-config for + the extra form/menu/panel libraries, to be more consistent with + the handling of the curses/ncurses library. + * add configuration checks to build with [94]NetBSD curses, which + for example lacks [95]use_env. + * change ncurses-examples to use attr_t vs chtype to follow X/Open + documentation more closely since Solaris xpg4-curses uses + different values for WA_xxx vs A_xxx that rely on attr_t being an + unsigned short. Tru64 aka OSF1, HPUX, AIX did as ncurses does, + equating the two sets. + * modify several test programs to reflect that ncurses honors + existing signal handlers in initscr, while other implementations + do not. + * add configure check for openpty to ncurses-examples' configure + script, for ditto. + * improve check for working poll function by using posix_openpt as a + fallback in case there is no valid terminal on the standard input + * modify ncurses-examples' configure script to check for pthread + dependency of ncursest or ncursestw library when building the + ncurses examples, e.g., in case weak symbols are used. + * add checks in ncurses-examples' configure script for some + functions neither in 4.3BSD curses, nor based on X/Open Curses: + + modify a loop limit in firework.c to work around absense of + limit checks in some libraries. + + fill the last row of a window with "?" in firstlast if waddch + does not return ERR on the lower-right corner. + * build-fixes for the Portland Group (PGI) compilers + + accept whitespace in sed expression for generating expanded.c + + modify configure check that g++ compiler warnings are not + used. + + add configure check for -fPIC option needed for shared + libraries. + * modify configure script for clang as used on FreeBSD, to work + around clang's differences in exit codes vs gcc. + * fixes for configure/build using clang on OSX + + do not redefine "inline" in ncurses_cfg.h; this was + originally to solve a problem with gcc/g++, but is aggravated + by clang's misuse of symbols to pretend it is gcc. + + add braces to configure script to prevent unwanted addition + of "-lstdc++" option to the CXXLIBS symbol. + + improve/update test-program used for checking existence of + stdc++ library. + + if $CXXLIBS is set, the linkage test uses that in addition to + $LIBS. + * fixes for OS/2: + + use button instead of kbuf[0] in EMX-specific part of + lib_mouse.c + + support building with libtool on OS/2 + + use stdc++ library with OS/2 kLIBC + + clear configure script's cf_XOPEN_SOURCE for OS/2, to work + with its header files + * add "newer" baudrate symbols to the [96]baudrate function in the + ncurses library as well as to a corresponding table in tset. + * modify ncurses-examples savescreen to work with AIX and HPUX. + * define WIN32_LEAN_AND_MEAN for MinGW port, making builds faster. + * add a configure check for wcwidth versus the ncurses line-drawing + characters, to use in special-casing systems such as Solaris. + Solaris, however, requires a special case that maps Unicode + line-drawing characters into the acsc string for non-Unicode + locales. Solaris also has a misconfigured wcwidth which marks all + of the line drawing characters as double-width. + * string-hacks (non-standard): + + fix configure script to record when strlcat is found on + OpenBSD. + + add --enable-string-hacks option to ncurses-examples' + configure script. + + completed string-hacks for sprintf, etc., including the + ncurses-examples programs. + + make --enable-string-hacks option work with Debian by + checking for the "bsd" library and its associated + "" header. + * workaround for Debian's antique/unmaintained version of mawk: + + see Debian #65617, which was fixed in mawk's upstream + releases in [97]2009. + + related fixes when building link_test. + _________________________________________________________________ + +Features of ncurses + + The ncurses package is fully upward-compatible with SVr4 (System V + Release 4) curses: + * All of the SVr4 calls have been implemented (and are documented). + * ncurses supports all of the for SVr4 curses features including + keyboard mapping, color, forms-drawing with ACS characters, and + automatic recognition of keypad and function keys. + * ncurses provides these SVr4 add-on libraries (not part of X/Open + Curses): + + the panels library, supporting a stack of windows with + backing store. + + the menus library, supporting a uniform but flexible + interface for menu programming. + + the form library, supporting data collection through + on-screen forms. + * ncurses's terminal database is fully compatible with that used by + SVr4 curses. + + ncurses supports user-defined capabilities which it can see, + but which are hidden from SVr4 curses applications using the + same terminal database. + + It can be optionally configured to match the format used in + related systems such as AIX and Tru64. + + Alternatively, ncurses can be configured to use hashed + databases rather than the directory of files used by SVr4 + curses. + * The ncurses utilities have options to allow you to filter terminfo *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Feb 18 11:26:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9ECBF25CD25; Tue, 18 Feb 2020 11:26:50 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MJTk3ZDRz49Cj; Tue, 18 Feb 2020 11:26:50 +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 3D74F1F397; Tue, 18 Feb 2020 11:26:50 +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 01IBQoPn016190; Tue, 18 Feb 2020 11:26:50 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IBQnR6016189; Tue, 18 Feb 2020 11:26:49 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002181126.01IBQnR6016189@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Tue, 18 Feb 2020 11:26:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358064 - in head/contrib/ipfilter: man tools X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in head/contrib/ipfilter: man tools X-SVN-Commit-Revision: 358064 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 11:26:50 -0000 Author: cy Date: Tue Feb 18 11:26:49 2020 New Revision: 358064 URL: https://svnweb.freebsd.org/changeset/base/358064 Log: As with ipf(8), give ippool(8) the ability to load IP pools from multiple files. This allows for loading, during the same invocation of ippool, of multiple sources of input using multiple tools to concurrently maintain the files such as fail2ban, macro preprocessors, and manually. MFC after: 1 week Modified: head/contrib/ipfilter/man/ippool.8 head/contrib/ipfilter/tools/ippool.c Modified: head/contrib/ipfilter/man/ippool.8 ============================================================================== --- head/contrib/ipfilter/man/ippool.8 Tue Feb 18 10:28:09 2020 (r358063) +++ head/contrib/ipfilter/man/ippool.8 Tue Feb 18 11:26:49 2020 (r358064) @@ -12,7 +12,7 @@ ippool \- user interface to the IPFilter pools -A [-dnv] [-m ] [-o ] [-S ] -t .br .B ippool --f [-dnuv] +-f [-dnuv] [-f ] [-t ] Modified: head/contrib/ipfilter/tools/ippool.c ============================================================================== --- head/contrib/ipfilter/tools/ippool.c Tue Feb 18 10:28:09 2020 (r358063) +++ head/contrib/ipfilter/tools/ippool.c Tue Feb 18 11:26:49 2020 (r358064) @@ -381,12 +381,16 @@ loadpoolfile(argc, argv, infile) { int c; - while ((c = getopt(argc, argv, "dnuv")) != -1) + while ((c = getopt(argc, argv, "dnuvf:")) != -1) switch (c) { case 'd' : opts |= OPT_DEBUG; ippool_yydebug++; + break; + case 'f' : + if (loadpoolfile(argc, argv, optarg) != 0) + return(-1); break; case 'n' : opts |= OPT_DONOTHING|OPT_DONTOPEN; From owner-svn-src-all@freebsd.org Tue Feb 18 11:26:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 172CD25CD45; Tue, 18 Feb 2020 11:26:55 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MJTn60QCz49HG; Tue, 18 Feb 2020 11:26:53 +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 6E2B61F398; Tue, 18 Feb 2020 11:26:53 +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 01IBQr7x016238; Tue, 18 Feb 2020 11:26:53 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IBQrVo016237; Tue, 18 Feb 2020 11:26:53 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002181126.01IBQrVo016237@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Tue, 18 Feb 2020 11:26:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358065 - head/lib/libpam/modules/pam_login_access X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358065 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 11:26:55 -0000 Author: cy Date: Tue Feb 18 11:26:52 2020 New Revision: 358065 URL: https://svnweb.freebsd.org/changeset/base/358065 Log: The words ALL, LOCAL, and EXCEPT have special meaning and are documented as in the login.access(5) man page. However strcasecmp() is used to compare for these special strings. Because of this User accounts and groups with the corresponding lowercase names are misintrepreted to have special whereas they should not. This commit fixes this, conforming to the man page and to how the Linux pam_access(8) handles these special words. Approved by: des (implicit, blanket) Modified: head/lib/libpam/modules/pam_login_access/login_access.c Modified: head/lib/libpam/modules/pam_login_access/login_access.c ============================================================================== --- head/lib/libpam/modules/pam_login_access/login_access.c Tue Feb 18 11:26:49 2020 (r358064) +++ head/lib/libpam/modules/pam_login_access/login_access.c Tue Feb 18 11:26:52 2020 (r358065) @@ -125,7 +125,7 @@ list_match(char *list, const char *item, */ for (tok = strtok(list, sep); tok != NULL; tok = strtok((char *) 0, sep)) { - if (strcasecmp(tok, "EXCEPT") == 0) /* EXCEPT: give up */ + if (strcmp(tok, "EXCEPT") == 0) /* EXCEPT: give up */ break; if ((match = (*match_fn)(tok, item)) != 0) /* YES */ break; @@ -133,7 +133,7 @@ list_match(char *list, const char *item, /* Process exceptions to matches. */ if (match != NO) { - while ((tok = strtok((char *) 0, sep)) && strcasecmp(tok, "EXCEPT")) + while ((tok = strtok((char *) 0, sep)) && strcmp(tok, "EXCEPT")) /* VOID */ ; if (tok == NULL || list_match((char *) 0, item, match_fn) == NO) return (match); @@ -219,7 +219,7 @@ from_match(const char *tok, const char *string) if ((str_len = strlen(string)) > (tok_len = strlen(tok)) && strcasecmp(tok, string + str_len - tok_len) == 0) return (YES); - } else if (strcasecmp(tok, "LOCAL") == 0) { /* local: no dots */ + } else if (strcmp(tok, "LOCAL") == 0) { /* local: no dots */ if (strchr(string, '.') == 0) return (YES); } else if (tok[(tok_len = strlen(tok)) - 1] == '.' /* network */ @@ -240,7 +240,7 @@ string_match(const char *tok, const char *string) * Otherwise, return YES if the token fully matches the string. */ - if (strcasecmp(tok, "ALL") == 0) { /* all: always matches */ + if (strcmp(tok, "ALL") == 0) { /* all: always matches */ return (YES); } else if (strcasecmp(tok, string) == 0) { /* try exact match */ return (YES); From owner-svn-src-all@freebsd.org Tue Feb 18 11:26:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EFDF525CD64; Tue, 18 Feb 2020 11:26:57 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MJTs4nsbz49Nk; Tue, 18 Feb 2020 11:26:57 +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 769E91F399; Tue, 18 Feb 2020 11:26:56 +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 01IBQu7s016283; Tue, 18 Feb 2020 11:26:56 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IBQuea016282; Tue, 18 Feb 2020 11:26:56 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002181126.01IBQuea016282@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Tue, 18 Feb 2020 11:26:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358066 - head/lib/libpam/modules/pam_login_access X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358066 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 11:26:58 -0000 Author: cy Date: Tue Feb 18 11:26:56 2020 New Revision: 358066 URL: https://svnweb.freebsd.org/changeset/base/358066 Log: When pam_login_access(5) fails to match a username it attempts to match the primary group a user belongs to. This commit extends the match to secondary groups a user belongs to as well, just as the Linux pam_access(5) does. Approved by: des (implicit, blanket) Modified: head/lib/libpam/modules/pam_login_access/login_access.c Modified: head/lib/libpam/modules/pam_login_access/login_access.c ============================================================================== --- head/lib/libpam/modules/pam_login_access/login_access.c Tue Feb 18 11:26:52 2020 (r358065) +++ head/lib/libpam/modules/pam_login_access/login_access.c Tue Feb 18 11:26:56 2020 (r358066) @@ -17,10 +17,12 @@ static char sccsid[] = "%Z% %M% %I% %E% %U%"; __FBSDID("$FreeBSD$"); #include +#include #include #include #include #include +#include #include #include #include @@ -174,6 +176,9 @@ static int user_match(const char *tok, const char *string) { struct group *group; + struct passwd *passwd; + gid_t *grouplist; + int ngroups = NGROUPS; int i; /* @@ -186,10 +191,37 @@ user_match(const char *tok, const char *string) return (netgroup_match(tok + 1, (char *) 0, string)); } else if (string_match(tok, string)) { /* ALL or exact match */ return (YES); - } else if ((group = getgrnam(tok)) != NULL) {/* try group membership */ - for (i = 0; group->gr_mem[i]; i++) - if (strcasecmp(string, group->gr_mem[i]) == 0) + } else { + if ((passwd = getpwnam(string)) == NULL) + return (NO); + errno = 0; + if ((group = getgrnam(tok)) == NULL) {/* try group membership */ + if (errno != 0) { + syslog(LOG_ERR, "getgrnam() failed for %s: %s", string, strerror(errno)); + } else { + syslog(LOG_NOTICE, "group not found: %s", string); + } + return (NO); + } + errno = 0; + if ((grouplist = calloc(ngroups, sizeof(gid_t))) == NULL) { + if (errno == ENOMEM) { + syslog(LOG_ERR, "cannot allocate memory for grouplist: %s", string); + } + return (NO); + } + if (getgrouplist(string, passwd->pw_gid, grouplist, &ngroups) != 0) { + syslog(LOG_ERR, "getgrouplist() failed for %s", string); + free(grouplist); + return (NO); + } + for (i = 0; i < ngroups; i++) { + if (grouplist[i] == group->gr_gid) { + free(grouplist); return (YES); + } + } + free(grouplist); } return (NO); } From owner-svn-src-all@freebsd.org Tue Feb 18 11:27:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1976C25CD87; Tue, 18 Feb 2020 11:27: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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MJTx2ySDz49Qj; Tue, 18 Feb 2020 11:27:01 +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 9DDCB1F39A; Tue, 18 Feb 2020 11:26: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 01IBQxgY016331; Tue, 18 Feb 2020 11:26:59 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IBQx3s016330; Tue, 18 Feb 2020 11:26:59 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002181126.01IBQx3s016330@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Tue, 18 Feb 2020 11:26:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358067 - head/lib/libpam/modules/pam_login_access X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358067 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 11:27:02 -0000 Author: cy Date: Tue Feb 18 11:26:59 2020 New Revision: 358067 URL: https://svnweb.freebsd.org/changeset/base/358067 Log: There is no pam(8) man page, it is pam(3). Approved by: des (implicit, blanket) MFC after: 3 days Modified: head/lib/libpam/modules/pam_login_access/pam_login_access.8 Modified: head/lib/libpam/modules/pam_login_access/pam_login_access.8 ============================================================================== --- head/lib/libpam/modules/pam_login_access/pam_login_access.8 Tue Feb 18 11:26:56 2020 (r358066) +++ head/lib/libpam/modules/pam_login_access/pam_login_access.8 Tue Feb 18 11:26:59 2020 (r358067) @@ -69,9 +69,9 @@ remote host (in the case of a remote login), according restrictions listed in .Xr login.access 5 . .Sh SEE ALSO +.Xr pam 3 , .Xr login.access 5 , -.Xr pam.conf 5 , -.Xr pam 8 +.Xr pam.conf 5 .Sh AUTHORS The .Xr login.access 5 From owner-svn-src-all@freebsd.org Tue Feb 18 11:27:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8F9B825CDA7; Tue, 18 Feb 2020 11:27:05 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MJTy63R1z49S8; Tue, 18 Feb 2020 11:27:02 +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 AEB0D1F39B; Tue, 18 Feb 2020 11:27:02 +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 01IBR2bu016380; Tue, 18 Feb 2020 11:27:02 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IBR2XI016379; Tue, 18 Feb 2020 11:27:02 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002181127.01IBR2XI016379@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Tue, 18 Feb 2020 11:27:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358068 - head/lib/libpam/modules/pam_login_access X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358068 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 11:27:05 -0000 Author: cy Date: Tue Feb 18 11:27:02 2020 New Revision: 358068 URL: https://svnweb.freebsd.org/changeset/base/358068 Log: Add missing SYNOPSIS section. Reported by: ports/textproc/igor MFC after: 3 days Modified: head/lib/libpam/modules/pam_login_access/login.access.5 Modified: head/lib/libpam/modules/pam_login_access/login.access.5 ============================================================================== --- head/lib/libpam/modules/pam_login_access/login.access.5 Tue Feb 18 11:26:59 2020 (r358067) +++ head/lib/libpam/modules/pam_login_access/login.access.5 Tue Feb 18 11:27:02 2020 (r358068) @@ -1,12 +1,14 @@ .\" .\" $FreeBSD$ .\" -.Dd May 7, 2019 +.Dd January 27, 2020 .Dt LOGIN.ACCESS 5 .Os .Sh NAME .Nm login.access .Nd login access control table +.Sh SYNOPSIS +.Pa /etc/login.access .Sh DESCRIPTION The .Nm From owner-svn-src-all@freebsd.org Tue Feb 18 11:27:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 521AC25CDC5; Tue, 18 Feb 2020 11:27:07 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MJV224D4z49Tx; Tue, 18 Feb 2020 11:27:06 +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 CD4901F39C; Tue, 18 Feb 2020 11:27:05 +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 01IBR5nr016428; Tue, 18 Feb 2020 11:27:05 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IBR5XQ016427; Tue, 18 Feb 2020 11:27:05 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002181127.01IBR5XQ016427@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Tue, 18 Feb 2020 11:27:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358069 - head/lib/libpam/modules/pam_login_access X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358069 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 11:27:07 -0000 Author: cy Date: Tue Feb 18 11:27:05 2020 New Revision: 358069 URL: https://svnweb.freebsd.org/changeset/base/358069 Log: strchr() returns a pointer not an int. Reported by: bjk Approved by: des (blanket, implicit) MFC after: 3 days Modified: head/lib/libpam/modules/pam_login_access/login_access.c Modified: head/lib/libpam/modules/pam_login_access/login_access.c ============================================================================== --- head/lib/libpam/modules/pam_login_access/login_access.c Tue Feb 18 11:27:02 2020 (r358068) +++ head/lib/libpam/modules/pam_login_access/login_access.c Tue Feb 18 11:27:05 2020 (r358069) @@ -252,7 +252,7 @@ from_match(const char *tok, const char *string) && strcasecmp(tok, string + str_len - tok_len) == 0) return (YES); } else if (strcmp(tok, "LOCAL") == 0) { /* local: no dots */ - if (strchr(string, '.') == 0) + if (strchr(string, '.') == NULL) return (YES); } else if (tok[(tok_len = strlen(tok)) - 1] == '.' /* network */ && strncmp(tok, string, tok_len) == 0) { From owner-svn-src-all@freebsd.org Tue Feb 18 11:27:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B70B525CDF1; Tue, 18 Feb 2020 11:27: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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MJV64rmJz49bJ; Tue, 18 Feb 2020 11:27:10 +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 D08721F39D; Tue, 18 Feb 2020 11:27: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 01IBR9U3016480; Tue, 18 Feb 2020 11:27:09 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IBR8wM016475; Tue, 18 Feb 2020 11:27:08 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002181127.01IBR8wM016475@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Tue, 18 Feb 2020 11:27:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358070 - head/lib/libpam/modules/pam_login_access X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358070 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 11:27:10 -0000 Author: cy Date: Tue Feb 18 11:27:08 2020 New Revision: 358070 URL: https://svnweb.freebsd.org/changeset/base/358070 Log: This commit makes significant changes to pam_login_access(8) to bring it up to par with the Linux pam_access(8). Like the Linux pam_access(8) our pam_login_access(8) is a service module for pam(3) that allows a administrator to limit access from specified remote hosts or terminals. Unlike the Linux pam_access, pam_login_access is missing some features which are added by this commit: Access file can now be specified. The default remains /etc/access.conf. The syntax is consistent with Linux pam_access. By default usernames are matched. If the username fails to match a match against a group name is attempted. The new nodefgroup module option will only match a username and no attempt to match a group name is made. Group names must be specified in brackets, "()" when nodefgroup is specified. Otherwise the old backward compatible behavior is used. This is consistent with Linux pam_access. A new field separator module option allows the replacement of the default colon (:) with any other character. This facilitates potential future specification of X displays. This is also consistent with Linux pam_access. A new list separator module option to replace the default space/comma/tab with another character. This too is consistent with Linux pam_access. Linux pam_access options not implemented in this commit are the debug and audit options. These will be implemented at a later date. Reviewed by: bjk, bcr (for manpages) Approved by: des (blanket, implicit) MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D23198 Modified: head/lib/libpam/modules/pam_login_access/login.access.5 head/lib/libpam/modules/pam_login_access/login_access.c head/lib/libpam/modules/pam_login_access/pam_login_access.8 head/lib/libpam/modules/pam_login_access/pam_login_access.c head/lib/libpam/modules/pam_login_access/pam_login_access.h Modified: head/lib/libpam/modules/pam_login_access/login.access.5 ============================================================================== --- head/lib/libpam/modules/pam_login_access/login.access.5 Tue Feb 18 11:27:05 2020 (r358069) +++ head/lib/libpam/modules/pam_login_access/login.access.5 Tue Feb 18 11:27:08 2020 (r358070) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 27, 2020 +.Dd January 30, 2020 .Dt LOGIN.ACCESS 5 .Os .Sh NAME @@ -34,6 +34,13 @@ character. .Pp The second field should be a list of one or more login names, group names, or ALL (always matches). +Group names must be enclosed in +parentheses if the pam module specification for +.Pa pam_login_access +specifies the +.Pa nodefgroup +option. +Otherwise, group names will only match if no usernames match. .Pp The third field should be a list of one or more tty names (for non-networked logins), host names, domain Modified: head/lib/libpam/modules/pam_login_access/login_access.c ============================================================================== --- head/lib/libpam/modules/pam_login_access/login_access.c Tue Feb 18 11:27:05 2020 (r358069) +++ head/lib/libpam/modules/pam_login_access/login_access.c Tue Feb 18 11:27:08 2020 (r358070) @@ -31,29 +31,26 @@ __FBSDID("$FreeBSD$"); #include "pam_login_access.h" -#define _PATH_LOGACCESS "/etc/login.access" - - /* Delimiters for fields and for lists of users, ttys or hosts. */ - -static char fs[] = ":"; /* field separator */ -static char sep[] = ", \t"; /* list-element separator */ - /* Constants to be used in assignments only, not in comparisons... */ #define YES 1 #define NO 0 -static int from_match(const char *, const char *); +static int from_match(const char *, const char *, struct pam_login_access_options *); static int list_match(char *, const char *, - int (*)(const char *, const char *)); + int (*)(const char *, const char *, + struct pam_login_access_options *), + struct pam_login_access_options *); static int netgroup_match(const char *, const char *, const char *); static int string_match(const char *, const char *); -static int user_match(const char *, const char *); +static int user_match(const char *, const char *, struct pam_login_access_options *); +static int group_match(const char *, const char *); /* login_access - match username/group and host/tty with access control file */ int -login_access(const char *user, const char *from) +login_access(const char *user, const char *from, + struct pam_login_access_options *login_access_opts) { FILE *fp; char line[BUFSIZ]; @@ -63,6 +60,7 @@ login_access(const char *user, const char *from) int match = NO; int end; int lineno = 0; /* for diagnostics */ + const char *fieldsep = login_access_opts->fieldsep; /* * Process the table one line at a time and stop at the first match. @@ -72,12 +70,12 @@ login_access(const char *user, const char *from) * non-existing table means no access control. */ - if ((fp = fopen(_PATH_LOGACCESS, "r")) != NULL) { + if ((fp = fopen(login_access_opts->accessfile, "r")) != NULL) { while (!match && fgets(line, sizeof(line), fp)) { lineno++; if (line[end = strlen(line) - 1] != '\n') { syslog(LOG_ERR, "%s: line %d: missing newline or line too long", - _PATH_LOGACCESS, lineno); + login_access_opts->accessfile, lineno); continue; } if (line[0] == '#') @@ -87,25 +85,25 @@ login_access(const char *user, const char *from) line[end] = 0; /* strip trailing whitespace */ if (line[0] == 0) /* skip blank lines */ continue; - if (!(perm = strtok(line, fs)) - || !(users = strtok((char *) 0, fs)) - || !(froms = strtok((char *) 0, fs)) - || strtok((char *) 0, fs)) { - syslog(LOG_ERR, "%s: line %d: bad field count", _PATH_LOGACCESS, + if (!(perm = strtok(line, fieldsep)) + || !(users = strtok((char *) 0, fieldsep)) + || !(froms = strtok((char *) 0, fieldsep)) + || strtok((char *) 0, fieldsep)) { + syslog(LOG_ERR, "%s: line %d: bad field count", login_access_opts->accessfile, lineno); continue; } if (perm[0] != '+' && perm[0] != '-') { - syslog(LOG_ERR, "%s: line %d: bad first field", _PATH_LOGACCESS, + syslog(LOG_ERR, "%s: line %d: bad first field", login_access_opts->accessfile, lineno); continue; } - match = (list_match(froms, from, from_match) - && list_match(users, user, user_match)); + match = (list_match(froms, from, from_match, login_access_opts) + && list_match(users, user, user_match, login_access_opts)); } (void) fclose(fp); } else if (errno != ENOENT) { - syslog(LOG_ERR, "cannot open %s: %m", _PATH_LOGACCESS); + syslog(LOG_ERR, "cannot open %s: %m", login_access_opts->accessfile); } return (match == 0 || (line[0] == '+')); } @@ -114,10 +112,12 @@ login_access(const char *user, const char *from) static int list_match(char *list, const char *item, - int (*match_fn)(const char *, const char *)) + int (*match_fn)(const char *, const char *, struct pam_login_access_options *), + struct pam_login_access_options *login_access_opts) { char *tok; int match = NO; + const char *listsep = login_access_opts->listsep; /* * Process tokens one at a time. We have exhausted all possible matches @@ -126,19 +126,22 @@ list_match(char *list, const char *item, * the match is affected by any exceptions. */ - for (tok = strtok(list, sep); tok != NULL; tok = strtok((char *) 0, sep)) { + for (tok = strtok(list, listsep); tok != NULL; tok = strtok((char *) 0, listsep)) { if (strcmp(tok, "EXCEPT") == 0) /* EXCEPT: give up */ break; - if ((match = (*match_fn)(tok, item)) != 0) /* YES */ + if ((match = (*match_fn)(tok, item, login_access_opts)) != 0) /* YES */ break; } /* Process exceptions to matches. */ if (match != NO) { - while ((tok = strtok((char *) 0, sep)) && strcmp(tok, "EXCEPT")) + while ((tok = strtok((char *) 0, listsep)) && strcmp(tok, "EXCEPT")) { /* VOID */ ; - if (tok == NULL || list_match((char *) 0, item, match_fn) == NO) - return (match); + if (tok == NULL || list_match((char *) 0, item, match_fn, + login_access_opts) == NO) { + return (match); + } + } } return (NO); } @@ -170,17 +173,50 @@ netgroup_match(const char *group, const char *machine, return (NO); } -/* user_match - match a username against one token */ +/* group_match - match a group against one token */ -static int -user_match(const char *tok, const char *string) +int +group_match(const char *tok, const char *username) { struct group *group; struct passwd *passwd; gid_t *grouplist; - int ngroups = NGROUPS; - int i; + int i, ret, ngroups = NGROUPS; + if ((passwd = getpwnam(username)) == NULL) + return (NO); + errno = 0; + if ((group = getgrnam(tok)) == NULL) { + if (errno != 0) + syslog(LOG_ERR, "getgrnam() failed for %s: %s", username, strerror(errno)); + else + syslog(LOG_NOTICE, "group not found: %s", username); + return (NO); + } + if ((grouplist = calloc(ngroups, sizeof(gid_t))) == NULL) { + syslog(LOG_ERR, "cannot allocate memory for grouplist: %s", username); + return (NO); + } + ret = NO; + if (getgrouplist(username, passwd->pw_gid, grouplist, &ngroups) != 0) + syslog(LOG_ERR, "getgrouplist() failed for %s", username); + for (i = 0; i < ngroups; i++) + if (grouplist[i] == group->gr_gid) + ret = YES; + free(grouplist); + return (ret); +} + +/* user_match - match a username against one token */ + +static int +user_match(const char *tok, const char *string, + struct pam_login_access_options *login_access_opts) +{ + size_t stringlen; + char *grpstr; + int rc; + /* * If a token has the magic value "ALL" the match always succeeds. * Otherwise, return YES if the token fully matches the username, or if @@ -189,39 +225,18 @@ user_match(const char *tok, const char *string) if (tok[0] == '@') { /* netgroup */ return (netgroup_match(tok + 1, (char *) 0, string)); - } else if (string_match(tok, string)) { /* ALL or exact match */ - return (YES); - } else { - if ((passwd = getpwnam(string)) == NULL) - return (NO); - errno = 0; - if ((group = getgrnam(tok)) == NULL) {/* try group membership */ - if (errno != 0) { - syslog(LOG_ERR, "getgrnam() failed for %s: %s", string, strerror(errno)); - } else { - syslog(LOG_NOTICE, "group not found: %s", string); - } + } else if (tok[0] == '(' && tok[(stringlen = strlen(&tok[1]))] == ')') { /* group */ + if ((grpstr = strndup(&tok[1], stringlen - 1)) == NULL) { + syslog(LOG_ERR, "cannot allocate memory for %s", string); return (NO); } - errno = 0; - if ((grouplist = calloc(ngroups, sizeof(gid_t))) == NULL) { - if (errno == ENOMEM) { - syslog(LOG_ERR, "cannot allocate memory for grouplist: %s", string); - } - return (NO); - } - if (getgrouplist(string, passwd->pw_gid, grouplist, &ngroups) != 0) { - syslog(LOG_ERR, "getgrouplist() failed for %s", string); - free(grouplist); - return (NO); - } - for (i = 0; i < ngroups; i++) { - if (grouplist[i] == group->gr_gid) { - free(grouplist); - return (YES); - } - } - free(grouplist); + rc = group_match(grpstr, string); + free(grpstr); + return (rc); + } else if (string_match(tok, string)) { /* ALL or exact match */ + return (YES); + } else if (login_access_opts->defgroup == true) {/* try group membership */ + return (group_match(tok, string)); } return (NO); } @@ -229,7 +244,8 @@ user_match(const char *tok, const char *string) /* from_match - match a host or tty against a list of tokens */ static int -from_match(const char *tok, const char *string) +from_match(const char *tok, const char *string, + struct pam_login_access_options *login_access_opts __unused) { int tok_len; int str_len; Modified: head/lib/libpam/modules/pam_login_access/pam_login_access.8 ============================================================================== --- head/lib/libpam/modules/pam_login_access/pam_login_access.8 Tue Feb 18 11:27:05 2020 (r358069) +++ head/lib/libpam/modules/pam_login_access/pam_login_access.8 Tue Feb 18 11:27:08 2020 (r358070) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 24, 2002 +.Dd January 30, 2020 .Dt PAM_LOGIN_ACCESS 8 .Os .Sh NAME @@ -63,13 +63,46 @@ The .Pa login.access account management component .Pq Fn pam_sm_acct_mgmt , -returns success if and only the user is allowed to log in on the +returns success if and only the user is allowed to login on the specified tty (in the case of a local login) or from the specified remote host (in the case of a remote login), according to the restrictions listed in .Xr login.access 5 . +.Bl -tag -width ".Cm accessfile=pathname" +.It Cm accessfile Ns = Ns Ar pathname +specifies a non-standard location for the +.Pa login.access +configuration file +(normally located in +.Pa /etc/login.access ) . +.It Cm nodefgroup +makes tokens not enclosed in parentheses only match users, requiring groups +to be specified in parentheses. +Without +.Cm nodefgroup +user and group names are intermingled, with user entries taking precedence +over group entries. +This is not backwards compatible with legacy +.Pa login.access +configuration files. +However this mitigates confusion between users and +groups of the same name. +.It Cm fieldsep Ns = Ns Ar separators +changes the field separator from the default ":". +More than one separator +may be specified. +.It Cm listsep Ns = Ns Ar separators +changes the field separator from the default space (''), tab (\\t) and +comma (,). +More than one separator may be specified. +For example, listsep=; +will replace the default with a semicolon (;). +This option may be useful when specifying Active Directory groupnames which +typically contain spaces. +.El .Sh SEE ALSO .Xr pam 3 , +.Xr syslog 3 , .Xr login.access 5 , .Xr pam.conf 5 .Sh AUTHORS Modified: head/lib/libpam/modules/pam_login_access/pam_login_access.c ============================================================================== --- head/lib/libpam/modules/pam_login_access/pam_login_access.c Tue Feb 18 11:27:05 2020 (r358069) +++ head/lib/libpam/modules/pam_login_access/pam_login_access.c Tue Feb 18 11:27:08 2020 (r358070) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #define _BSD_SOURCE #include +#include #include #include @@ -51,13 +52,25 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include "pam_login_access.h" +#define OPT_ACCESSFILE "accessfile" +#define OPT_NOAUDIT "noaudit" +#define OPT_FIELDSEP "fieldsep" +#define OPT_LISTSEP "listsep" +#define OPT_NODEFGROUP "nodefgroup" + +#define _PATH_LOGACCESS "/etc/login.access" +#define _FIELD_SEPARATOR ":" +#define _LIST_SEPARATOR ", \t" + PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags __unused, int argc __unused, const char *argv[] __unused) { + struct pam_login_access_options login_access_opts; const void *rhost, *tty, *user; char hostname[MAXHOSTNAMELEN]; int pam_err; @@ -80,25 +93,33 @@ pam_sm_acct_mgmt(pam_handle_t *pamh, int flags __unuse return (pam_err); gethostname(hostname, sizeof hostname); + login_access_opts.defgroup = openpam_get_option(pamh, OPT_NODEFGROUP) == NULL ? true : false; + login_access_opts.audit = openpam_get_option(pamh, OPT_NOAUDIT) == NULL ? true : false; + if ((login_access_opts.accessfile = openpam_get_option(pamh, OPT_ACCESSFILE)) == NULL) + login_access_opts.accessfile = _PATH_LOGACCESS; + if ((login_access_opts.fieldsep = openpam_get_option(pamh, OPT_FIELDSEP)) == NULL) + login_access_opts.fieldsep = _FIELD_SEPARATOR; + if ((login_access_opts.listsep = openpam_get_option(pamh, OPT_LISTSEP)) == NULL) + login_access_opts.listsep = _LIST_SEPARATOR; if (rhost != NULL && *(const char *)rhost != '\0') { PAM_LOG("Checking login.access for user %s from host %s", (const char *)user, (const char *)rhost); - if (login_access(user, rhost) != 0) + if (login_access(user, rhost, &login_access_opts) != 0) return (PAM_SUCCESS); PAM_VERBOSE_ERROR("%s is not allowed to log in from %s", (const char *)user, (const char *)rhost); } else if (tty != NULL && *(const char *)tty != '\0') { PAM_LOG("Checking login.access for user %s on tty %s", (const char *)user, (const char *)tty); - if (login_access(user, tty) != 0) + if (login_access(user, tty, &login_access_opts) != 0) return (PAM_SUCCESS); PAM_VERBOSE_ERROR("%s is not allowed to log in on %s", (const char *)user, (const char *)tty); } else { PAM_LOG("Checking login.access for user %s", (const char *)user); - if (login_access(user, "***unknown***") != 0) + if (login_access(user, "***unknown***", &login_access_opts) != 0) return (PAM_SUCCESS); PAM_VERBOSE_ERROR("%s is not allowed to log in", (const char *)user); Modified: head/lib/libpam/modules/pam_login_access/pam_login_access.h ============================================================================== --- head/lib/libpam/modules/pam_login_access/pam_login_access.h Tue Feb 18 11:27:05 2020 (r358069) +++ head/lib/libpam/modules/pam_login_access/pam_login_access.h Tue Feb 18 11:27:08 2020 (r358070) @@ -38,4 +38,15 @@ * $FreeBSD$ */ -extern int login_access(const char *, const char *); +#include + +struct pam_login_access_options { + bool defgroup; + bool audit; + const char *accessfile; + /* Delimiters for fields and for lists of users, ttys or hosts. */ + const char *fieldsep; /* field separator */ + const char *listsep; /* list-element separator */ +}; + +extern int login_access(const char *, const char *, struct pam_login_access_options *); From owner-svn-src-all@freebsd.org Tue Feb 18 11:28:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ADAC725CF8C; Tue, 18 Feb 2020 11:28:02 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MJW61tShz4BRT; Tue, 18 Feb 2020 11:28:02 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2C5A41F3AC; Tue, 18 Feb 2020 11:28:01 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01IBS09O016567; Tue, 18 Feb 2020 11:28:00 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IBS0a5016566; Tue, 18 Feb 2020 11:28:00 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202002181128.01IBS0a5016566@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 18 Feb 2020 11:28:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358071 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 358071 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 11:28:02 -0000 Author: bz Date: Tue Feb 18 11:28:00 2020 New Revision: 358071 URL: https://svnweb.freebsd.org/changeset/base/358071 Log: ip6_output: update comments. Clear up some comments and improve to panic messages. No functional changes. MFC after: 3 days Modified: head/sys/netinet6/ip6_output.c Modified: head/sys/netinet6/ip6_output.c ============================================================================== --- head/sys/netinet6/ip6_output.c Tue Feb 18 11:27:08 2020 (r358070) +++ head/sys/netinet6/ip6_output.c Tue Feb 18 11:28:00 2020 (r358071) @@ -181,7 +181,9 @@ static int copypktopts(struct ip6_pktopts *, struct ip do {\ if (m) {\ if (!hdrsplit) \ - panic("assumption failed: hdr not split"); \ + panic("%s:%d: assumption failed: "\ + "hdr not split: hdrsplit %d exthdrs %p",\ + __func__, __LINE__, hdrsplit, &exthdrs);\ *mtod((m), u_char *) = *(p);\ *(p) = (i);\ p = mtod((m), u_char *);\ @@ -356,8 +358,9 @@ done: } /* - * IP6 output. The packet in mbuf chain m contains a skeletal IP6 - * header (with pri, len, nxt, hlim, src, dst). + * IP6 output. + * The packet in mbuf chain m contains a skeletal IP6 header (with pri, len, + * nxt, hlim, src, dst). * This function may modify ver and hlim only. * The mbuf chain containing the packet will be freed. * The mbuf opt, if present, will not be freed. @@ -365,9 +368,8 @@ done: * skipped and ro->ro_rt would be used. If ro is present but ro->ro_rt is NULL, * then result of route lookup is stored in ro->ro_rt. * - * type of "mtu": rt_mtu is u_long, ifnet.ifr_mtu is int, and - * nd_ifinfo.linkmtu is u_int32_t. so we use u_long to hold largest one, - * which is rt_mtu. + * Type of "mtu": rt_mtu is u_long, ifnet.ifr_mtu is int, and nd_ifinfo.linkmtu + * is uint32_t. So we use u_long to hold largest one, which is rt_mtu. * * ifpp - XXX: just for statistics */ @@ -410,7 +412,7 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, INP_LOCK_ASSERT(inp); M_SETFIB(m, inp->inp_inc.inc_fibnum); if ((flags & IP_NODEFAULTFLOWID) == 0) { - /* unconditionally set flowid */ + /* Unconditionally set flowid. */ m->m_pkthdr.flowid = inp->inp_flowid; M_HASHTYPE_SET(m, inp->inp_flowtype); } @@ -436,12 +438,12 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, bzero(&exthdrs, sizeof(exthdrs)); if (opt) { - /* Hop-by-Hop options header */ + /* Hop-by-Hop options header. */ MAKE_EXTHDR(opt->ip6po_hbh, &exthdrs.ip6e_hbh); - /* Destination options header(1st part) */ + /* Destination options header (1st part). */ if (opt->ip6po_rthdr) { /* - * Destination options header(1st part) + * Destination options header (1st part). * This only makes sense with a routing header. * See Section 9.2 of RFC 3542. * Disabling this part just for MIP6 convenience is @@ -452,9 +454,9 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, */ MAKE_EXTHDR(opt->ip6po_dest1, &exthdrs.ip6e_dest1); } - /* Routing header */ + /* Routing header. */ MAKE_EXTHDR(opt->ip6po_rthdr, &exthdrs.ip6e_rthdr); - /* Destination options header(2nd part) */ + /* Destination options header (2nd part). */ MAKE_EXTHDR(opt->ip6po_dest2, &exthdrs.ip6e_dest2); } @@ -471,7 +473,7 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, optlen += exthdrs.ip6e_rthdr->m_len; unfragpartlen = optlen + sizeof(struct ip6_hdr); - /* NOTE: we don't add AH/ESP length here (done in ip6_ipsec_output) */ + /* NOTE: we don't add AH/ESP length here (done in ip6_ipsec_output). */ if (exthdrs.ip6e_dest2) optlen += exthdrs.ip6e_dest2->m_len; @@ -490,7 +492,7 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, ip6 = mtod(m, struct ip6_hdr *); - /* adjust mbuf packet header length */ + /* Adjust mbuf packet header length. */ m->m_pkthdr.len += optlen; plen = m->m_pkthdr.len - sizeof(*ip6); @@ -504,7 +506,7 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, m = exthdrs.ip6e_ip6; hdrsplit++; } - /* adjust pointer */ + /* Adjust pointer. */ ip6 = mtod(m, struct ip6_hdr *); if ((error = ip6_insert_jumboopt(&exthdrs, plen)) != 0) goto freehdrs; @@ -516,26 +518,29 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, * Concatenate headers and fill in next header fields. * Here we have, on "m" * IPv6 payload - * and we insert headers accordingly. Finally, we should be getting: - * IPv6 hbh dest1 rthdr ah* [esp* dest2 payload] + * and we insert headers accordingly. + * Finally, we should be getting: + * IPv6 hbh dest1 rthdr ah* [esp* dest2 payload]. * - * during the header composing process, "m" points to IPv6 header. - * "mprev" points to an extension header prior to esp. + * During the header composing process "m" points to IPv6 + * header. "mprev" points to an extension header prior to esp. */ u_char *nexthdrp = &ip6->ip6_nxt; mprev = m; /* - * we treat dest2 specially. this makes IPsec processing - * much easier. the goal here is to make mprev point the + * We treat dest2 specially. This makes IPsec processing + * much easier. The goal here is to make mprev point the * mbuf prior to dest2. * - * result: IPv6 dest2 payload + * Result: IPv6 dest2 payload. * m and mprev will point to IPv6 header. */ if (exthdrs.ip6e_dest2) { if (!hdrsplit) - panic("assumption failed: hdr not split"); + panic("%s:%d: assumption failed: " + "hdr not split: hdrsplit %d exthdrs %p", + __func__, __LINE__, hdrsplit, &exthdrs); exthdrs.ip6e_dest2->m_next = m->m_next; m->m_next = exthdrs.ip6e_dest2; *mtod(exthdrs.ip6e_dest2, u_char *) = ip6->ip6_nxt; @@ -543,7 +548,7 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, } /* - * result: IPv6 hbh dest1 rthdr dest2 payload + * Result: IPv6 hbh dest1 rthdr dest2 payload. * m will point to IPv6 header. mprev will point to the * extension header prior to dest2 (rthdr in the above case). */ @@ -553,15 +558,13 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, MAKE_CHAIN(exthdrs.ip6e_rthdr, mprev, nexthdrp, IPPROTO_ROUTING); - /* - * If there is a routing header, discard the packet. - */ + /* If there is a routing header, discard the packet. */ if (exthdrs.ip6e_rthdr) { error = EINVAL; goto bad; } - /* Source address validation */ + /* Source address validation. */ if (IN6_IS_ADDR_UNSPECIFIED(&ip6->ip6_src) && (flags & IPV6_UNSPECSRC) == 0) { error = EOPNOTSUPP; @@ -576,9 +579,7 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, IP6STAT_INC(ip6s_localout); - /* - * Route packet. - */ + /* Route packet. */ if (ro == NULL) { ro = &ip6route; bzero((caddr_t)ro, sizeof(*ro)); @@ -590,9 +591,9 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, fibnum = (inp != NULL) ? inp->inp_inc.inc_fibnum : M_GETFIB(m); again: /* - * if specified, try to fill in the traffic class field. - * do not override if a non-zero value is already set. - * we check the diffserv field and the ecn field separately. + * If specified, try to fill in the traffic class field. + * Do not override if a non-zero value is already set. + * We check the diffserv field and the ECN field separately. */ if (opt && opt->ip6po_tclass >= 0) { int mask = 0; @@ -605,7 +606,7 @@ again: ip6->ip6_flow |= htonl((opt->ip6po_tclass & mask) << 20); } - /* fill in or override the hop limit field, if necessary. */ + /* Fill in or override the hop limit field, if necessary. */ if (opt && opt->ip6po_hlim != -1) ip6->ip6_hlim = opt->ip6po_hlim & 0xff; else if (IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) { @@ -617,7 +618,7 @@ again: /* * Validate route against routing table additions; * a better/more specific route might have been added. - * Make sure address family is set in route. + * Make sure that the address family is set in route. */ if (inp) { ro->ro_dst.sin6_family = AF_INET6; @@ -648,15 +649,13 @@ again: } if (rt == NULL) { /* - * If in6_selectroute() does not return a route entry, + * If in6_selectroute() does not return a route entry * dst may not have been updated. */ *dst = dst_sa; /* XXX */ } - /* - * then rt (for unicast) and ifp must be non-NULL valid values. - */ + /* Then rt (for unicast) and ifp must be non-NULL valid values. */ if ((flags & IPV6_FORWARDING) == 0) { /* XXX: the FORWARDING flag can be set for mrouting. */ in6_ifstat_inc(ifp, ifs6_out_request); @@ -674,7 +673,7 @@ again: src_sa.sin6_addr = ip6->ip6_src; dst0 = ip6->ip6_dst; - /* re-initialize to be sure */ + /* Re-initialize to be sure. */ bzero(&dst_sa, sizeof(dst_sa)); dst_sa.sin6_family = AF_INET6; dst_sa.sin6_len = sizeof(dst_sa); @@ -691,7 +690,7 @@ again: * * Because the loopback interface cannot receive * packets with a different scope ID than its own, - * there is a trick is to pretend the outgoing packet + * there is a trick to pretend the outgoing packet * was received by the real network interface, by * setting "origifp" different from "ifp". This is * only allowed when "ifp" is a loopback network @@ -729,7 +728,6 @@ again: error = EHOSTUNREACH; /* XXX */ goto bad; } - /* All scope ID checks are successful. */ if (rt && !IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) { @@ -746,13 +744,12 @@ again: } if (!IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) { - m->m_flags &= ~(M_BCAST | M_MCAST); /* just in case */ + m->m_flags &= ~(M_BCAST | M_MCAST); /* Just in case. */ } else { m->m_flags = (m->m_flags & ~M_BCAST) | M_MCAST; in6_ifstat_inc(ifp, ifs6_out_mcast); - /* - * Confirm that the outgoing interface supports multicast. - */ + + /* Confirm that the outgoing interface supports multicast. */ if (!(ifp->if_flags & IFF_MULTICAST)) { IP6STAT_INC(ip6s_noroute); in6_ifstat_inc(ifp, ifs6_out_discard); @@ -847,8 +844,8 @@ again: } /* - * clear embedded scope identifiers if necessary. - * in6_clearscope will touch the addresses only when necessary. + * Clear embedded scope identifiers if necessary. + * in6_clearscope() will touch the addresses only when necessary. */ in6_clearscope(&ip6->ip6_src); in6_clearscope(&ip6->ip6_dst); @@ -878,7 +875,7 @@ again: if (ip6_process_hopopts(m, (u_int8_t *)(hbh + 1), ((hbh->ip6h_len + 1) << 3) - sizeof(struct ip6_hbh), &dummy, &plen) < 0) { - /* m was already freed at this point */ + /* m was already freed at this point. */ error = EINVAL;/* better error? */ goto done; } @@ -970,7 +967,7 @@ passout: * Send the packet to the outgoing interface. * If necessary, do IPv6 fragmentation before sending. * - * the logic here is rather complex: + * The logic here is rather complex: * 1: normal case (dontfrag == 0, alwaysfrag == 0) * 1-a: send as is if tlen <= path mtu * 1-b: fragment if tlen > path mtu @@ -983,7 +980,7 @@ passout: * always fragment * * 4: if dontfrag == 1 && alwaysfrag == 1 - * error, as we cannot handle this conflicting request + * error, as we cannot handle this conflicting request. */ sw_csum = m->m_pkthdr.csum_flags; if (!hdrsplit) { @@ -1033,12 +1030,12 @@ passout: dontfrag = 1; else dontfrag = 0; - if (dontfrag && alwaysfrag) { /* case 4 */ - /* conflicting request - can't transmit */ + if (dontfrag && alwaysfrag) { /* Case 4. */ + /* Conflicting request - can't transmit. */ error = EMSGSIZE; goto bad; } - if (dontfrag && tlen > IN6_LINKMTU(ifp) && !tso) { /* case 2-b */ + if (dontfrag && tlen > IN6_LINKMTU(ifp) && !tso) { /* Case 2-b. */ /* * Even if the DONTFRAG option is specified, we cannot send the * packet when the data length is larger than the MTU of the @@ -1053,10 +1050,8 @@ passout: goto bad; } - /* - * transmit packet without fragmentation - */ - if (dontfrag || (!alwaysfrag && tlen <= mtu)) { /* case 1-a and 2-a */ + /* Transmit packet without fragmentation. */ + if (dontfrag || (!alwaysfrag && tlen <= mtu)) { /* Cases 1-a and 2-a. */ struct in6_ifaddr *ia6; ip6 = mtod(m, struct ip6_hdr *); @@ -1072,16 +1067,14 @@ passout: goto done; } - /* - * try to fragment the packet. case 1-b and 3 - */ + /* Try to fragment the packet. Cases 1-b and 3. */ if (mtu < IPV6_MMTU) { - /* path MTU cannot be less than IPV6_MMTU */ + /* Path MTU cannot be less than IPV6_MMTU. */ error = EMSGSIZE; in6_ifstat_inc(ifp, ifs6_out_fragfail); goto bad; } else if (ip6->ip6_plen == 0) { - /* jumbo payload cannot be fragmented */ + /* Jumbo payload cannot be fragmented. */ error = EMSGSIZE; in6_ifstat_inc(ifp, ifs6_out_fragfail); goto bad; @@ -1162,9 +1155,7 @@ passout: in6_ifstat_inc(ifp, ifs6_out_fragok); } - /* - * Remove leading garbages. - */ + /* Remove leading garbage. */ sendorfree: m = m0->m_nextpkt; m0->m_nextpkt = 0; @@ -1193,7 +1184,7 @@ done: return (error); freehdrs: - m_freem(exthdrs.ip6e_hbh); /* m_freem will check if mbuf is 0 */ + m_freem(exthdrs.ip6e_hbh); /* m_freem() checks if mbuf is NULL. */ m_freem(exthdrs.ip6e_dest1); m_freem(exthdrs.ip6e_rthdr); m_freem(exthdrs.ip6e_dest2); From owner-svn-src-all@freebsd.org Tue Feb 18 11:38:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A4C0C25D36F; Tue, 18 Feb 2020 11:38:39 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [88.99.82.50]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48MJlK5YYxz4KZV; Tue, 18 Feb 2020 11:38:37 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2020.home.selasky.org (unknown [62.141.129.235]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id D2EAD260057; Tue, 18 Feb 2020 12:38:29 +0100 (CET) Subject: Re: svn commit: r358013 - in head/sys: net netinet netinet6 To: Gleb Smirnoff , bz@freebsd.org Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202002170946.01H9kWAh078738@repo.freebsd.org> <20200218004423.GG5741@FreeBSD.org> From: Hans Petter Selasky Message-ID: <6bbdea0e-c42e-6296-2a13-3dbae1d1cdc7@selasky.org> Date: Tue, 18 Feb 2020 12:37:49 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: <20200218004423.GG5741@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 48MJlK5YYxz4KZV X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of hps@selasky.org designates 88.99.82.50 as permitted sender) smtp.mailfrom=hps@selasky.org X-Spamd-Result: default: False [-5.42 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+a:mail.turbocat.net]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[selasky.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCPT_COUNT_FIVE(0.00)[5]; IP_SCORE(-3.12)[ip: (-9.32), ipnet: 88.99.0.0/16(-4.71), asn: 24940(-1.55), country: DE(-0.02)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:88.99.0.0/16, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 11:38:39 -0000 On 2020-02-18 01:44, Gleb Smirnoff wrote: > On Mon, Feb 17, 2020 at 09:46:32AM +0000, Hans Petter Selasky wrote: > H> Author: hselasky > H> Date: Mon Feb 17 09:46:32 2020 > H> New Revision: 358013 > H> URL: https://svnweb.freebsd.org/changeset/base/358013 > H> > H> Log: > H> Fix kernel panic while trying to read multicast stream. > H> > H> When VIMAGE is enabled make sure the "m_pkthdr.rcvif" pointer is set > H> for all mbufs being input by the IGMP/MLD6 code. Else there will be a > H> NULL-pointer dereference in the netisr code when trying to set the > H> VNET based on the incoming mbuf. Add an assert to catch this when > H> queueing mbufs on a netisr to make debugging of similar cases easier. > H> > H> Found by: Vladislav V. Prodan > H> PR: 244002 > H> Reviewed by: bz@ > H> MFC after: 1 week > H> Sponsored by: Mellanox Technologies > H> > H> Modified: > H> head/sys/net/netisr.c > H> head/sys/netinet/igmp.c > H> head/sys/netinet6/mld6.c > H> > H> Modified: head/sys/net/netisr.c > H> ============================================================================== > H> --- head/sys/net/netisr.c Mon Feb 17 01:59:55 2020 (r358012) > H> +++ head/sys/net/netisr.c Mon Feb 17 09:46:32 2020 (r358013) > H> @@ -1056,6 +1056,8 @@ netisr_queue_src(u_int proto, uintptr_t source, struct > H> if (m != NULL) { > H> KASSERT(!CPU_ABSENT(cpuid), ("%s: CPU %u absent", __func__, > H> cpuid)); > H> + VNET_ASSERT(m->m_pkthdr.rcvif != NULL, > H> + ("%s:%d rcvif == NULL: m=%p", __func__, __LINE__, m)); > H> error = netisr_queue_internal(proto, m, cpuid); > H> } else > H> error = ENOBUFS; > H> > H> Modified: head/sys/netinet/igmp.c > H> ============================================================================== > H> --- head/sys/netinet/igmp.c Mon Feb 17 01:59:55 2020 (r358012) > H> +++ head/sys/netinet/igmp.c Mon Feb 17 09:46:32 2020 (r358013) > H> @@ -303,6 +303,7 @@ igmp_save_context(struct mbuf *m, struct ifnet *ifp) > H> #ifdef VIMAGE > H> m->m_pkthdr.PH_loc.ptr = ifp->if_vnet; > H> #endif /* VIMAGE */ > H> + m->m_pkthdr.rcvif = ifp; > H> m->m_pkthdr.flowid = ifp->if_index; > H> } > H> > H> > H> Modified: head/sys/netinet6/mld6.c > H> ============================================================================== > H> --- head/sys/netinet6/mld6.c Mon Feb 17 01:59:55 2020 (r358012) > H> +++ head/sys/netinet6/mld6.c Mon Feb 17 09:46:32 2020 (r358013) > H> @@ -283,6 +283,7 @@ mld_save_context(struct mbuf *m, struct ifnet *ifp) > H> #ifdef VIMAGE > H> m->m_pkthdr.PH_loc.ptr = ifp->if_vnet; > H> #endif /* VIMAGE */ > H> + m->m_pkthdr.rcvif = ifp; > H> m->m_pkthdr.flowid = ifp->if_index; > H> } > > This functions igmp_save_context() and mld_save_context() were clearly > designed to avoid dereferencing an ifnet pointer after a packet has been > queued and dequeued on IGMP/MLD internal queue. > > This patch now replicates the exactly same problem but with netisr > queue. Of course netisr not always queues, sometimes dispatches > directly, but it may do queue. > > I think same thing needs to be done to netisr internally - don't > dereference m->m_pkthdr.rcvif on dequeued packets, but store the > vnet info in the m->m_pkthdr.PH_loc.ptr before queueing. > Hi, I agree the if_vnet could be de-referenced in general when queueing a packet for the netisr. Are we certain that m->m_pkthdr.PH_loc.ptr is always available? Should then the netisr clear the rcvif? Or is this too dangerous? Then further, overriding the VNET inside the IGMP/MLD6 packet handler should be removed, because this is done inside the netisr. --HPS From owner-svn-src-all@freebsd.org Tue Feb 18 13:29:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 463C423936D for ; Tue, 18 Feb 2020 13:29:56 +0000 (UTC) (envelope-from mostafa.shahdadi@gmail.com) Received: from mail-pj1-x1044.google.com (mail-pj1-x1044.google.com [IPv6:2607:f8b0:4864:20::1044]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MMCl1zWNz4cNl for ; Tue, 18 Feb 2020 13:29:55 +0000 (UTC) (envelope-from mostafa.shahdadi@gmail.com) Received: by mail-pj1-x1044.google.com with SMTP id r67so1033226pjb.0 for ; Tue, 18 Feb 2020 05:29:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=content-transfer-encoding:from:mime-version:date:subject:message-id :to; bh=gORcQ5eR+p0+qNP4l53yvket3NwncOkPtSbaOdqaovo=; b=oOru9/RwdmMBFM11N6+PBfLS2oVrqlh8rDhyoAIhKwtUzmTLvSto34KpJoHSRWWv9b +JykFumg/vvabx6W9mcEbG6tMKj80dcWA2rHDjUW5xbIahiUUOkQbcYBnrduzZtUZmWg UJ5kLqsYTYLUY2XkEy3SuK+uGMiVWTISUMb1miAWIRWf69tobQpedyYpE4Q66iGwcw6W 0k0LkJ9D0KMxVTNFQ0p4HTg1sCrljktPvA09kfI3LC3HVmCet1buLMq866lgIhKIa0dQ Uy2zYNcioM11TVv4xRiZhJEUKs432s0CxC6dJhs01S2+83InZEmXEATSJGg/jkBd2rzk G0Cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:content-transfer-encoding:from:mime-version:date :subject:message-id:to; bh=gORcQ5eR+p0+qNP4l53yvket3NwncOkPtSbaOdqaovo=; b=p67e2XjLjFplFGu/AaIhmx+v3BdDjMkS4B5adOaGdjHqVt0gEvpl3Btdn8ND/971gl NgPOhvX8IIRWCSV8vdzGS5DHE6pQFAYKWdRvynzgF2KpHOYRDTu8F9pyEf36gEvDEsWv WeRJXykgSnkoVUA+jIenky84V2o5Dl2zuwfzkh6UI6h2j0jM14KOOUVldh3GAteLr0KA Js781XM2duUcInjHnGWmb3Md91p/4OQS+fjVRgJHzp03/+b8kYYkqgomNFLkt0r4EN6W GGHqTb8Q/ZASd3D+qYiHGhv7mjnO65g9CzJlvxN3CALzFXsgp37lXOK5XhN4Ztimc5vD Fs4g== X-Gm-Message-State: APjAAAX4ZD6YslJAEz1u9I/s6jXwvQLqGgB78Z2+r5zDCd58OXNe28hc Soij3hSaZNx6afRewuGhc8ueI2oeDh4frQ== X-Google-Smtp-Source: APXvYqzs/ClJdpeiOD2QiUxop1v9trjndLAdC1t7mxgrliaAlOcb+8hFWiWKJ7jkHe6gQHExKs2cLw== X-Received: by 2002:a17:90a:cc16:: with SMTP id b22mr2645753pju.65.1582032592953; Tue, 18 Feb 2020 05:29:52 -0800 (PST) Received: from [100.107.103.92] ([5.119.200.235]) by smtp.gmail.com with ESMTPSA id b10sm3510476pjo.32.2020.02.18.05.29.51 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 18 Feb 2020 05:29:52 -0800 (PST) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit From: Mostafa Shahdadi Mime-Version: 1.0 (1.0) Date: Tue, 18 Feb 2020 16:59:46 +0330 Subject: admin Message-Id: To: svn-src-all@freebsd.org X-Mailer: iPad Mail (17D50) X-Rspamd-Queue-Id: 48MMCl1zWNz4cNl X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=oOru9/Rw; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mostafashahdadi@gmail.com designates 2607:f8b0:4864:20::1044 as permitted sender) smtp.mailfrom=mostafashahdadi@gmail.com X-Spamd-Result: default: False [-2.00 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_NONE(0.00)[]; MV_CASE(0.50)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RECEIVED_SPAMHAUS_PBL(0.00)[235.200.119.5.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; TAGGED_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; SUBJECT_ENDS_SPACES(0.50)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; IP_SCORE_FREEMAIL(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; IP_SCORE(0.00)[ip: (-0.44), ipnet: 2607:f8b0::/32(-1.89), asn: 15169(-1.68), country: US(-0.05)]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 13:29:56 -0000 Sent from my iPad From owner-svn-src-all@freebsd.org Tue Feb 18 16:08:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D991B23EAB1 for ; Tue, 18 Feb 2020 16:08:57 +0000 (UTC) (envelope-from christina.evans@globaltradeshowleads.com) Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MQlD5h2nz3PBH for ; Tue, 18 Feb 2020 16:08:56 +0000 (UTC) (envelope-from christina.evans@globaltradeshowleads.com) Received: by mail-pf1-x443.google.com with SMTP id s1so10874558pfh.10 for ; Tue, 18 Feb 2020 08:08:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:return-receipt-to:from:to:references:in-reply-to :subject:date:message-id:mime-version:importance:sensitivity :thread-index:content-language:disposition-notification-to; bh=FIaWSibHWGU7xz2ANKejfoCI9GgIGPkeYqt+5tPeZUg=; b=E1o+KqWclGCeyHsp/Cyr4KaTN/AyVVHl3BTrfDGRjkk7TGmGHGOg6G22VOa5aRaoUD l38qjlb4Tu2lyDbk3VxNrYHIrji+9nIIS0mLNCIvf2yW1RGI5p3ZpNAsarsQUzjEINQ8 CWYDIr/GKnTDm4s3cGm3df4YoODjdUB7KzkUx/EusvtgCHB6CoeOO9Ux5If1s9yVOO0o dxwVFs4EVp37wpVYSCIBcVPe4LfwVjEf17JET10fZlv9JTyLRA9tcJiAS4AJMX4c8Ffq lXAgKpO8koFQEDdh22wL/YbPaToeTmPh/M2RFdk1AHfN+5L8sR+o+ktwx/BwPsl4TfJK +5yw== X-Gm-Message-State: APjAAAVtCkFbPlrSGSD0eQKwCYECz70u6XotmqmldDUKr1cjxGx+pWNL 4tcmvGGN6XD+iBg+XGXU/tjWpmdbEg== X-Google-Smtp-Source: APXvYqymO8P3cZpePlLNgTrP51dMvTeLLCsvWj06I8HhNOVSHhdk4Sf3ReU10kHRwkD1OICY5T/Xwg== X-Received: by 2002:a63:1f5b:: with SMTP id q27mr23004974pgm.434.1582042134706; Tue, 18 Feb 2020 08:08:54 -0800 (PST) Received: from EMS2 ([223.226.48.67]) by smtp.gmail.com with ESMTPSA id b1sm5380903pgs.27.2020.02.18.08.08.52 for (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 18 Feb 2020 08:08:53 -0800 (PST) From: "Christina Evans" To: References: In-Reply-To: Subject: RE: Southern California 2020 Linux Expo Emails Date: Tue, 18 Feb 2020 11:04:35 -0500 Message-ID: MIME-Version: 1.0 X-Priority: 1 (Highest) X-MSMail-Priority: High X-Mailer: Microsoft Outlook 14.0 Importance: High Sensitivity: Company-Confidential Thread-Index: AdXd4tbnsF5oPaUBT8ypasPi/OoJ5gIkTJwQ Content-Language: en-us X-Rspamd-Queue-Id: 48MQlD5h2nz3PBH X-Spamd-Bar: - X-Spamd-Result: default: False [-1.36 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[globaltradeshowleads-com.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-0.00)[nan,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; TO_DN_NONE(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; HFILTER_FROMHOST_NORESOLVE_MX(0.50)[globaltradeshowleads.com]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(-0.86)[ip: (-0.66), ipnet: 2607:f8b0::/32(-1.89), asn: 15169(-1.68), country: US(-0.05)]; DKIM_TRACE(0.00)[globaltradeshowleads-com.20150623.gappssmtp.com:+]; DMARC_POLICY_ALLOW(-0.50)[globaltradeshowleads.com,quarantine]; RCVD_IN_DNSWL_NONE(0.00)[3.4.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_LONG(-0.00)[nan,0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; HAS_X_PRIO_ONE(0.00)[1]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[67.48.226.223.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.11] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 16:08:57 -0000 Hi, Writing to check if you have received my below email sent you earlier. Just pick a number that best describes your response, 1. Yes, I'm interested & Send counts and cost of list. 2. No - Opt-Out -Not interested Let me know if you are interested so that I can provide you the cost and additional details. Sincerely, Christina Evans | Database Coordinator From: Christina Evans [mailto:christina.evans@globaltradeshowleads.com] Sent: Friday, February 07, 2020 1:17 PM To: 'svn-src-all@freebsd.org' Subject: Southern California 2020 Linux Expo Emails Importance: High Sensitivity: Confidential Hi Good Morning, Would you be interested in acquiring Southern California 2020 Linux Expo Attendees complete List? Just pick a number that best describes your response, 1. Yes, I'm interested & Send counts and cost of attendees list. 2. No - Opt-Out -Not interested Who Attends: CEOs, CTOs, CIOs, IT Directors & Managers, Students Decision makers and more. All contacts are provided with: Contact Name, Title, Company Name, Website, Physical Address, Phone Number, Fax Number, SIC, Industry type, Employees, Direct Emails and Verification results. Let me know if you are interested so that I can provide you the cost and additional details. Sincerely, Christina Evans | Expo Coordinator 609-27O-DCGO If you don't want to receive further emails please revert with "Take Out" in the subject. From owner-svn-src-all@freebsd.org Tue Feb 18 16:37:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E8F7023F8EC; Tue, 18 Feb 2020 16:37:48 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MRNX6L7nz4XP2; Tue, 18 Feb 2020 16:37:48 +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 BBDEC22EDD; Tue, 18 Feb 2020 16:37:48 +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 01IGbm6B000585; Tue, 18 Feb 2020 16:37:48 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IGbmTF000583; Tue, 18 Feb 2020 16:37:48 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202002181637.01IGbmTF000583@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 18 Feb 2020 16:37:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358072 - head X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 358072 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 16:37:49 -0000 Author: emaste Date: Tue Feb 18 16:37:48 2020 New Revision: 358072 URL: https://svnweb.freebsd.org/changeset/base/358072 Log: remove old perl entries from ObsoleteFiles.inc Each entry in ObsoleteFiles.inc adds to the time `make delete-old` and friends take to run. Perl was removed from the FreeBSD base system a very long time ago (FreeBSD 5); source updates have not been supported from that version for years. Perl was a single component responsible for thousands of entries so provides significant benefit with little effort/investigation required. We could still use a more comprehensive cleanup to remove old entries. Also add an UPDATING note (with wordsmithing by imp) indicating that `make delete-old` is required along each step of a source upgrade from an old, unsupported release. Discussed with: imp Sponsored by: The FreeBSD Foundation Modified: head/ObsoleteFiles.inc head/UPDATING Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Tue Feb 18 11:28:00 2020 (r358071) +++ head/ObsoleteFiles.inc Tue Feb 18 16:37:48 2020 (r358072) @@ -8966,1699 +8966,7 @@ OLD_FILES+=usr/sbin/yppasswdd #OLD_FILES+=usr/lib/aout/gcrt0.o #OLD_FILES+=usr/lib/aout/scrt0.o #OLD_FILES+=usr/lib/aout/sgcrt0.o -OLD_FILES+=usr/bin/sperl5 -OLD_FILES+=usr/bin/perl5.6.0 -OLD_FILES+=usr/bin/sperl5.6.0 -OLD_FILES+=usr/bin/perlbc -OLD_FILES+=usr/bin/perl5.00503 -OLD_FILES+=usr/bin/sperl5.00503 -OLD_FILES+=usr/bin/perlbug -OLD_FILES+=usr/bin/perlcc -OLD_FILES+=usr/bin/perldoc -OLD_FILES+=usr/bin/suidperl OLD_FILES+=usr/lib/pam_ftp.so -OLD_FILES+=usr/libdata/perl/5.00503/CGI/Apache.pm -OLD_FILES+=usr/libdata/perl/5.00503/CGI/Carp.pm -OLD_FILES+=usr/libdata/perl/5.00503/CGI/Cookie.pm -OLD_FILES+=usr/libdata/perl/5.00503/CGI/Fast.pm -OLD_FILES+=usr/libdata/perl/5.00503/CGI/Push.pm -OLD_FILES+=usr/libdata/perl/5.00503/CGI/Switch.pm -OLD_FILES+=usr/libdata/perl/5.00503/CPAN/FirstTime.pm -OLD_FILES+=usr/libdata/perl/5.00503/CPAN/Nox.pm -OLD_FILES+=usr/libdata/perl/5.00503/Class/Struct.pm -OLD_FILES+=usr/libdata/perl/5.00503/Devel/SelfStubber.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Command.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Embed.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Install.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Installed.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Liblist.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_OS2.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_Unix.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_VMS.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_Win32.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MakeMaker.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Manifest.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Mkbootstrap.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Mksymlists.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Packlist.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/inst -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/testlib.pm -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/typemap -OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/xsubpp -OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/Mac.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/OS2.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/Unix.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/VMS.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/Win32.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/Basename.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/CheckTree.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/Compare.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/Copy.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/DosGlob.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/Find.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/Path.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/Spec.pm -OLD_FILES+=usr/libdata/perl/5.00503/File/stat.pm -OLD_FILES+=usr/libdata/perl/5.00503/Getopt/Long.pm -OLD_FILES+=usr/libdata/perl/5.00503/Getopt/Std.pm -OLD_FILES+=usr/libdata/perl/5.00503/I18N/Collate.pm -OLD_FILES+=usr/libdata/perl/5.00503/IPC/Open2.pm -OLD_FILES+=usr/libdata/perl/5.00503/IPC/Open3.pm -OLD_FILES+=usr/libdata/perl/5.00503/Math/BigFloat.pm -OLD_FILES+=usr/libdata/perl/5.00503/Math/BigInt.pm -OLD_FILES+=usr/libdata/perl/5.00503/Math/Complex.pm -OLD_FILES+=usr/libdata/perl/5.00503/Math/Trig.pm -OLD_FILES+=usr/libdata/perl/5.00503/Net/Ping.pm -OLD_FILES+=usr/libdata/perl/5.00503/Net/hostent.pm -OLD_FILES+=usr/libdata/perl/5.00503/Net/netent.pm -OLD_FILES+=usr/libdata/perl/5.00503/Net/protoent.pm -OLD_FILES+=usr/libdata/perl/5.00503/Net/servent.pm -OLD_FILES+=usr/libdata/perl/5.00503/Pod/Functions.pm -OLD_FILES+=usr/libdata/perl/5.00503/Pod/Html.pm -OLD_FILES+=usr/libdata/perl/5.00503/Pod/Text.pm -OLD_FILES+=usr/libdata/perl/5.00503/Search/Dict.pm -OLD_FILES+=usr/libdata/perl/5.00503/Sys/Hostname.pm -OLD_FILES+=usr/libdata/perl/5.00503/Sys/Syslog.pm -OLD_FILES+=usr/libdata/perl/5.00503/Term/Cap.pm -OLD_FILES+=usr/libdata/perl/5.00503/Term/Complete.pm -OLD_FILES+=usr/libdata/perl/5.00503/Term/ReadLine.pm -OLD_FILES+=usr/libdata/perl/5.00503/Test/Harness.pm -OLD_FILES+=usr/libdata/perl/5.00503/Text/Abbrev.pm -OLD_FILES+=usr/libdata/perl/5.00503/Text/ParseWords.pm -OLD_FILES+=usr/libdata/perl/5.00503/Text/Soundex.pm -OLD_FILES+=usr/libdata/perl/5.00503/Text/Tabs.pm -OLD_FILES+=usr/libdata/perl/5.00503/Text/Wrap.pm -OLD_FILES+=usr/libdata/perl/5.00503/Tie/Array.pm -OLD_FILES+=usr/libdata/perl/5.00503/Tie/Handle.pm -OLD_FILES+=usr/libdata/perl/5.00503/Tie/Hash.pm -OLD_FILES+=usr/libdata/perl/5.00503/Tie/RefHash.pm -OLD_FILES+=usr/libdata/perl/5.00503/Tie/Scalar.pm -OLD_FILES+=usr/libdata/perl/5.00503/Tie/SubstrHash.pm -OLD_FILES+=usr/libdata/perl/5.00503/Time/Local.pm -OLD_FILES+=usr/libdata/perl/5.00503/Time/gmtime.pm -OLD_FILES+=usr/libdata/perl/5.00503/Time/localtime.pm -OLD_FILES+=usr/libdata/perl/5.00503/Time/tm.pm -OLD_FILES+=usr/libdata/perl/5.00503/User/grent.pm -OLD_FILES+=usr/libdata/perl/5.00503/User/pwent.pm -OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/GetOptions.al -OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/FindOption.al -OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/Configure.al -OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/config.al -OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/Croak.al -OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/autosplit.ix -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Deparse.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/CC.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Debug.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Showlex.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/makeliblinks -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Bblock.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/cc_harness -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Bytecode.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Stackobj.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Xref.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Lint.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Asmdata.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Assembler.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Disassembler.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/disassemble -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/assemble -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Terse.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B/C.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/EXTERN.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/INTERN.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/XSUB.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/XSlock.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/av.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/bytecode.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/byterun.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/cc_runtime.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/config.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/cop.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/cv.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/dosish.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/embed.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/embedvar.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/fakethr.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/form.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/gv.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/handy.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/hv.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/intrpvar.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/iperlsys.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/keywords.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/mg.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/nostdio.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/objXSUB.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/objpp.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/op.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/opcode.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/patchlevel.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perl.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlio.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlsdio.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlsfio.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlvars.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perly.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/pp.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/pp_proto.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/proto.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/regcomp.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/regexp.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/regnodes.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/scope.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/sv.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/thrdvar.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/thread.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/unixish.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/util.h -OLD_FILES+=usr/libdata/perl/5.00503/mach/Data/Dumper.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/File.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Select.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Socket.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Handle.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Seekable.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Pipe.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/IPC/SysV.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/IPC/Msg.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/IPC/Semaphore.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/B/B.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/B/B.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/B/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/autosplit.ix -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/DB_File.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/DB_File.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Data/Dumper/Dumper.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Data/Dumper/Dumper.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Data/Dumper/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/.exists -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/dl_findfile.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/dl_expandspec.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/dl_find_symbol_anywhere.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/autosplit.ix -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/DynaLoader.a -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/extralibs.ld -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Fcntl/Fcntl.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Fcntl/Fcntl.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Fcntl/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IO/IO.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IO/IO.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IO/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IPC/SysV/SysV.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IPC/SysV/SysV.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IPC/SysV/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/NDBM_File/NDBM_File.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/NDBM_File/NDBM_File.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/NDBM_File/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Opcode/Opcode.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Opcode/Opcode.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Opcode/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/assert.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/tolower.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/toupper.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/closedir.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/opendir.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/readdir.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rewinddir.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/errno.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/creat.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fcntl.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgrgid.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgrnam.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atan2.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/cos.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/exp.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fabs.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/log.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/pow.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sin.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sqrt.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpwnam.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpwuid.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/longjmp.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setjmp.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/kill.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/feof.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/siglongjmp.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sigsetjmp.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/raise.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/offsetof.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/clearerr.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fclose.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fdopen.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fgetc.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fgets.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fileno.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fopen.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fprintf.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fputc.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fputs.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fread.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/freopen.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fscanf.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fseek.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ferror.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fflush.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fgetpos.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fsetpos.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ftell.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fwrite.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getc.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getchar.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/gets.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/perror.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/printf.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/putc.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/putchar.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/puts.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/remove.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rename.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rewind.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/scanf.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sprintf.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sscanf.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/tmpfile.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ungetc.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/vfprintf.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/vprintf.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/vsprintf.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/abs.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atexit.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atof.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atoi.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atol.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/bsearch.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/calloc.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/div.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/exit.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/free.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getenv.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/labs.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ldiv.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/malloc.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/qsort.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rand.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/realloc.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/srand.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/system.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memchr.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memcmp.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memcpy.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memmove.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memset.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcat.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strchr.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcmp.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcpy.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcspn.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strerror.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strlen.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strncat.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strncmp.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strncpy.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strpbrk.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strrchr.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strspn.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strstr.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strtok.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/chmod.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fstat.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/mkdir.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/stat.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/umask.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/wait.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/waitpid.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/gmtime.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/localtime.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/time.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/alarm.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/chdir.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/chown.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execl.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execle.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execlp.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execv.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execve.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execvp.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fork.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getcwd.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getegid.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/geteuid.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgid.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgroups.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getlogin.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpgrp.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpid.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getppid.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getuid.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/isatty.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/link.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rmdir.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setbuf.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setgid.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setuid.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setvbuf.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sleep.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/unlink.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/utime.al -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/autosplit.ix -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/POSIX.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/POSIX.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/SDBM_File/SDBM_File.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/SDBM_File/SDBM_File.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/SDBM_File/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Socket/Socket.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Socket/Socket.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Socket/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/attrs/attrs.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/attrs/attrs.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/attrs/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/re/re.so -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/re/re.bs -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/re/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/sdbm/extralibs.ld -OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Errno/.packlist -OLD_FILES+=usr/libdata/perl/5.00503/mach/Config.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/B.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/O.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/perllocal.pod -OLD_FILES+=usr/libdata/perl/5.00503/mach/DB_File.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/Errno.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/Fcntl.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/IO.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/NDBM_File.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/Safe.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/Opcode.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/ops.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/POSIX.pod -OLD_FILES+=usr/libdata/perl/5.00503/mach/POSIX.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/SDBM_File.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/Socket.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/attrs.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/re.pm -OLD_FILES+=usr/libdata/perl/5.00503/mach/_h2ph_pre.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/a.out.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_ccb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_debug.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_extend.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_periph.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_queue.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_sim.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_xpt.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_xpt_periph.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_xpt_sim.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/aio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/alias.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ar.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/assert.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/bitstring.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/calendar.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/camlib.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/com_err.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/com_right.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ctype.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/curses.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/db.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/des.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/devstat.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/dialog.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/dirent.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/disktab.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/dlfcn.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/elf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/err.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/errno.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/eti.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/fcntl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/fetch.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/float.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/floatingpoint.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/fnmatch.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/form.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/fstab.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ftpio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/fts.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/glob.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/gmp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/gnuregex.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/grp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/histedit.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ieeefp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ifaddrs.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/inttypes.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/iso646.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/kvm.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/libatm.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/libdisk.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/libgen.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/libusb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/libutil.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/limits.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/link.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/linker_set.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/locale.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/login_cap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/malloc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/FlexLexer.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/PlotFile.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/SFile.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/_G_config.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/algo.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/algobase.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/alloc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/builtinbuf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/bvector.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/complex.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/defalloc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/deque.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/editbuf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/floatio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/fstream.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/function.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/hash_map.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/hash_set.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/hashtable.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/heap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/indstream.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iolibio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iomanip.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/list.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iostdio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iostream.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iostreamP.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/istream.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iterator.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/libio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/libioP.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/map.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/multimap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/multiset.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/new.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/ostream.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/pair.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/parsestream.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/pfstream.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/procbuf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/pthread_alloc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/rope.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/ropeimpl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/set.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/slist.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stack.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stdiostream.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_algo.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/tree.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_algobase.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_alloc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_bvector.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_config.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_construct.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_deque.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_function.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hash_fun.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hash_map.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hash_set.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hashtable.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_heap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_iterator.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_list.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_map.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_multimap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_multiset.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_numeric.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_pair.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_queue.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_raw_storage_iter.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_relops.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_rope.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_set.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_slist.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_stack.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_tempbuf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_tree.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_uninitialized.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_vector.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stream.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/streambuf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/strfile.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/strstream.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/tempbuf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/type_traits.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/vector.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/math.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/md2.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/md4.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/md5.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/memory.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/menu.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/mp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/mpool.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/mqueue.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ncurses.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ndbm.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netdb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nl_types.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nlist.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objformat.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/opie.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/osreldate.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/panel.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/paths.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/pcap-int.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/pcap-namedb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/pcap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/poll.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/pthread.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/pthread_np.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/pwd.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/radlib.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ranlib.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/regex.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/regexp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/resolv.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ripemd.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/rune.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/runetype.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/sched.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/search.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/semaphore.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/setjmp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/sgtty.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/sha.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/signal.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/skey.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/stab.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/stand.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/stdarg.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/stddef.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/stdio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/stdlib.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/strhash.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/string.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/stringlist.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/strings.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/struct.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/sysexits.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/syslog.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/taclib.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/tar.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/tcpd.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/term.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/termcap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/termios.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/time.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/timers.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ttyent.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ucontext.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/unctrl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/unistd.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/utime.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/utmp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/values.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/varargs.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/vgl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/vis.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/zconf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/zlib.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/ftp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/inet.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/nameser.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/nameser_compat.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/telnet.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/tftp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/assertions.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/ctl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/dst.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/eventlib.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/heap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/irpmarshall.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/logging.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/memcluster.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/misc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/tree.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/list.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ansi.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/apic.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/apm_bios.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/apm_segments.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/asc_ioctl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/asm.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/asmacros.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/asnames.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/atomic.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bootinfo.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_at386.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_memio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_pc98.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_pio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_pio_ind.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/cdk.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/clock.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/comstats.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/console.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/cpu.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/cpufunc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/cputypes.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/cronyx.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/db_machdep.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/dvcfg.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/elf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/endian.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/exec.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/float.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/floatingpoint.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/frame.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/globaldata.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/globals.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/gsc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_cause.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_debug.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_ioctl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_rbch_ioctl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_tel_ioctl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_trace.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ieeefp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/if_wavelan_ieee.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/if_wl_wavelan.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/iic.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/in_cksum.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ioctl_bt848.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ioctl_ctx.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ioctl_fd.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ioctl_meteor.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ipl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/joystick.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/limits.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/lock.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/md_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/mouse.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/mpapic.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/mtpr.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_dma.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/npx.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/param.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pcaudioio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pcb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pcb_ext.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pcvt_ioctl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/perfmon.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/physio_proc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pmap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/proc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/profile.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/psl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ptrace.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/reg.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/reloc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/resource.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/segments.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/setjmp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/sigframe.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/signal.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/smb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/smp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/smptests.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/soundcard.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/speaker.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/specialreg.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/spigot.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/stdarg.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/sysarch.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/trap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/tss.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/types.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/uc_device.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ucontext.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ultrasound.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/varargs.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/vm86.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/vmparam.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/wtio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_isppp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pci_cfgreg.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/bootsect.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/bpb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/denode.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/direntry.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/fat.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/msdosfsmount.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/bpf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/bpf_compat.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/bpfdesc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/bridge.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/ethernet.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/hostcache.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_arp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_atm.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_dl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_gif.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_ieee80211.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_llc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_media.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_mib.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_ppp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_pppvar.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_slvar.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_sppp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_stf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_tap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_tapvar.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_tun.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/slip.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_tunvar.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_types.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_vlan_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/intrq.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/iso88025.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/net_osdep.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/netisr.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/pfkeyv2.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/ppp_comp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/ppp_defs.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/radix.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/raw_cb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/route.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/slcompress.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/zlib.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_faith.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_arc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_gre.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/krpc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfs.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsdiskless.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsm_subs.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsmount.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsnode.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsproto.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsrtt.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsrvcache.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsv2.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nqnfs.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/rpcv2.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/xdr_subs.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/aarp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/at.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/at_extern.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/at_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/ddp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/ddp_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/endian.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/phase2.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_cm.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_if.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_ioctl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_pcb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_sap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_sigmgr.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_stack.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_sys.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_vc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/kern_include.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/port.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/queue.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/netgraph.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_UI.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_async.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_bpf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_bridge.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_cisco.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_echo.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_ether.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_frame_relay.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_hole.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_iface.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_ksocket.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_lmi.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_message.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_mppc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_one2many.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_parse.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_ppp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_pppoe.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_pptpgre.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_rfc1490.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_sample.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_socket.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_socketvar.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_tee.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_tty.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_vjc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_eiface.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_etf.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_device.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_l2tp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_fec.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/icmp6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/icmp_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/if_atm.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/if_ether.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/if_fddi.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/igmp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/igmp_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in_gif.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in_hostcache.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in_pcb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in_systm.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_auth.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_compat.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_dummynet.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_ecn.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_encap.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_fil.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_flow.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_frag.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_fw.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_icmp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_mroute.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_nat.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_proxy.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_state.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ipl.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ipprotosw.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp_debug.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp_fsm.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp_seq.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp_timer.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcpip.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/udp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/udp_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_fw2.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_gre.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ah.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ah6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/esp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/esp6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/icmp6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6_gif.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6_ifattach.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6_pcb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6_prefix.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6_ecn.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6_fw.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6_mroute.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6protosw.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ipcomp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ipcomp6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ipsec.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ipsec6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/mld6_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/nd6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/pim6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/pim6_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/scope6_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/tcp6_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/udp6_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/esp_rijndael.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/raw_ip6.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/ipx.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/ipx_if.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/ipx_ip.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/ipx_pcb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/ipx_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/spx.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/spx_debug.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/spx_timer.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/spx_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netkey/key.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netkey/key_debug.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netkey/key_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netkey/keydb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netkey/keysock.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netnatm/natm.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_cfg.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_conn.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_file.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_lib.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_ncp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_nls.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_rcfile.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_rq.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_sock.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_subr.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_user.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/nwerror.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/idp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/idp_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/ns.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/ns_error.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/ns_if.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/ns_pcb.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/sp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/spidp.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/spp_debug.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/spp_timer.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/spp_var.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs_compr.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs_ihash.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs_inode.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs_subr.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs_vfsops.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfsmount.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nwfs/nwfs.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nwfs/nwfs_mount.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nwfs/nwfs_node.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/nwfs/nwfs_subr.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/NXConstStr.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/Object.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/Protocol.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/encoding.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/hash.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/objc-api.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/objc-list.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/objc.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/runtime.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/sarray.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/thr.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/typedstream.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/asn1.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/asn1_mac.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/bio.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/blowfish.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/bn.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/buffer.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/cast.ph -OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/comp.ph *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Feb 18 16:39:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 77C1623FB08; Tue, 18 Feb 2020 16:39:58 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MRR22Lbqz4bSX; Tue, 18 Feb 2020 16:39:58 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 470E522EEF; Tue, 18 Feb 2020 16:39:58 +0000 (UTC) (envelope-from fsu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01IGdwuc000718; Tue, 18 Feb 2020 16:39:58 GMT (envelope-from fsu@FreeBSD.org) Received: (from fsu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IGdvLv000715; Tue, 18 Feb 2020 16:39:57 GMT (envelope-from fsu@FreeBSD.org) Message-Id: <202002181639.01IGdvLv000715@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: fsu set sender to fsu@FreeBSD.org using -f From: Fedor Uporov Date: Tue, 18 Feb 2020 16:39:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358073 - head/sys/fs/ext2fs X-SVN-Group: head X-SVN-Commit-Author: fsu X-SVN-Commit-Paths: head/sys/fs/ext2fs X-SVN-Commit-Revision: 358073 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 16:39:58 -0000 Author: fsu Date: Tue Feb 18 16:39:57 2020 New Revision: 358073 URL: https://svnweb.freebsd.org/changeset/base/358073 Log: Add a EXT2FS-specific implementation for lseek(SEEK_DATA). The lseek(SEEK_DATA) optimization logic could be simply borrowed from ufs side. See, https://reviews.freebsd.org/D19599. Reviewed by: pfg MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23605 Modified: head/sys/fs/ext2fs/ext2_bmap.c head/sys/fs/ext2fs/ext2_extern.h head/sys/fs/ext2fs/ext2_vnops.c Modified: head/sys/fs/ext2fs/ext2_bmap.c ============================================================================== --- head/sys/fs/ext2fs/ext2_bmap.c Tue Feb 18 16:37:48 2020 (r358072) +++ head/sys/fs/ext2fs/ext2_bmap.c Tue Feb 18 16:39:57 2020 (r358073) @@ -139,6 +139,47 @@ ext4_bmapext(struct vnode *vp, int32_t bn, int64_t *bn return (error); } +static int +readindir(struct vnode *vp, e2fs_lbn_t lbn, e2fs_daddr_t daddr, struct buf **bpp) +{ + struct buf *bp; + struct mount *mp; + struct ext2mount *ump; + int error; + + mp = vp->v_mount; + ump = VFSTOEXT2(mp); + + bp = getblk(vp, lbn, mp->mnt_stat.f_iosize, 0, 0, 0); + if ((bp->b_flags & B_CACHE) == 0) { + KASSERT(daddr != 0, + ("readindir: indirect block not in cache")); + + bp->b_blkno = blkptrtodb(ump, daddr); + bp->b_iocmd = BIO_READ; + bp->b_flags &= ~B_INVAL; + bp->b_ioflags &= ~BIO_ERROR; + vfs_busy_pages(bp, 0); + bp->b_iooffset = dbtob(bp->b_blkno); + bstrategy(bp); +#ifdef RACCT + if (racct_enable) { + PROC_LOCK(curproc); + racct_add_buf(curproc, bp, 0); + PROC_UNLOCK(curproc); + } +#endif + curthread->td_ru.ru_inblock++; + error = bufwait(bp); + if (error != 0) { + brelse(bp); + return (error); + } + } + *bpp = bp; + return (0); +} + /* * Indirect blocks are now on the vnode for the file. They are given negative * logical block numbers. Indirect blocks are addressed by the negative @@ -228,35 +269,10 @@ ext2_bmaparray(struct vnode *vp, daddr_t bn, daddr_t * */ if (bp) bqrelse(bp); + error = readindir(vp, metalbn, daddr, &bp); + if (error != 0) + return (error); - bp = getblk(vp, metalbn, bsize, 0, 0, 0); - if ((bp->b_flags & B_CACHE) == 0) { -#ifdef INVARIANTS - if (!daddr) - panic("ext2_bmaparray: indirect block not in cache"); -#endif - bp->b_blkno = blkptrtodb(ump, daddr); - bp->b_iocmd = BIO_READ; - bp->b_flags &= ~B_INVAL; - bp->b_ioflags &= ~BIO_ERROR; - vfs_busy_pages(bp, 0); - bp->b_iooffset = dbtob(bp->b_blkno); - bstrategy(bp); -#ifdef RACCT - if (racct_enable) { - PROC_LOCK(curproc); - racct_add_buf(curproc, bp, 0); - PROC_UNLOCK(curproc); - } -#endif - curthread->td_ru.ru_inblock++; - error = bufwait(bp); - if (error) { - brelse(bp); - return (error); - } - } - daddr = ((e2fs_daddr_t *)bp->b_data)[ap->in_off]; if (num == 1 && daddr && runp) { for (bn = ap->in_off + 1; @@ -294,6 +310,107 @@ ext2_bmaparray(struct vnode *vp, daddr_t bn, daddr_t * *bnp = -1; } return (0); +} + +static e2fs_lbn_t +lbn_count(struct ext2mount *ump, int level) + +{ + e2fs_lbn_t blockcnt; + + for (blockcnt = 1; level > 0; level--) + blockcnt *= MNINDIR(ump); + return (blockcnt); +} + +int +ext2_bmap_seekdata(struct vnode *vp, off_t *offp) +{ + struct buf *bp; + struct indir a[EXT2_NIADDR + 1], *ap; + struct inode *ip; + struct mount *mp; + struct ext2mount *ump; + e2fs_daddr_t bn, daddr, nextbn; + uint64_t bsize; + off_t numblks; + int error, num, num1, off; + + bp = NULL; + error = 0; + ip = VTOI(vp); + mp = vp->v_mount; + ump = VFSTOEXT2(mp); + + if (vp->v_type != VREG || (ip->i_flags & SF_SNAPSHOT) != 0) + return (EINVAL); + if (*offp < 0 || *offp >= ip->i_size) + return (ENXIO); + + bsize = mp->mnt_stat.f_iosize; + for (bn = *offp / bsize, numblks = howmany(ip->i_size, bsize); + bn < numblks; bn = nextbn) { + if (bn < EXT2_NDADDR) { + daddr = ip->i_db[bn]; + if (daddr != 0) + break; + nextbn = bn + 1; + continue; + } + + ap = a; + error = ext2_getlbns(vp, bn, ap, &num); + if (error != 0) + break; + MPASS(num >= 2); + daddr = ip->i_ib[ap->in_off]; + ap++, num--; + for (nextbn = EXT2_NDADDR, num1 = num - 1; num1 > 0; num1--) + nextbn += lbn_count(ump, num1); + if (daddr == 0) { + nextbn += lbn_count(ump, num); + continue; + } + + for (; daddr != 0 && num > 0; ap++, num--) { + if (bp != NULL) + bqrelse(bp); + error = readindir(vp, ap->in_lbn, daddr, &bp); + if (error != 0) + return (error); + + /* + * Scan the indirect block until we find a non-zero + * pointer. + */ + off = ap->in_off; + do { + daddr = ((e2fs_daddr_t *)bp->b_data)[off]; + } while (daddr == 0 && ++off < MNINDIR(ump)); + nextbn += off * lbn_count(ump, num - 1); + + /* + * We need to recompute the LBNs of indirect + * blocks, so restart with the updated block offset. + */ + if (off != ap->in_off) + break; + } + if (num == 0) { + /* + * We found a data block. + */ + bn = nextbn; + break; + } + } + if (bp != NULL) + bqrelse(bp); + if (bn >= numblks) + error = ENXIO; + if (error == 0 && *offp < bn * bsize) + *offp = bn * bsize; + return (error); } /* Modified: head/sys/fs/ext2fs/ext2_extern.h ============================================================================== --- head/sys/fs/ext2fs/ext2_extern.h Tue Feb 18 16:37:48 2020 (r358072) +++ head/sys/fs/ext2fs/ext2_extern.h Tue Feb 18 16:39:57 2020 (r358073) @@ -64,6 +64,7 @@ e4fs_daddr_t ext2_blkpref(struct inode *, e2fs_lbn_t, int ext2_bmap(struct vop_bmap_args *); int ext2_bmaparray(struct vnode *, daddr_t, daddr_t *, int *, int *); int ext4_bmapext(struct vnode *, int32_t, int64_t *, int *, int *); +int ext2_bmap_seekdata(struct vnode *, off_t *); void ext2_clusteracct(struct m_ext2fs *, char *, int, e4fs_daddr_t, int); void ext2_dirbad(struct inode *ip, doff_t offset, char *how); int ext2_ei2i(struct ext2fs_dinode *, struct inode *); Modified: head/sys/fs/ext2fs/ext2_vnops.c ============================================================================== --- head/sys/fs/ext2fs/ext2_vnops.c Tue Feb 18 16:37:48 2020 (r358072) +++ head/sys/fs/ext2fs/ext2_vnops.c Tue Feb 18 16:39:57 2020 (r358073) @@ -2157,11 +2157,24 @@ ext2_read(struct vop_read_args *ap) static int ext2_ioctl(struct vop_ioctl_args *ap) { + struct vnode *vp; + int error; + vp = ap->a_vp; switch (ap->a_command) { case FIOSEEKDATA: + if (!(VTOI(vp)->i_flag & IN_E4EXTENTS)) { + error = vn_lock(vp, LK_SHARED); + if (error == 0) { + error = ext2_bmap_seekdata(vp, + (off_t *)ap->a_data); + VOP_UNLOCK(vp); + } else + error = EBADF; + return (error); + } case FIOSEEKHOLE: - return (vn_bmap_seekhole(ap->a_vp, ap->a_command, + return (vn_bmap_seekhole(vp, ap->a_command, (off_t *)ap->a_data, ap->a_cred)); default: return (ENOTTY); From owner-svn-src-all@freebsd.org Tue Feb 18 17:55:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 78456241A40; Tue, 18 Feb 2020 17:55:25 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MT651DGqz49LB; Tue, 18 Feb 2020 17:55:25 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C4A8723D9D; Tue, 18 Feb 2020 17:55:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01IHtO6f048484; Tue, 18 Feb 2020 17:55:24 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IHtO2a048483; Tue, 18 Feb 2020 17:55:24 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002181755.01IHtO2a048483@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 18 Feb 2020 17:55:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358074 - head/sys/arm/allwinner/clkng X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: head/sys/arm/allwinner/clkng X-SVN-Commit-Revision: 358074 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 17:55:25 -0000 Author: dim Date: Tue Feb 18 17:55:24 2020 New Revision: 358074 URL: https://svnweb.freebsd.org/changeset/base/358074 Log: Fix the following -Werror warning from clang 10.0.0: sys/arm/allwinner/clkng/aw_clk_mipi.c:144:6: error: misleading indentation; statement is not part of the previous 'if' [-Werror,-Wmisleading-indentation] m++; ^ sys/arm/allwinner/clkng/aw_clk_mipi.c:142:5: note: previous statement is here if (best == *fout) ^ Move the increment operations into the for loop headers instead. Discussed with: manu MFC after: 3 days Modified: head/sys/arm/allwinner/clkng/aw_clk_mipi.c Modified: head/sys/arm/allwinner/clkng/aw_clk_mipi.c ============================================================================== --- head/sys/arm/allwinner/clkng/aw_clk_mipi.c Tue Feb 18 16:39:57 2020 (r358073) +++ head/sys/arm/allwinner/clkng/aw_clk_mipi.c Tue Feb 18 17:55:24 2020 (r358074) @@ -129,9 +129,9 @@ aw_clk_mipi_find_best(struct aw_clk_mipi_sc *sc, uint6 *factor_k = 0; *factor_m = 0; - for (n = aw_clk_factor_get_min(&sc->n); n <= aw_clk_factor_get_max(&sc->n); ) { - for (k = aw_clk_factor_get_min(&sc->k); k <= aw_clk_factor_get_max(&sc->k); ) { - for (m = aw_clk_factor_get_min(&sc->m); m <= aw_clk_factor_get_max(&sc->m); ) { + for (n = aw_clk_factor_get_min(&sc->n); n <= aw_clk_factor_get_max(&sc->n); n++) { + for (k = aw_clk_factor_get_min(&sc->k); k <= aw_clk_factor_get_max(&sc->k); k++) { + for (m = aw_clk_factor_get_min(&sc->m); m <= aw_clk_factor_get_max(&sc->m); m++) { cur = (fparent * n * k) / m; if ((*fout - cur) < (*fout - best)) { best = cur; @@ -141,11 +141,8 @@ aw_clk_mipi_find_best(struct aw_clk_mipi_sc *sc, uint6 } if (best == *fout) return (best); - m++; } - k++; } - n++; } return best; From owner-svn-src-all@freebsd.org Tue Feb 18 18:03:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D645F241CE1; Tue, 18 Feb 2020 18:03:05 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MTGx561Nz4JFL; Tue, 18 Feb 2020 18:03:05 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A7D7423F6B; Tue, 18 Feb 2020 18:03:05 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01II35wZ054306; Tue, 18 Feb 2020 18:03:05 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01II35BS054305; Tue, 18 Feb 2020 18:03:05 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002181803.01II35BS054305@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 18 Feb 2020 18:03:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358076 - in stable: 11/share/mk 12/share/mk X-SVN-Group: stable-11 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/share/mk 12/share/mk X-SVN-Commit-Revision: 358076 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 18:03:05 -0000 Author: dim Date: Tue Feb 18 18:03:04 2020 New Revision: 358076 URL: https://svnweb.freebsd.org/changeset/base/358076 Log: MFC r357661: Correctly recognize linker versions greater than 10.0. Modified: stable/11/share/mk/bsd.linker.mk Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/share/mk/bsd.linker.mk Directory Properties: stable/12/ (props changed) Modified: stable/11/share/mk/bsd.linker.mk ============================================================================== --- stable/11/share/mk/bsd.linker.mk Tue Feb 18 17:59:37 2020 (r358075) +++ stable/11/share/mk/bsd.linker.mk Tue Feb 18 18:03:04 2020 (r358076) @@ -55,7 +55,7 @@ _ld_version!= (${${ld}} --version || echo none) | sed .endif .if ${_ld_version:[1..2]} == "GNU ld" ${X_}LINKER_TYPE= bfd -_v= ${_ld_version:M[1-9].[0-9]*:[1]} +_v= ${_ld_version:M[1-9]*.[0-9]*:[1]} .elif ${_ld_version:[1]} == "LLD" ${X_}LINKER_TYPE= lld _v= ${_ld_version:[2]} @@ -64,7 +64,7 @@ _v= ${_ld_version:[2]} ${X_}LINKER_TYPE= bfd _v= 2.17.50 .endif -${X_}LINKER_VERSION!= echo "${_v:M[1-9].[0-9]*}" | \ +${X_}LINKER_VERSION!= echo "${_v:M[1-9]*.[0-9]*}" | \ awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}' .undef _ld_version .undef _v From owner-svn-src-all@freebsd.org Tue Feb 18 18:03:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7A900241CDD; Tue, 18 Feb 2020 18:03:05 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MTGx2f1Kz4JF4; Tue, 18 Feb 2020 18:03:05 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5580F23F6A; Tue, 18 Feb 2020 18:03:05 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01II35XX054300; Tue, 18 Feb 2020 18:03:05 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01II35rx054299; Tue, 18 Feb 2020 18:03:05 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002181803.01II35rx054299@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 18 Feb 2020 18:03:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358076 - in stable: 11/share/mk 12/share/mk X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/share/mk 12/share/mk X-SVN-Commit-Revision: 358076 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 18:03:05 -0000 Author: dim Date: Tue Feb 18 18:03:04 2020 New Revision: 358076 URL: https://svnweb.freebsd.org/changeset/base/358076 Log: MFC r357661: Correctly recognize linker versions greater than 10.0. Modified: stable/12/share/mk/bsd.linker.mk Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/share/mk/bsd.linker.mk Directory Properties: stable/11/ (props changed) Modified: stable/12/share/mk/bsd.linker.mk ============================================================================== --- stable/12/share/mk/bsd.linker.mk Tue Feb 18 17:59:37 2020 (r358075) +++ stable/12/share/mk/bsd.linker.mk Tue Feb 18 18:03:04 2020 (r358076) @@ -59,7 +59,7 @@ _ld_version!= (${${ld}} --version || echo none) | sed .if ${_ld_version:[1..2]} == "GNU ld" ${X_}LINKER_TYPE= bfd ${X_}LINKER_FREEBSD_VERSION= 0 -_v= ${_ld_version:M[1-9].[0-9]*:[1]} +_v= ${_ld_version:M[1-9]*.[0-9]*:[1]} .elif ${_ld_version:[1]} == "LLD" ${X_}LINKER_TYPE= lld _v= ${_ld_version:[2]} @@ -71,7 +71,7 @@ ${X_}LINKER_FREEBSD_VERSION!= \ ${X_}LINKER_TYPE= bfd _v= 2.17.50 .endif -${X_}LINKER_VERSION!= echo "${_v:M[1-9].[0-9]*}" | \ +${X_}LINKER_VERSION!= echo "${_v:M[1-9]*.[0-9]*}" | \ awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}' .undef _ld_version .undef _v From owner-svn-src-all@freebsd.org Tue Feb 18 18:13:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 58CAA24210B; Tue, 18 Feb 2020 18:13:09 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MTVY1h0dz4XPL; Tue, 18 Feb 2020 18:13:09 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3387324134; Tue, 18 Feb 2020 18:13:09 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01IID92Y060338; Tue, 18 Feb 2020 18:13:09 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IID8en060334; Tue, 18 Feb 2020 18:13:08 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002181813.01IID8en060334@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 18 Feb 2020 18:13:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358077 - in stable: 11/sys/conf 11/sys/modules/ce 11/sys/modules/cp 12/sys/conf 12/sys/modules/ce 12/sys/modules/cp X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/sys/conf 11/sys/modules/ce 11/sys/modules/cp 12/sys/conf 12/sys/modules/ce 12/sys/modules/cp X-SVN-Commit-Revision: 358077 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 18:13:09 -0000 Author: dim Date: Tue Feb 18 18:13:08 2020 New Revision: 358077 URL: https://svnweb.freebsd.org/changeset/base/358077 Log: MFC r357874: Merge r357872 from the clang1000-import branch: Disable new clang 10.0.0 warnings about misleading indentation in ce(4) and cp(4). These are false positives, since some of the driver source has been deliberately obfuscated. Modified: stable/12/sys/conf/files.i386 stable/12/sys/conf/kern.mk stable/12/sys/modules/ce/Makefile stable/12/sys/modules/cp/Makefile Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/conf/files.i386 stable/11/sys/conf/kern.mk stable/11/sys/modules/ce/Makefile stable/11/sys/modules/cp/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/conf/files.i386 ============================================================================== --- stable/12/sys/conf/files.i386 Tue Feb 18 18:03:04 2020 (r358076) +++ stable/12/sys/conf/files.i386 Tue Feb 18 18:13:08 2020 (r358077) @@ -189,9 +189,10 @@ dev/bxe/57712_init_values.c optional bxe pci dev/ce/ceddk.c optional ce dev/ce/if_ce.c optional ce dev/ce/tau32-ddk.c optional ce \ - compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION}" + compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION} ${NO_WMISLEADING_INDENTATION}" dev/coretemp/coretemp.c optional coretemp -dev/cp/cpddk.c optional cp +dev/cp/cpddk.c optional cp \ + compile-with "${NORMAL_C} ${NO_WMISLEADING_INDENTATION}" dev/cp/if_cp.c optional cp dev/cpuctl/cpuctl.c optional cpuctl dev/ctau/ctau.c optional ctau Modified: stable/12/sys/conf/kern.mk ============================================================================== --- stable/12/sys/conf/kern.mk Tue Feb 18 18:03:04 2020 (r358076) +++ stable/12/sys/conf/kern.mk Tue Feb 18 18:13:08 2020 (r358077) @@ -38,6 +38,9 @@ CWARNEXTRA+= -Wno-error-shift-negative-value .if ${COMPILER_VERSION} >= 40000 CWARNEXTRA+= -Wno-address-of-packed-member .endif +.if ${COMPILER_VERSION} >= 100000 +NO_WMISLEADING_INDENTATION= -Wno-misleading-indentation +.endif CLANG_NO_IAS= -no-integrated-as .if ${COMPILER_VERSION} < 30500 Modified: stable/12/sys/modules/ce/Makefile ============================================================================== --- stable/12/sys/modules/ce/Makefile Tue Feb 18 18:03:04 2020 (r358076) +++ stable/12/sys/modules/ce/Makefile Tue Feb 18 18:13:08 2020 (r358077) @@ -27,4 +27,5 @@ opt_ng_cronyx.h: .include -CWARNFLAGS.tau32-ddk.c= ${NO_WCONSTANT_CONVERSION} +CWARNFLAGS.tau32-ddk.c+= ${NO_WCONSTANT_CONVERSION} +CWARNFLAGS.tau32-ddk.c+= ${NO_WMISLEADING_INDENTATION} Modified: stable/12/sys/modules/cp/Makefile ============================================================================== --- stable/12/sys/modules/cp/Makefile Tue Feb 18 18:03:04 2020 (r358076) +++ stable/12/sys/modules/cp/Makefile Tue Feb 18 18:13:08 2020 (r358077) @@ -26,3 +26,5 @@ opt_ng_cronyx.h: .endif .include + +CWARNFLAGS.cpddk.c+= ${NO_WMISLEADING_INDENTATION} From owner-svn-src-all@freebsd.org Tue Feb 18 18:13:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8C92424212C; Tue, 18 Feb 2020 18:13:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MTVZ2qxVz4XR7; Tue, 18 Feb 2020 18:13:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 54D7F24135; Tue, 18 Feb 2020 18:13:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01IIDAkx060347; Tue, 18 Feb 2020 18:13:10 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IID9hf060343; Tue, 18 Feb 2020 18:13:09 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002181813.01IID9hf060343@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 18 Feb 2020 18:13:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358077 - in stable: 11/sys/conf 11/sys/modules/ce 11/sys/modules/cp 12/sys/conf 12/sys/modules/ce 12/sys/modules/cp X-SVN-Group: stable-11 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/sys/conf 11/sys/modules/ce 11/sys/modules/cp 12/sys/conf 12/sys/modules/ce 12/sys/modules/cp X-SVN-Commit-Revision: 358077 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 18:13:10 -0000 Author: dim Date: Tue Feb 18 18:13:08 2020 New Revision: 358077 URL: https://svnweb.freebsd.org/changeset/base/358077 Log: MFC r357874: Merge r357872 from the clang1000-import branch: Disable new clang 10.0.0 warnings about misleading indentation in ce(4) and cp(4). These are false positives, since some of the driver source has been deliberately obfuscated. Modified: stable/11/sys/conf/files.i386 stable/11/sys/conf/kern.mk stable/11/sys/modules/ce/Makefile stable/11/sys/modules/cp/Makefile Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/conf/files.i386 stable/12/sys/conf/kern.mk stable/12/sys/modules/ce/Makefile stable/12/sys/modules/cp/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/conf/files.i386 ============================================================================== --- stable/11/sys/conf/files.i386 Tue Feb 18 18:03:04 2020 (r358076) +++ stable/11/sys/conf/files.i386 Tue Feb 18 18:13:08 2020 (r358077) @@ -197,10 +197,11 @@ dev/bxe/57712_init_values.c optional bxe pci dev/ce/ceddk.c optional ce dev/ce/if_ce.c optional ce dev/ce/tau32-ddk.c optional ce \ - compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION}" + compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION} ${NO_WMISLEADING_INDENTATION}" dev/cm/if_cm_isa.c optional cm isa dev/coretemp/coretemp.c optional coretemp -dev/cp/cpddk.c optional cp +dev/cp/cpddk.c optional cp \ + compile-with "${NORMAL_C} ${NO_WMISLEADING_INDENTATION}" dev/cp/if_cp.c optional cp dev/cpuctl/cpuctl.c optional cpuctl dev/ctau/ctau.c optional ctau Modified: stable/11/sys/conf/kern.mk ============================================================================== --- stable/11/sys/conf/kern.mk Tue Feb 18 18:03:04 2020 (r358076) +++ stable/11/sys/conf/kern.mk Tue Feb 18 18:13:08 2020 (r358077) @@ -36,6 +36,9 @@ CWARNEXTRA+= -Wno-error-shift-negative-value .if ${COMPILER_VERSION} >= 40000 CWARNEXTRA+= -Wno-error-address-of-packed-member .endif +.if ${COMPILER_VERSION} >= 100000 +NO_WMISLEADING_INDENTATION= -Wno-misleading-indentation +.endif CLANG_NO_IAS= -no-integrated-as .if ${COMPILER_VERSION} < 30500 Modified: stable/11/sys/modules/ce/Makefile ============================================================================== --- stable/11/sys/modules/ce/Makefile Tue Feb 18 18:03:04 2020 (r358076) +++ stable/11/sys/modules/ce/Makefile Tue Feb 18 18:13:08 2020 (r358077) @@ -27,4 +27,5 @@ opt_ng_cronyx.h: .include -CWARNFLAGS.tau32-ddk.c= ${NO_WCONSTANT_CONVERSION} +CWARNFLAGS.tau32-ddk.c+= ${NO_WCONSTANT_CONVERSION} +CWARNFLAGS.tau32-ddk.c+= ${NO_WMISLEADING_INDENTATION} Modified: stable/11/sys/modules/cp/Makefile ============================================================================== --- stable/11/sys/modules/cp/Makefile Tue Feb 18 18:03:04 2020 (r358076) +++ stable/11/sys/modules/cp/Makefile Tue Feb 18 18:13:08 2020 (r358077) @@ -26,3 +26,5 @@ opt_ng_cronyx.h: .endif .include + +CWARNFLAGS.cpddk.c+= ${NO_WMISLEADING_INDENTATION} From owner-svn-src-all@freebsd.org Tue Feb 18 18:15:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2FD6B24222F; Tue, 18 Feb 2020 18:15:34 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MTYK6wMsz4bWL; Tue, 18 Feb 2020 18:15:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DB8D224137; Tue, 18 Feb 2020 18:15:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01IIFXKV060533; Tue, 18 Feb 2020 18:15:33 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IIFXoF060532; Tue, 18 Feb 2020 18:15:33 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002181815.01IIFXoF060532@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 18 Feb 2020 18:15:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358078 - in stable: 11/sbin/sconfig 12/sbin/sconfig X-SVN-Group: stable-11 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/sbin/sconfig 12/sbin/sconfig X-SVN-Commit-Revision: 358078 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 18:15:34 -0000 Author: dim Date: Tue Feb 18 18:15:33 2020 New Revision: 358078 URL: https://svnweb.freebsd.org/changeset/base/358078 Log: MFC r357873: Merge r357864 from the clang1000-import branch: Fix the following -Werror warning from clang 10.0.0 in sconfig: sbin/sconfig/sconfig.c:909:5: error: misleading indentation; statement is not part of the previous 'else' [-Werror,-Wmisleading-indentation] exit (-1); ^ sbin/sconfig/sconfig.c:907:6: note: previous statement is here } else ^ The intent was to group the exit() call with the previous fprintf() call. Modified: stable/11/sbin/sconfig/sconfig.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sbin/sconfig/sconfig.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sbin/sconfig/sconfig.c ============================================================================== --- stable/11/sbin/sconfig/sconfig.c Tue Feb 18 18:13:08 2020 (r358077) +++ stable/11/sbin/sconfig/sconfig.c Tue Feb 18 18:15:33 2020 (r358078) @@ -904,9 +904,10 @@ setup_chan (int fd, int argc, char **argv) } else if (strncasecmp ("rs449", argv[i]+5, 5) == 0) { port = 2; ioctl (fd, SERIAL_SETPORT, &port); - } else + } else { fprintf (stderr, "invalid port type\n"); exit (-1); + } #if 1 } else if (strcasecmp ("reset", argv[i]) == 0) { ioctl (fd, SERIAL_RESET, 0); From owner-svn-src-all@freebsd.org Tue Feb 18 18:15:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D94E524222A; Tue, 18 Feb 2020 18:15:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MTYK4pLFz4bVs; Tue, 18 Feb 2020 18:15:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 91C0A24136; Tue, 18 Feb 2020 18:15:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01IIFXkO060527; Tue, 18 Feb 2020 18:15:33 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IIFXvt060526; Tue, 18 Feb 2020 18:15:33 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002181815.01IIFXvt060526@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 18 Feb 2020 18:15:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358078 - in stable: 11/sbin/sconfig 12/sbin/sconfig X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/sbin/sconfig 12/sbin/sconfig X-SVN-Commit-Revision: 358078 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 18:15:34 -0000 Author: dim Date: Tue Feb 18 18:15:33 2020 New Revision: 358078 URL: https://svnweb.freebsd.org/changeset/base/358078 Log: MFC r357873: Merge r357864 from the clang1000-import branch: Fix the following -Werror warning from clang 10.0.0 in sconfig: sbin/sconfig/sconfig.c:909:5: error: misleading indentation; statement is not part of the previous 'else' [-Werror,-Wmisleading-indentation] exit (-1); ^ sbin/sconfig/sconfig.c:907:6: note: previous statement is here } else ^ The intent was to group the exit() call with the previous fprintf() call. Modified: stable/12/sbin/sconfig/sconfig.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sbin/sconfig/sconfig.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sbin/sconfig/sconfig.c ============================================================================== --- stable/12/sbin/sconfig/sconfig.c Tue Feb 18 18:13:08 2020 (r358077) +++ stable/12/sbin/sconfig/sconfig.c Tue Feb 18 18:15:33 2020 (r358078) @@ -904,9 +904,10 @@ setup_chan (int fd, int argc, char **argv) } else if (strncasecmp ("rs449", argv[i]+5, 5) == 0) { port = 2; ioctl (fd, SERIAL_SETPORT, &port); - } else + } else { fprintf (stderr, "invalid port type\n"); exit (-1); + } #if 1 } else if (strcasecmp ("reset", argv[i]) == 0) { ioctl (fd, SERIAL_RESET, 0); From owner-svn-src-all@freebsd.org Tue Feb 18 18:17:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6A872242326; Tue, 18 Feb 2020 18:17:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MTb41vMWz4dWd; Tue, 18 Feb 2020 18:17:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 242E724138; Tue, 18 Feb 2020 18:17:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01IIH3fJ060668; Tue, 18 Feb 2020 18:17:03 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IIH3vZ060667; Tue, 18 Feb 2020 18:17:03 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002181817.01IIH3vZ060667@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 18 Feb 2020 18:17:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358079 - in stable: 11/sys/dev/hptmv 12/sys/dev/hptmv X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/sys/dev/hptmv 12/sys/dev/hptmv X-SVN-Commit-Revision: 358079 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 18:17:04 -0000 Author: dim Date: Tue Feb 18 18:17:03 2020 New Revision: 358079 URL: https://svnweb.freebsd.org/changeset/base/358079 Log: MFC r357976: Merge r357970 from the clang1000-import branch: Fix the following -Werror warning from clang 10.0.0 in hptmv(4): sys/dev/hptmv/ioctl.c:240:4: error: misleading indentation; statement is not part of the previous 'if' [-Werror,-Wmisleading-indentation] _vbus_p=pArray->pVBus; ^ sys/dev/hptmv/ioctl.c:237:10: note: previous statement is here if(!mIsArray(pArray)) ^ This is because the return statement after the if statement was not indented. (Note that this file has been idented assuming 4-space tabs.) Modified: stable/12/sys/dev/hptmv/ioctl.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/dev/hptmv/ioctl.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/dev/hptmv/ioctl.c ============================================================================== --- stable/12/sys/dev/hptmv/ioctl.c Tue Feb 18 18:15:33 2020 (r358078) +++ stable/12/sys/dev/hptmv/ioctl.c Tue Feb 18 18:17:03 2020 (r358079) @@ -235,7 +235,7 @@ int Kernel_DeviceIoControl(_VBUS_ARG return -1; if(!mIsArray(pArray)) - return -1; + return -1; _vbus_p=pArray->pVBus; pAdapter = (IAL_ADAPTER_T *)_vbus_p->OsExt; From owner-svn-src-all@freebsd.org Tue Feb 18 18:17:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8A78F24232C; Tue, 18 Feb 2020 18:17:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MTb431XFz4dWg; Tue, 18 Feb 2020 18:17:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5C98024139; Tue, 18 Feb 2020 18:17:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01IIH49R060674; Tue, 18 Feb 2020 18:17:04 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IIH4Em060673; Tue, 18 Feb 2020 18:17:04 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002181817.01IIH4Em060673@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 18 Feb 2020 18:17:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358079 - in stable: 11/sys/dev/hptmv 12/sys/dev/hptmv X-SVN-Group: stable-11 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/sys/dev/hptmv 12/sys/dev/hptmv X-SVN-Commit-Revision: 358079 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 18:17:04 -0000 Author: dim Date: Tue Feb 18 18:17:03 2020 New Revision: 358079 URL: https://svnweb.freebsd.org/changeset/base/358079 Log: MFC r357976: Merge r357970 from the clang1000-import branch: Fix the following -Werror warning from clang 10.0.0 in hptmv(4): sys/dev/hptmv/ioctl.c:240:4: error: misleading indentation; statement is not part of the previous 'if' [-Werror,-Wmisleading-indentation] _vbus_p=pArray->pVBus; ^ sys/dev/hptmv/ioctl.c:237:10: note: previous statement is here if(!mIsArray(pArray)) ^ This is because the return statement after the if statement was not indented. (Note that this file has been idented assuming 4-space tabs.) Modified: stable/11/sys/dev/hptmv/ioctl.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/dev/hptmv/ioctl.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/dev/hptmv/ioctl.c ============================================================================== --- stable/11/sys/dev/hptmv/ioctl.c Tue Feb 18 18:15:33 2020 (r358078) +++ stable/11/sys/dev/hptmv/ioctl.c Tue Feb 18 18:17:03 2020 (r358079) @@ -233,7 +233,7 @@ int Kernel_DeviceIoControl(_VBUS_ARG return -1; if(!mIsArray(pArray)) - return -1; + return -1; _vbus_p=pArray->pVBus; pAdapter = (IAL_ADAPTER_T *)_vbus_p->OsExt; From owner-svn-src-all@freebsd.org Tue Feb 18 19:41:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 070202444B9; Tue, 18 Feb 2020 19:41:56 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MWSz6BBVz4YrM; Tue, 18 Feb 2020 19:41:55 +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 9E022250A3; Tue, 18 Feb 2020 19:41:55 +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 01IJftdj013555; Tue, 18 Feb 2020 19:41:55 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IJftMi013554; Tue, 18 Feb 2020 19:41:55 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202002181941.01IJftMi013554@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Tue, 18 Feb 2020 19:41:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358080 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 358080 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 19:41:56 -0000 Author: tuexen Date: Tue Feb 18 19:41:55 2020 New Revision: 358080 URL: https://svnweb.freebsd.org/changeset/base/358080 Log: Remove unused function. Modified: head/sys/netinet/sctp_bsd_addr.c Modified: head/sys/netinet/sctp_bsd_addr.c ============================================================================== --- head/sys/netinet/sctp_bsd_addr.c Tue Feb 18 18:17:03 2020 (r358079) +++ head/sys/netinet/sctp_bsd_addr.c Tue Feb 18 19:41:55 2020 (r358080) @@ -363,23 +363,6 @@ sctp_addr_change_event_handler(void *arg __unused, str sctp_addr_change(ifa, cmd); } -void - sctp_add_or_del_interfaces(int (*pred) (struct ifnet *), int add){ - struct ifnet *ifn; - struct ifaddr *ifa; - - IFNET_RLOCK(); - CK_STAILQ_FOREACH(ifn, &MODULE_GLOBAL(ifnet), if_link) { - if (!(*pred) (ifn)) { - continue; - } - CK_STAILQ_FOREACH(ifa, &ifn->if_addrhead, ifa_link) { - sctp_addr_change(ifa, add ? RTM_ADD : RTM_DELETE); - } - } - IFNET_RUNLOCK(); -} - struct mbuf * sctp_get_mbuf_for_msg(unsigned int space_needed, int want_header, int how, int allonebuf, int type) From owner-svn-src-all@freebsd.org Tue Feb 18 19:53:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C1265244BB3; Tue, 18 Feb 2020 19:53:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MWkT3Kylz3G3X; Tue, 18 Feb 2020 19:53:37 +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 029D0253A6; Tue, 18 Feb 2020 19:53:36 +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 01IJraAu020467; Tue, 18 Feb 2020 19:53:36 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IJracb020466; Tue, 18 Feb 2020 19:53:36 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002181953.01IJracb020466@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Tue, 18 Feb 2020 19:53:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358081 - head/sys/netpfil/ipfw X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/netpfil/ipfw X-SVN-Commit-Revision: 358081 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 19:53:38 -0000 Author: hselasky Date: Tue Feb 18 19:53:36 2020 New Revision: 358081 URL: https://svnweb.freebsd.org/changeset/base/358081 Log: Use NET_TASK_INIT() and NET_GROUPTASK_INIT() for drivers that process incoming packets in taskqueue context. This patch extends r357772. Differential Revision: https://reviews.freebsd.org/D23742 Reviewed by: glebius@ Sponsored by: Mellanox Technologies Modified: head/sys/netpfil/ipfw/ip_dummynet.c Modified: head/sys/netpfil/ipfw/ip_dummynet.c ============================================================================== --- head/sys/netpfil/ipfw/ip_dummynet.c Tue Feb 18 19:41:55 2020 (r358080) +++ head/sys/netpfil/ipfw/ip_dummynet.c Tue Feb 18 19:53:36 2020 (r358081) @@ -2550,7 +2550,7 @@ ip_dn_init(void) DN_LOCK_INIT(); - TASK_INIT(&dn_task, 0, dummynet_task, curvnet); + NET_TASK_INIT(&dn_task, 0, dummynet_task, curvnet); dn_tq = taskqueue_create_fast("dummynet", M_WAITOK, taskqueue_thread_enqueue, &dn_tq); taskqueue_start_threads(&dn_tq, 1, PI_NET, "dummynet"); From owner-svn-src-all@freebsd.org Tue Feb 18 20:43:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 311A1245F03; Tue, 18 Feb 2020 20:43:12 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MXqg1Mtdz3Ng8; Tue, 18 Feb 2020 20:43:11 +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 0C2FC25D1C; Tue, 18 Feb 2020 20:43:11 +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 01IKhAqN050007; Tue, 18 Feb 2020 20:43:10 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01IKhArP050006; Tue, 18 Feb 2020 20:43:10 GMT (envelope-from np@FreeBSD.org) Message-Id: <202002182043.01IKhArP050006@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Tue, 18 Feb 2020 20:43:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358082 - head/sys/dev/cxgbe/iw_cxgbe X-SVN-Group: head X-SVN-Commit-Author: np X-SVN-Commit-Paths: head/sys/dev/cxgbe/iw_cxgbe X-SVN-Commit-Revision: 358082 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 20:43:12 -0000 Author: np Date: Tue Feb 18 20:43:10 2020 New Revision: 358082 URL: https://svnweb.freebsd.org/changeset/base/358082 Log: cxgbe/iw_cxgbe: correctly enforce the max reg_mr depth. Reported by: Andrew Zhu @ Netapp Obtained from: Chelsio Communications MFC after: 1 week Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/iw_cxgbe/mem.c Modified: head/sys/dev/cxgbe/iw_cxgbe/mem.c ============================================================================== --- head/sys/dev/cxgbe/iw_cxgbe/mem.c Tue Feb 18 19:53:36 2020 (r358081) +++ head/sys/dev/cxgbe/iw_cxgbe/mem.c Tue Feb 18 20:43:10 2020 (r358082) @@ -682,7 +682,7 @@ static int c4iw_set_page(struct ib_mr *ibmr, u64 addr) { struct c4iw_mr *mhp = to_c4iw_mr(ibmr); - if (unlikely(mhp->mpl_len == mhp->max_mpl_len)) + if (unlikely(mhp->mpl_len == mhp->attr.pbl_size)) return -ENOMEM; mhp->mpl[mhp->mpl_len++] = addr; From owner-svn-src-all@freebsd.org Tue Feb 18 21:25:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 25847246BBA; Tue, 18 Feb 2020 21:25:19 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MYmG506Zz4ZxQ; Tue, 18 Feb 2020 21:25:18 +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 895C0264B7; Tue, 18 Feb 2020 21:25:18 +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 01ILPIxG074280; Tue, 18 Feb 2020 21:25:18 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01ILPH4W074274; Tue, 18 Feb 2020 21:25:17 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202002182125.01ILPH4W074274@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Tue, 18 Feb 2020 21:25:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358083 - in head/sys: netinet netinet6 X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: in head/sys: netinet netinet6 X-SVN-Commit-Revision: 358083 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 21:25:19 -0000 Author: tuexen Date: Tue Feb 18 21:25:17 2020 New Revision: 358083 URL: https://svnweb.freebsd.org/changeset/base/358083 Log: Epochify SCTP. Modified: head/sys/netinet/sctp_os_bsd.h head/sys/netinet/sctp_output.c head/sys/netinet/sctp_usrreq.c head/sys/netinet/sctputil.c head/sys/netinet6/sctp6_usrreq.c Modified: head/sys/netinet/sctp_os_bsd.h ============================================================================== --- head/sys/netinet/sctp_os_bsd.h Tue Feb 18 20:43:10 2020 (r358082) +++ head/sys/netinet/sctp_os_bsd.h Tue Feb 18 21:25:17 2020 (r358083) @@ -412,7 +412,6 @@ typedef struct rtentry sctp_rtentry_t; */ #define SCTP_IP_OUTPUT(result, o_pak, ro, stcb, vrf_id) \ { \ - struct epoch_tracker et; \ int o_flgs = IP_RAWOUTPUT; \ struct sctp_tcb *local_stcb = stcb; \ if (local_stcb && \ @@ -420,24 +419,19 @@ typedef struct rtentry sctp_rtentry_t; local_stcb->sctp_ep->sctp_socket) \ o_flgs |= local_stcb->sctp_ep->sctp_socket->so_options & SO_DONTROUTE; \ m_clrprotoflags(o_pak); \ - NET_EPOCH_ENTER(et); \ result = ip_output(o_pak, NULL, ro, o_flgs, 0, NULL); \ - NET_EPOCH_EXIT(et); \ } #define SCTP_IP6_OUTPUT(result, o_pak, ro, ifp, stcb, vrf_id) \ { \ - struct epoch_tracker et; \ struct sctp_tcb *local_stcb = stcb; \ m_clrprotoflags(o_pak); \ - NET_EPOCH_ENTER(et); \ if (local_stcb && local_stcb->sctp_ep) \ result = ip6_output(o_pak, \ ((struct inpcb *)(local_stcb->sctp_ep))->in6p_outputopts, \ (ro), 0, 0, ifp, NULL); \ else \ result = ip6_output(o_pak, NULL, (ro), 0, 0, ifp, NULL); \ - NET_EPOCH_EXIT(et); \ } struct mbuf * Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Tue Feb 18 20:43:10 2020 (r358082) +++ head/sys/netinet/sctp_output.c Tue Feb 18 21:25:17 2020 (r358083) @@ -12561,6 +12561,7 @@ sctp_lower_sosend(struct socket *so, struct thread *p ) { + struct epoch_tracker et; ssize_t sndlen = 0, max_len, local_add_more; int error, len; struct mbuf *top = NULL; @@ -13062,7 +13063,9 @@ sctp_lower_sosend(struct socket *so, atomic_add_int(&stcb->asoc.refcnt, -1); free_cnt_applied = 0; /* release this lock, otherwise we hang on ourselves */ + NET_EPOCH_ENTER(et); sctp_abort_an_association(stcb->sctp_ep, stcb, mm, SCTP_SO_LOCKED); + NET_EPOCH_EXIT(et); /* now relock the stcb so everything is sane */ hold_tcblock = 0; stcb = NULL; @@ -13366,7 +13369,9 @@ skip_preblock: /* a collision took us forward? */ queue_only = 0; } else { + NET_EPOCH_ENTER(et); sctp_send_initiate(inp, stcb, SCTP_SO_LOCKED); + NET_EPOCH_EXIT(et); SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT); queue_only = 1; } @@ -13424,6 +13429,7 @@ skip_preblock: * the input via the net is happening * and I don't need to start output :-D */ + NET_EPOCH_ENTER(et); if (hold_tcblock == 0) { if (SCTP_TCB_TRYLOCK(stcb)) { hold_tcblock = 1; @@ -13436,6 +13442,7 @@ skip_preblock: stcb, SCTP_OUTPUT_FROM_USR_SEND, SCTP_SO_LOCKED); } + NET_EPOCH_EXIT(et); } if (hold_tcblock == 1) { SCTP_TCB_UNLOCK(stcb); @@ -13609,8 +13616,10 @@ dataless_eof: "%s:%d at %s", __FILE__, __LINE__, __func__); op_err = sctp_generate_cause(SCTP_BASE_SYSCTL(sctp_diag_info_code), msg); + NET_EPOCH_ENTER(et); sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_LOCKED); + NET_EPOCH_EXIT(et); /* * now relock the stcb so everything * is sane @@ -13684,6 +13693,7 @@ skip_out_eof: stcb->asoc.total_flight, stcb->asoc.chunks_on_out_queue, stcb->asoc.total_flight_count); } + NET_EPOCH_ENTER(et); if ((queue_only == 0) && (nagle_applies == 0) && (stcb->asoc.peers_rwnd && un_sent)) { /* we can attempt to send too. */ if (hold_tcblock == 0) { @@ -13719,6 +13729,7 @@ skip_out_eof: (void)sctp_med_chunk_output(inp, stcb, &stcb->asoc, &num_out, &reason, 1, 1, &now, &now_filled, frag_point, SCTP_SO_LOCKED); } + NET_EPOCH_EXIT(et); SCTPDBG(SCTP_DEBUG_OUTPUT1, "USR Send complete qo:%d prw:%d unsent:%d tf:%d cooq:%d toqs:%d err:%d\n", queue_only, stcb->asoc.peers_rwnd, un_sent, stcb->asoc.total_flight, stcb->asoc.chunks_on_out_queue, Modified: head/sys/netinet/sctp_usrreq.c ============================================================================== --- head/sys/netinet/sctp_usrreq.c Tue Feb 18 20:43:10 2020 (r358082) +++ head/sys/netinet/sctp_usrreq.c Tue Feb 18 21:25:17 2020 (r358083) @@ -429,6 +429,7 @@ SYSCTL_PROC(_net_inet_sctp, OID_AUTO, getcred, CTLTYPE static void sctp_abort(struct socket *so) { + struct epoch_tracker et; struct sctp_inpcb *inp; uint32_t flags; @@ -437,6 +438,7 @@ sctp_abort(struct socket *so) return; } + NET_EPOCH_ENTER(et); sctp_must_try_again: flags = inp->sctp_flags; #ifdef SCTP_LOG_CLOSING @@ -466,6 +468,7 @@ sctp_must_try_again: goto sctp_must_try_again; } } + NET_EPOCH_EXIT(et); return; } @@ -526,6 +529,7 @@ sctp_bind(struct socket *so, struct sockaddr *addr, st void sctp_close(struct socket *so) { + struct epoch_tracker et; struct sctp_inpcb *inp; uint32_t flags; @@ -536,6 +540,7 @@ sctp_close(struct socket *so) /* * Inform all the lower layer assoc that we are done. */ + NET_EPOCH_ENTER(et); sctp_must_try_again: flags = inp->sctp_flags; #ifdef SCTP_LOG_CLOSING @@ -578,6 +583,7 @@ sctp_must_try_again: goto sctp_must_try_again; } } + NET_EPOCH_EXIT(et); return; } @@ -660,9 +666,12 @@ connected_type: * definitions) but this is not advisable. This code is used * by FreeBSD when sending a file with sendfile() though. */ + struct epoch_tracker et; int ret; + NET_EPOCH_ENTER(et); ret = sctp_output(inp, inp->pkt, addr, inp->control, p, flags); + NET_EPOCH_EXIT(et); inp->pkt = NULL; inp->control = NULL; return (ret); @@ -689,6 +698,7 @@ sctp_disconnect(struct socket *so) SCTP_INP_RUNLOCK(inp); return (0); } else { + struct epoch_tracker et; struct sctp_association *asoc; struct sctp_tcb *stcb; @@ -706,6 +716,7 @@ sctp_disconnect(struct socket *so) SCTP_INP_RUNLOCK(inp); return (0); } + NET_EPOCH_ENTER(et); if (((so->so_options & SO_LINGER) && (so->so_linger == 0)) || (so->so_rcv.sb_cc > 0)) { @@ -725,6 +736,7 @@ sctp_disconnect(struct socket *so) (void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC, SCTP_FROM_SCTP_USRREQ + SCTP_LOC_3); /* No unlock tcb assoc is gone */ + NET_EPOCH_EXIT(et); return (0); } if (TAILQ_EMPTY(&asoc->send_queue) && @@ -799,12 +811,14 @@ sctp_disconnect(struct socket *so) SCTP_INP_RUNLOCK(inp); (void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC, SCTP_FROM_SCTP_USRREQ + SCTP_LOC_5); + NET_EPOCH_EXIT(et); return (0); } else { sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_CLOSING, SCTP_SO_LOCKED); } } soisdisconnecting(so); + NET_EPOCH_EXIT(et); SCTP_TCB_UNLOCK(stcb); SCTP_INP_RUNLOCK(inp); return (0); @@ -896,6 +910,7 @@ sctp_shutdown(struct socket *so) * SHUT_WR or SHUT_RDWR. This means we put the shutdown flag * against it. */ + struct epoch_tracker et; struct sctp_tcb *stcb; struct sctp_association *asoc; struct sctp_nets *netp; @@ -935,6 +950,7 @@ sctp_shutdown(struct socket *so) SCTP_INP_RUNLOCK(inp); return (0); } + NET_EPOCH_ENTER(et); if (stcb->asoc.alternate) { netp = stcb->asoc.alternate; } else { @@ -974,6 +990,7 @@ sctp_shutdown(struct socket *so) SCTP_INP_RUNLOCK(inp); sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_LOCKED); + NET_EPOCH_EXIT(et); return (0); } } @@ -985,6 +1002,7 @@ sctp_shutdown(struct socket *so) sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_CLOSING, SCTP_SO_LOCKED); SCTP_TCB_UNLOCK(stcb); SCTP_INP_RUNLOCK(inp); + NET_EPOCH_EXIT(et); return (0); } } @@ -6906,11 +6924,12 @@ sctp_setopt(struct socket *so, int optname, void *optv int sctp_ctloutput(struct socket *so, struct sockopt *sopt) { + struct epoch_tracker et; + struct sctp_inpcb *inp; void *optval = NULL; - size_t optsize = 0; void *p; + size_t optsize = 0; int error = 0; - struct sctp_inpcb *inp; if ((sopt->sopt_level == SOL_SOCKET) && (sopt->sopt_name == SO_SETFIB)) { @@ -6957,7 +6976,9 @@ sctp_ctloutput(struct socket *so, struct sockopt *sopt } p = (void *)sopt->sopt_td; if (sopt->sopt_dir == SOPT_SET) { + NET_EPOCH_ENTER(et); error = sctp_setopt(so, sopt->sopt_name, optval, optsize, p); + NET_EPOCH_EXIT(et); } else if (sopt->sopt_dir == SOPT_GET) { error = sctp_getopt(so, sopt->sopt_name, optval, &optsize, p); } else { @@ -6978,6 +6999,7 @@ out: static int sctp_connect(struct socket *so, struct sockaddr *addr, struct thread *p) { + struct epoch_tracker et; int error = 0; int create_lock_on = 0; uint32_t vrf_id; @@ -7037,8 +7059,8 @@ sctp_connect(struct socket *so, struct sockaddr *addr, SCTP_INP_INCR_REF(inp); SCTP_ASOC_CREATE_LOCK(inp); create_lock_on = 1; + NET_EPOCH_ENTER(et); - if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) || (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE)) { /* Should I really unlock ? */ @@ -7122,10 +7144,10 @@ sctp_connect(struct socket *so, struct sockaddr *addr, sctp_send_initiate(inp, stcb, SCTP_SO_LOCKED); SCTP_TCB_UNLOCK(stcb); out_now: + NET_EPOCH_EXIT(et); if (create_lock_on) { SCTP_ASOC_CREATE_UNLOCK(inp); } - SCTP_INP_DECR_REF(inp); return (error); } Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Tue Feb 18 20:43:10 2020 (r358082) +++ head/sys/netinet/sctputil.c Tue Feb 18 21:25:17 2020 (r358083) @@ -1371,11 +1371,13 @@ sctp_expand_mapping_array(struct sctp_association *aso static void sctp_iterator_work(struct sctp_iterator *it) { + struct epoch_tracker et; + struct sctp_inpcb *tinp; int iteration_count = 0; int inp_skip = 0; int first_in = 1; - struct sctp_inpcb *tinp; + NET_EPOCH_ENTER(et); SCTP_INP_INFO_RLOCK(); SCTP_ITERATOR_LOCK(); sctp_it_ctl.cur_it = it; @@ -1393,6 +1395,7 @@ done_with_iterator: (*it->function_atend) (it->pointer, it->val); } SCTP_FREE(it, SCTP_M_ITER); + NET_EPOCH_EXIT(et); return; } select_a_new_ep: @@ -1601,6 +1604,7 @@ sctp_handle_addr_wq(void) void sctp_timeout_handler(void *t) { + struct epoch_tracker et; struct sctp_inpcb *inp; struct sctp_tcb *stcb; struct sctp_nets *net; @@ -1716,6 +1720,7 @@ sctp_timeout_handler(void *t) /* record in stopped what t-o occurred */ tmr->stopped_from = type; + NET_EPOCH_ENTER(et); /* mark as being serviced now */ if (SCTP_OS_TIMER_PENDING(&tmr->timer)) { /* @@ -1910,7 +1915,6 @@ sctp_timeout_handler(void *t) sctp_abort_an_association(inp, stcb, op_err, SCTP_SO_NOT_LOCKED); /* no need to unlock on tcb its gone */ goto out_decr; - case SCTP_TIMER_TYPE_STRRESET: if ((stcb == NULL) || (inp == NULL)) { break; @@ -1943,7 +1947,6 @@ sctp_timeout_handler(void *t) sctp_delete_prim_timer(inp, stcb, net); SCTP_STAT_INCR(sctps_timodelprim); break; - case SCTP_TIMER_TYPE_AUTOCLOSE: if ((stcb == NULL) || (inp == NULL)) { break; @@ -2034,6 +2037,7 @@ out_decr: out_no_decr: SCTPDBG(SCTP_DEBUG_TIMER1, "Timer now complete (type = %d)\n", type); CURVNET_RESTORE(); + NET_EPOCH_EXIT(et); } void @@ -5184,6 +5188,7 @@ sctp_user_rcvd(struct sctp_tcb *stcb, uint32_t *freed_ uint32_t rwnd_req) { /* User pulled some data, do we need a rwnd update? */ + struct epoch_tracker et; int r_unlocked = 0; uint32_t dif, rwnd; struct socket *so = NULL; @@ -5239,11 +5244,13 @@ sctp_user_rcvd(struct sctp_tcb *stcb, uint32_t *freed_ goto out; } SCTP_STAT_INCR(sctps_wu_sacks_sent); + NET_EPOCH_ENTER(et); sctp_send_sack(stcb, SCTP_SO_LOCKED); sctp_chunk_output(stcb->sctp_ep, stcb, SCTP_OUTPUT_FROM_USR_RCVD, SCTP_SO_LOCKED); /* make sure no timer is running */ + NET_EPOCH_EXIT(et); sctp_timer_stop(SCTP_TIMER_TYPE_RECV, stcb->sctp_ep, stcb, NULL, SCTP_FROM_SCTPUTIL + SCTP_LOC_6); SCTP_TCB_UNLOCK(stcb); Modified: head/sys/netinet6/sctp6_usrreq.c ============================================================================== --- head/sys/netinet6/sctp6_usrreq.c Tue Feb 18 20:43:10 2020 (r358082) +++ head/sys/netinet6/sctp6_usrreq.c Tue Feb 18 21:25:17 2020 (r358083) @@ -111,7 +111,7 @@ sctp6_input_with_port(struct mbuf **i_pak, int *offp, } } ip6 = mtod(m, struct ip6_hdr *); - sh = (struct sctphdr *)(mtod(m, caddr_t) + iphlen); + sh = (struct sctphdr *)(mtod(m, caddr_t)+iphlen); ch = (struct sctp_chunkhdr *)((caddr_t)sh + sizeof(struct sctphdr)); offset -= sizeof(struct sctp_chunkhdr); memset(&src, 0, sizeof(struct sockaddr_in6)); @@ -481,6 +481,7 @@ SYSCTL_PROC(_net_inet6_sctp6, OID_AUTO, getcred, CTLTY static void sctp6_abort(struct socket *so) { + struct epoch_tracker et; struct sctp_inpcb *inp; uint32_t flags; @@ -489,6 +490,7 @@ sctp6_abort(struct socket *so) SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP6_USRREQ, EINVAL); return; } + NET_EPOCH_ENTER(et); sctp_must_try_again: flags = inp->sctp_flags; #ifdef SCTP_LOG_CLOSING @@ -517,6 +519,7 @@ sctp_must_try_again: goto sctp_must_try_again; } } + NET_EPOCH_EXIT(et); return; } @@ -776,9 +779,12 @@ connected_type: * optionaly switch back to this code (by changing back the * defininitions but this is not advisable. */ + struct epoch_tracker et; int ret; + NET_EPOCH_ENTER(et); ret = sctp_output(inp, inp->pkt, addr, inp->control, p, flags); + NET_EPOCH_EXIT(et); inp->pkt = NULL; inp->control = NULL; return (ret); @@ -790,6 +796,7 @@ connected_type: static int sctp6_connect(struct socket *so, struct sockaddr *addr, struct thread *p) { + struct epoch_tracker et; uint32_t vrf_id; int error = 0; struct sctp_inpcb *inp; @@ -924,8 +931,10 @@ sctp6_connect(struct socket *so, struct sockaddr *addr } SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT); (void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered); + NET_EPOCH_ENTER(et); sctp_send_initiate(inp, stcb, SCTP_SO_LOCKED); SCTP_TCB_UNLOCK(stcb); + NET_EPOCH_EXIT(et); return (error); } From owner-svn-src-all@freebsd.org Tue Feb 18 21:36:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 21385246E9E; Tue, 18 Feb 2020 21:36:55 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MZ1g02vGz3PYb; Tue, 18 Feb 2020 21:36:55 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EFA12266BB; Tue, 18 Feb 2020 21:36:54 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01ILasuR080110; Tue, 18 Feb 2020 21:36:54 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01ILasv1080108; Tue, 18 Feb 2020 21:36:54 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <202002182136.01ILasv1080108@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Tue, 18 Feb 2020 21:36:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358084 - in stable/12: share/man/man4 sys/dev/hme X-SVN-Group: stable-12 X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: in stable/12: share/man/man4 sys/dev/hme X-SVN-Commit-Revision: 358084 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 21:36:55 -0000 Author: brooks Date: Tue Feb 18 21:36:54 2020 New Revision: 358084 URL: https://svnweb.freebsd.org/changeset/base/358084 Log: MFC r357788: Mark hme(4) as deprecated. It was saved from the initial purge of drivers in fcp-101 due to being the onboard Ethernet device on a number of sparc64 machines. Now that sparc64 is gone, it serves little purpose (PCI cards exist, but are rare and are unlikely to have been deployed outside Sun systems). Modified: stable/12/share/man/man4/hme.4 stable/12/sys/dev/hme/if_hme.c Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man4/hme.4 ============================================================================== --- stable/12/share/man/man4/hme.4 Tue Feb 18 21:25:17 2020 (r358083) +++ stable/12/share/man/man4/hme.4 Tue Feb 18 21:36:54 2020 (r358084) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 14, 2009 +.Dd February 12, 2020 .Dt HME 4 .Os .Sh NAME @@ -50,6 +50,14 @@ module at boot time, place the following line in .Bd -literal -offset indent if_hme_load="YES" .Ed +.Sh DEPRECATION NOTICE +The +.Nm +driver is not present in +.Fx 13.0 +and later. +See https://github.com/freebsd/fcp/blob/master/fcp-0101.md for more +information. .Sh DESCRIPTION The .Nm Modified: stable/12/sys/dev/hme/if_hme.c ============================================================================== --- stable/12/sys/dev/hme/if_hme.c Tue Feb 18 21:25:17 2020 (r358083) +++ stable/12/sys/dev/hme/if_hme.c Tue Feb 18 21:36:54 2020 (r358084) @@ -373,6 +373,8 @@ hme_config(struct hme_softc *sc) ifp->if_capabilities |= IFCAP_VLAN_MTU | IFCAP_HWCSUM; ifp->if_hwassist |= sc->sc_csum_features; ifp->if_capenable |= IFCAP_VLAN_MTU | IFCAP_HWCSUM; + + gone_in_dev(sc->sc_dev, 13, "10/100 NIC almost exclusively for sparc64"); return (0); fail_txdesc: From owner-svn-src-all@freebsd.org Tue Feb 18 23:56:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F3FA1249469; Tue, 18 Feb 2020 23:56:23 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Md6b6CwMz3N6S; Tue, 18 Feb 2020 23:56:23 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C9DA027FDE; Tue, 18 Feb 2020 23:56:23 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01INuNlH062948; Tue, 18 Feb 2020 23:56:23 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01INuNZc062947; Tue, 18 Feb 2020 23:56:23 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202002182356.01INuNZc062947@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Tue, 18 Feb 2020 23:56:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358085 - head/sys/ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/ufs/ffs X-SVN-Commit-Revision: 358085 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Feb 2020 23:56:24 -0000 Author: mckusick Date: Tue Feb 18 23:56:23 2020 New Revision: 358085 URL: https://svnweb.freebsd.org/changeset/base/358085 Log: Additional KASSERTs to ensure the consistency of the soft updates indirdep structure. No functional change. Tested by: Peter Holm (as part of a larger patch) Sponsored by: Netflix Modified: head/sys/ufs/ffs/ffs_softdep.c Modified: head/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- head/sys/ufs/ffs/ffs_softdep.c Tue Feb 18 21:36:54 2020 (r358084) +++ head/sys/ufs/ffs/ffs_softdep.c Tue Feb 18 23:56:23 2020 (r358085) @@ -8224,8 +8224,13 @@ indir_trunc(freework, dbn, lbn) * If we're goingaway, free the indirdep. Otherwise it will * linger until the write completes. */ - if (goingaway) + if (goingaway) { + KASSERT(indirdep->ir_savebp == bp, + ("indir_trunc: losing ir_savebp %p", + indirdep->ir_savebp)); + indirdep->ir_savebp = NULL; free_indirdep(indirdep); + } } FREE_LOCK(ump); /* Initialize pointers depending on block size. */ @@ -10739,6 +10744,8 @@ free_indirdep(indirdep) ("free_indirdep: %p still on newblk list.", indirdep)); KASSERT(indirdep->ir_saveddata == NULL, ("free_indirdep: %p still has saved data.", indirdep)); + KASSERT(indirdep->ir_savebp == NULL, + ("free_indirdep: %p still has savebp buffer.", indirdep)); if (indirdep->ir_state & ONWORKLIST) WORKLIST_REMOVE(&indirdep->ir_list); WORKITEM_FREE(indirdep, D_INDIRDEP); From owner-svn-src-all@freebsd.org Wed Feb 19 00:49:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3250E24AAF4; Wed, 19 Feb 2020 00:49:00 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MfHJ0Dcbz3HMn; Wed, 19 Feb 2020 00:49:00 +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 D276C96E; Wed, 19 Feb 2020 00:48:59 +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 01J0mxDE092620; Wed, 19 Feb 2020 00:48:59 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J0mx4a092619; Wed, 19 Feb 2020 00:48:59 GMT (envelope-from np@FreeBSD.org) Message-Id: <202002190048.01J0mx4a092619@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Wed, 19 Feb 2020 00:48:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358086 - 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: 358086 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 00:49:00 -0000 Author: np Date: Wed Feb 19 00:48:58 2020 New Revision: 358086 URL: https://svnweb.freebsd.org/changeset/base/358086 Log: cxgbe(4): Congestion drops are maintained per E-channel and not per buffer group. This fixes a bug where congestion drops on port 1 of a T6 card would incorrectly be counted as drops on port 0. MFC after: 1 week Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/common/t4_hw.c head/sys/dev/cxgbe/t4_main.c Modified: head/sys/dev/cxgbe/common/t4_hw.c ============================================================================== --- head/sys/dev/cxgbe/common/t4_hw.c Tue Feb 18 23:56:23 2020 (r358085) +++ head/sys/dev/cxgbe/common/t4_hw.c Wed Feb 19 00:48:58 2020 (r358086) @@ -6781,9 +6781,10 @@ static unsigned int t4_get_mps_bg_map(struct adapter * static unsigned int t4_get_rx_e_chan_map(struct adapter *adap, int idx) { u32 n = G_NUMPORTS(t4_read_reg(adap, A_MPS_CMN_CTL)); + const u32 all_chan = (1 << adap->chip_params->nchan) - 1; if (n == 0) - return idx == 0 ? 0xf : 0; + return idx == 0 ? all_chan : 0; if (n == 1 && chip_id(adap) <= CHELSIO_T5) return idx < 2 ? (3 << (2 * idx)) : 0; return 1 << idx; Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Tue Feb 18 23:56:23 2020 (r358085) +++ head/sys/dev/cxgbe/t4_main.c Wed Feb 19 00:48:58 2020 (r358086) @@ -6137,7 +6137,7 @@ vi_refresh_stats(struct adapter *sc, struct vi_info *v static void cxgbe_refresh_stats(struct adapter *sc, struct port_info *pi) { - u_int i, v, tnl_cong_drops, bg_map; + u_int i, v, tnl_cong_drops, chan_map; struct timeval tv; const struct timeval interval = {0, 250000}; /* 250ms */ @@ -6148,15 +6148,15 @@ cxgbe_refresh_stats(struct adapter *sc, struct port_in tnl_cong_drops = 0; t4_get_port_stats(sc, pi->tx_chan, &pi->stats); - bg_map = pi->mps_bg_map; - while (bg_map) { - i = ffs(bg_map) - 1; + chan_map = pi->rx_e_chan_map; + while (chan_map) { + i = ffs(chan_map) - 1; mtx_lock(&sc->reg_lock); t4_read_indirect(sc, A_TP_MIB_INDEX, A_TP_MIB_DATA, &v, 1, A_TP_MIB_TNL_CNG_DROP_0 + i); mtx_unlock(&sc->reg_lock); tnl_cong_drops += v; - bg_map &= ~(1 << i); + chan_map &= ~(1 << i); } pi->tnl_cong_drops = tnl_cong_drops; getmicrotime(&pi->last_refreshed); @@ -10292,7 +10292,7 @@ read_i2c(struct adapter *sc, struct t4_i2c_data *i2cd) static int clear_stats(struct adapter *sc, u_int port_id) { - int i, v, bg_map; + int i, v, chan_map; struct port_info *pi; struct vi_info *vi; struct sge_rxq *rxq; @@ -10317,13 +10317,13 @@ clear_stats(struct adapter *sc, u_int port_id) if (vi->flags & VI_INIT_DONE) t4_clr_vi_stats(sc, vi->vin); } - bg_map = pi->mps_bg_map; + chan_map = pi->rx_e_chan_map; v = 0; /* reuse */ - while (bg_map) { - i = ffs(bg_map) - 1; + while (chan_map) { + i = ffs(chan_map) - 1; t4_write_indirect(sc, A_TP_MIB_INDEX, A_TP_MIB_DATA, &v, 1, A_TP_MIB_TNL_CNG_DROP_0 + i); - bg_map &= ~(1 << i); + chan_map &= ~(1 << i); } mtx_unlock(&sc->reg_lock); From owner-svn-src-all@freebsd.org Wed Feb 19 01:46:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7548A24BD0C; Wed, 19 Feb 2020 01:46:48 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MgZ038gYz450C; Wed, 19 Feb 2020 01:46:48 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5DDEF143C; Wed, 19 Feb 2020 01:46:48 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01J1kmrC028269; Wed, 19 Feb 2020 01:46:48 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J1khYT028247; Wed, 19 Feb 2020 01:46:43 GMT (envelope-from mm@FreeBSD.org) Message-Id: <202002190146.01J1khYT028247@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Wed, 19 Feb 2020 01:46:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358087 - in stable/12: contrib/libarchive contrib/libarchive/cat contrib/libarchive/cat/test contrib/libarchive/cpio contrib/libarchive/cpio/test contrib/libarchive/libarchive contrib/... X-SVN-Group: stable-12 X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in stable/12: contrib/libarchive contrib/libarchive/cat contrib/libarchive/cat/test contrib/libarchive/cpio contrib/libarchive/cpio/test contrib/libarchive/libarchive contrib/libarchive/libarchive/tes... X-SVN-Commit-Revision: 358087 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 01:46:48 -0000 Author: mm Date: Wed Feb 19 01:46:43 2020 New Revision: 358087 URL: https://svnweb.freebsd.org/changeset/base/358087 Log: MFC r356212,r356366,r356416,r357785 Update libarchive to version 3.4.2 Relevant vendor changes (r356212): Issue #351: Refactor and implement private state logic for write filters PR #1252: RAR5 reader - verify window size for solid files (OSS-Fuzz 15482) PR #1255: zip writer - don't append unused NUL for directories PR #1260: Fix sparse file offset overflow on 32-bit systems PR #1263: UNICODE filename support for reading lha/lzh format Issue #1276: Bugfix and optimize archive_wstring_append_from_mbs() PR #1288: Add the "xattrhdr" option to pax write options PR #1295: 7z reader - fix reading archives with digests in PackInfo PR #1296: RAR5 reader - verify window size for multivolume archives PR #1297: ZIP reader - support LZMA_STREAM_END marker in 'lzma alone' files Issue #1298: Fix a heap-buffer-overflow in archive_string_append_from_wcs() OSS-Fuzz 19360, 19362: LHA reader - plug two memory leaks on error Fix possible off-by-one when dealing with readlink(2) Relevant vendor changes (r356366): Issue #1302: Plug memory leak on failure of archive_write_client_open() Relevant vendor changes (r356416): Issue #1302: Re-do fix for archive_write_client_open() Relevant vendor changes (r357785): PR #1289: atomic extraction support (bsdtar -x --safe-writes) PR #1308: big endian fix for UTF16 support in LHA reader PR #1326: reject RAR5 files that declare invalid header flags Issue #987: fix support 7z archive entries with Delta filter Issue #1317: fix compression output buffer handling in XAR writer Issue #1319: fix uname or gname longer than 32 characters in pax writer Issue #1325: fix use after free when archiving hardlinks in ISO9660 or XAR Use localtime_r() and gmtime_r() instead of localtime() and gmtime() Added: stable/12/contrib/libarchive/libarchive/archive_write_set_format_private.h - copied unchanged from r357785, head/contrib/libarchive/libarchive/archive_write_set_format_private.h stable/12/contrib/libarchive/libarchive/test/test_pax_xattr_header.c - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header.c stable/12/contrib/libarchive/libarchive/test/test_pax_xattr_header_all.tar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header_all.tar.uu stable/12/contrib/libarchive/libarchive/test/test_pax_xattr_header_libarchive.tar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header_libarchive.tar.uu stable/12/contrib/libarchive/libarchive/test/test_pax_xattr_header_schily.tar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header_schily.tar.uu stable/12/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu - copied unchanged from r357785, head/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu stable/12/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu - copied unchanged from r357785, head/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu stable/12/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu stable/12/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.c - copied, changed from r356212, head/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.c stable/12/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.c - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.c stable/12/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu stable/12/contrib/libarchive/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu - copied unchanged from r357785, head/contrib/libarchive/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu stable/12/contrib/libarchive/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu stable/12/contrib/libarchive/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu stable/12/contrib/libarchive/tar/test/test_option_safe_writes.c - copied unchanged from r357785, head/contrib/libarchive/tar/test/test_option_safe_writes.c Modified: stable/12/contrib/libarchive/NEWS stable/12/contrib/libarchive/cat/bsdcat.h stable/12/contrib/libarchive/cat/test/test_0.c stable/12/contrib/libarchive/cpio/cpio.c stable/12/contrib/libarchive/cpio/test/test_basic.c stable/12/contrib/libarchive/cpio/test/test_format_newc.c stable/12/contrib/libarchive/libarchive/archive.h stable/12/contrib/libarchive/libarchive/archive_acl_private.h stable/12/contrib/libarchive/libarchive/archive_blake2.h stable/12/contrib/libarchive/libarchive/archive_blake2_impl.h stable/12/contrib/libarchive/libarchive/archive_cmdline_private.h stable/12/contrib/libarchive/libarchive/archive_crc32.h stable/12/contrib/libarchive/libarchive/archive_cryptor.c stable/12/contrib/libarchive/libarchive/archive_cryptor_private.h stable/12/contrib/libarchive/libarchive/archive_digest.c stable/12/contrib/libarchive/libarchive/archive_digest_private.h stable/12/contrib/libarchive/libarchive/archive_endian.h stable/12/contrib/libarchive/libarchive/archive_entry.c stable/12/contrib/libarchive/libarchive/archive_entry.h stable/12/contrib/libarchive/libarchive/archive_entry_acl.3 stable/12/contrib/libarchive/libarchive/archive_entry_locale.h stable/12/contrib/libarchive/libarchive/archive_entry_private.h stable/12/contrib/libarchive/libarchive/archive_getdate.c stable/12/contrib/libarchive/libarchive/archive_getdate.h stable/12/contrib/libarchive/libarchive/archive_hmac.c stable/12/contrib/libarchive/libarchive/archive_hmac_private.h stable/12/contrib/libarchive/libarchive/archive_openssl_evp_private.h stable/12/contrib/libarchive/libarchive/archive_openssl_hmac_private.h stable/12/contrib/libarchive/libarchive/archive_options_private.h stable/12/contrib/libarchive/libarchive/archive_pack_dev.c stable/12/contrib/libarchive/libarchive/archive_pack_dev.h stable/12/contrib/libarchive/libarchive/archive_pathmatch.h stable/12/contrib/libarchive/libarchive/archive_platform_acl.h stable/12/contrib/libarchive/libarchive/archive_platform_xattr.h stable/12/contrib/libarchive/libarchive/archive_ppmd7.c stable/12/contrib/libarchive/libarchive/archive_ppmd7_private.h stable/12/contrib/libarchive/libarchive/archive_ppmd8_private.h stable/12/contrib/libarchive/libarchive/archive_ppmd_private.h stable/12/contrib/libarchive/libarchive/archive_private.h stable/12/contrib/libarchive/libarchive/archive_random_private.h stable/12/contrib/libarchive/libarchive/archive_rb.h stable/12/contrib/libarchive/libarchive/archive_read.c stable/12/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c stable/12/contrib/libarchive/libarchive/archive_read_disk_posix.c stable/12/contrib/libarchive/libarchive/archive_read_disk_private.h stable/12/contrib/libarchive/libarchive/archive_read_private.h stable/12/contrib/libarchive/libarchive/archive_read_set_options.3 stable/12/contrib/libarchive/libarchive/archive_read_support_filter_uu.c stable/12/contrib/libarchive/libarchive/archive_read_support_format_7zip.c stable/12/contrib/libarchive/libarchive/archive_read_support_format_lha.c stable/12/contrib/libarchive/libarchive/archive_read_support_format_mtree.c stable/12/contrib/libarchive/libarchive/archive_read_support_format_rar.c stable/12/contrib/libarchive/libarchive/archive_read_support_format_rar5.c stable/12/contrib/libarchive/libarchive/archive_read_support_format_warc.c stable/12/contrib/libarchive/libarchive/archive_read_support_format_xar.c stable/12/contrib/libarchive/libarchive/archive_read_support_format_zip.c stable/12/contrib/libarchive/libarchive/archive_string.c stable/12/contrib/libarchive/libarchive/archive_string.h stable/12/contrib/libarchive/libarchive/archive_string_composition.h stable/12/contrib/libarchive/libarchive/archive_util.c stable/12/contrib/libarchive/libarchive/archive_write.c stable/12/contrib/libarchive/libarchive/archive_write_add_filter_b64encode.c stable/12/contrib/libarchive/libarchive/archive_write_add_filter_bzip2.c stable/12/contrib/libarchive/libarchive/archive_write_add_filter_compress.c stable/12/contrib/libarchive/libarchive/archive_write_add_filter_gzip.c stable/12/contrib/libarchive/libarchive/archive_write_add_filter_lz4.c stable/12/contrib/libarchive/libarchive/archive_write_add_filter_lzop.c stable/12/contrib/libarchive/libarchive/archive_write_add_filter_program.c stable/12/contrib/libarchive/libarchive/archive_write_add_filter_uuencode.c stable/12/contrib/libarchive/libarchive/archive_write_add_filter_xz.c stable/12/contrib/libarchive/libarchive/archive_write_add_filter_zstd.c stable/12/contrib/libarchive/libarchive/archive_write_disk.3 stable/12/contrib/libarchive/libarchive/archive_write_disk_posix.c stable/12/contrib/libarchive/libarchive/archive_write_disk_private.h stable/12/contrib/libarchive/libarchive/archive_write_private.h stable/12/contrib/libarchive/libarchive/archive_write_set_format.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_7zip.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_ar.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_cpio.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_pax.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_shar.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_ustar.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_v7tar.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_warc.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_xar.c stable/12/contrib/libarchive/libarchive/archive_write_set_format_zip.c stable/12/contrib/libarchive/libarchive/archive_write_set_options.3 stable/12/contrib/libarchive/libarchive/archive_xxhash.h stable/12/contrib/libarchive/libarchive/filter_fork.h stable/12/contrib/libarchive/libarchive/test/test_archive_write_set_format_filter_by_ext.c stable/12/contrib/libarchive/libarchive/test/test_compat_zip.c stable/12/contrib/libarchive/libarchive/test/test_fuzz.c stable/12/contrib/libarchive/libarchive/test/test_open_failure.c stable/12/contrib/libarchive/libarchive/test/test_open_fd.c stable/12/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c stable/12/contrib/libarchive/libarchive/test/test_read_extract.c stable/12/contrib/libarchive/libarchive/test/test_read_format_7zip.c stable/12/contrib/libarchive/libarchive/test/test_read_format_gtar_sparse.c stable/12/contrib/libarchive/libarchive/test/test_read_format_rar5.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_7075_utf8_paths.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_extra_padding.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_high_compression.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_jar.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_malformed.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_msdos.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_nested.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_nofiletype.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_padded.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c stable/12/contrib/libarchive/libarchive/test/test_read_format_zip_zip64.c stable/12/contrib/libarchive/libarchive/test/test_read_pax_truncated.c stable/12/contrib/libarchive/libarchive/test/test_read_truncated_filter.c stable/12/contrib/libarchive/libarchive/test/test_sparse_basic.c stable/12/contrib/libarchive/libarchive/test/test_write_disk.c stable/12/contrib/libarchive/libarchive/test/test_write_format_cpio_empty.c stable/12/contrib/libarchive/libarchive/test/test_write_format_pax.c stable/12/contrib/libarchive/libarchive/test/test_write_format_shar_empty.c stable/12/contrib/libarchive/libarchive/test/test_write_format_tar.c stable/12/contrib/libarchive/libarchive/test/test_write_format_tar_sparse.c stable/12/contrib/libarchive/libarchive/test/test_write_format_xar.c stable/12/contrib/libarchive/libarchive/test/test_write_format_zip_file.c stable/12/contrib/libarchive/libarchive/test/test_write_format_zip_file_zip64.c stable/12/contrib/libarchive/libarchive_fe/err.h stable/12/contrib/libarchive/tar/bsdtar.1 stable/12/contrib/libarchive/tar/bsdtar.c stable/12/contrib/libarchive/tar/bsdtar.h stable/12/contrib/libarchive/tar/cmdline.c stable/12/contrib/libarchive/tar/test/test_basic.c stable/12/contrib/libarchive/tar/test/test_copy.c stable/12/contrib/libarchive/tar/test/test_option_C_upper.c stable/12/contrib/libarchive/tar/test/test_option_s.c stable/12/contrib/libarchive/tar/util.c stable/12/contrib/libarchive/test_utils/test_common.h stable/12/contrib/libarchive/test_utils/test_main.c stable/12/lib/libarchive/tests/Makefile stable/12/usr.bin/bsdcat/Makefile stable/12/usr.bin/cpio/Makefile stable/12/usr.bin/tar/Makefile stable/12/usr.bin/tar/tests/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/libarchive/NEWS ============================================================================== --- stable/12/contrib/libarchive/NEWS Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/NEWS Wed Feb 19 01:46:43 2020 (r358087) @@ -1,3 +1,17 @@ +Feb 11, 2020: libarchive 3.4.2 released + +Jan 23, 2020: Important fixes for writing XAR archives + +Jan 20, 2020: New tar option: --safe-writes (atomical file extraction) + +Jan 03, 2020: Support mbed TLS (PolarSSL) as optional crypto provider + +Dec 30, 2019: libarchive 3.4.1 released + +Dec 11, 2019: New pax write option "xattrhdr" + +Nov 17, 2019: Unicode filename support for reading lha/lzh archives + Jun 11, 2019: libarchive 3.4.0 released May 18, 2019: Fixes for reading Android APK and JAR archives Modified: stable/12/contrib/libarchive/cat/bsdcat.h ============================================================================== --- stable/12/contrib/libarchive/cat/bsdcat.h Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/cat/bsdcat.h Wed Feb 19 01:46:43 2020 (r358087) @@ -23,6 +23,9 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef BSDCAT_H_INCLUDED +#define BSDCAT_H_INCLUDED + #if defined(PLATFORM_CONFIG_H) /* Use hand-built config.h in environments that need it. */ #include PLATFORM_CONFIG_H @@ -54,3 +57,5 @@ void usage(FILE *stream, int eval); void bsdcat_next(void); void bsdcat_print_error(void); void bsdcat_read_to_stdout(const char* filename); + +#endif Modified: stable/12/contrib/libarchive/cat/test/test_0.c ============================================================================== --- stable/12/contrib/libarchive/cat/test/test_0.c Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/cat/test/test_0.c Wed Feb 19 01:46:43 2020 (r358087) @@ -59,7 +59,7 @@ DEFINE_TEST(test_0) * we know some option that will succeed. */ if (0 != systemf("%s --version >" DEV_NULL, testprog)) { - failure("Unable to successfully run: %s --version\n", testprog, testprog); + failure("Unable to successfully run: %s --version\n", testprog); assert(0); } Modified: stable/12/contrib/libarchive/cpio/cpio.c ============================================================================== --- stable/12/contrib/libarchive/cpio/cpio.c Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/cpio/cpio.c Wed Feb 19 01:46:43 2020 (r358087) @@ -1139,6 +1139,14 @@ list_item_verbose(struct cpio *cpio, struct archive_en const char *fmt; time_t mtime; static time_t now; + struct tm *ltime; +#if defined(HAVE_LOCALTIME_R) || defined(HAVE__LOCALTIME64_S) + struct tm tmbuf; +#endif +#if defined(HAVE__LOCALTIME64_S) + errno_t terr; + __time64_t tmptime; +#endif if (!now) time(&now); @@ -1186,7 +1194,19 @@ list_item_verbose(struct cpio *cpio, struct archive_en else fmt = cpio->day_first ? "%e %b %H:%M" : "%b %e %H:%M"; #endif - strftime(date, sizeof(date), fmt, localtime(&mtime)); +#if defined(HAVE_LOCALTIME_R) + ltime = localtime_r(&mtime, &tmbuf); +#elif defined(HAVE__LOCALTIME64_S) + tmptime = mtime; + terr = _localtime64_s(&tmbuf, &tmptime); + if (terr) + ltime = NULL; + else + ltime = &tmbuf; +#else + ltime = localtime(&mtime); +#endif + strftime(date, sizeof(date), fmt, ltime); fprintf(out, "%s%3d %-8s %-8s %8s %12s %s", archive_entry_strmode(entry), Modified: stable/12/contrib/libarchive/cpio/test/test_basic.c ============================================================================== --- stable/12/contrib/libarchive/cpio/test/test_basic.c Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/cpio/test/test_basic.c Wed Feb 19 01:46:43 2020 (r358087) @@ -33,15 +33,15 @@ verify_files(const char *msg) */ /* Regular file with 2 links. */ - failure(msg); + failure("%s", msg); assertIsReg("file", 0644); - failure(msg); + failure("%s", msg); assertFileSize("file", 10); - failure(msg); + failure("%s", msg); assertFileNLinks("file", 2); /* Another name for the same file. */ - failure(msg); + failure("%s", msg); assertIsHardlink("linkfile", "file"); /* Symlink */ @@ -49,11 +49,11 @@ verify_files(const char *msg) assertIsSymlink("symlink", "file", 0); /* Another file with 1 link and different permissions. */ - failure(msg); + failure("%s", msg); assertIsReg("file2", 0777); - failure(msg); + failure("%s", msg); assertFileSize("file2", 10); - failure(msg); + failure("%s", msg); assertFileNLinks("file2", 1); /* dir */ Modified: stable/12/contrib/libarchive/cpio/test/test_format_newc.c ============================================================================== --- stable/12/contrib/libarchive/cpio/test/test_format_newc.c Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/cpio/test/test_format_newc.c Wed Feb 19 01:46:43 2020 (r358087) @@ -205,9 +205,11 @@ DEFINE_TEST(test_format_newc) gid = from_hex(e + 30, 8); /* gid */ assertEqualMem(e + 38, "00000003", 8); /* nlink */ t = from_hex(e + 46, 8); /* mtime */ - failure("t=0x%08x now=0x%08x=%d", t, now, now); + failure("t=%#08jx now=%#08jx=%jd", (intmax_t)t, (intmax_t)now, + (intmax_t)now); assert(t <= now); /* File wasn't created in future. */ - failure("t=0x%08x now - 2=0x%08x = %d", t, now - 2, now - 2); + failure("t=%#08jx now - 2=%#08jx=%jd", (intmax_t)t, (intmax_t)now - 2, + (intmax_t)now - 2); assert(t >= now - 2); /* File was created w/in last 2 secs. */ failure("newc format stores body only with last appearance of a link\n" " first appearance should be empty, so this file size\n" @@ -243,7 +245,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000001", 8); /* nlink */ t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created" + " at t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000005", 8); /* File size */ fs = from_hex(e + 54, 8); @@ -278,7 +281,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(nlinks("dir"), from_hex(e + 38, 8)); /* nlinks */ #endif t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created at" + "t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000000", 8); /* File size */ fs = from_hex(e + 54, 8); @@ -311,7 +315,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000003", 8); /* nlink */ t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created at" + "t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualInt(10, from_hex(e + 54, 8)); /* File size */ fs = from_hex(e + 54, 8); Modified: stable/12/contrib/libarchive/libarchive/archive.h ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive.h Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive.h Wed Feb 19 01:46:43 2020 (r358087) @@ -36,7 +36,7 @@ * assert that ARCHIVE_VERSION_NUMBER >= 2012108. */ /* Note: Compiler will complain if this does not match archive_entry.h! */ -#define ARCHIVE_VERSION_NUMBER 3004000 +#define ARCHIVE_VERSION_NUMBER 3004002 #include #include /* for wchar_t */ @@ -155,7 +155,7 @@ __LA_DECL int archive_version_number(void); /* * Textual name/version of the library, useful for version displays. */ -#define ARCHIVE_VERSION_ONLY_STRING "3.4.0" +#define ARCHIVE_VERSION_ONLY_STRING "3.4.2" #define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING __LA_DECL const char * archive_version_string(void); @@ -693,6 +693,8 @@ __LA_DECL int archive_read_set_passphrase_callback(str #define ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS (0x10000) /* Default: Do not clear no-change flags when unlinking object */ #define ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS (0x20000) +/* Default: Do not extract atomically (using rename) */ +#define ARCHIVE_EXTRACT_SAFE_WRITES (0x40000) __LA_DECL int archive_read_extract(struct archive *, struct archive_entry *, int flags); Modified: stable/12/contrib/libarchive/libarchive/archive_acl_private.h ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_acl_private.h Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_acl_private.h Wed Feb 19 01:46:43 2020 (r358087) @@ -25,12 +25,12 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_ACL_PRIVATE_H_INCLUDED +#define ARCHIVE_ACL_PRIVATE_H_INCLUDED + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif - -#ifndef ARCHIVE_ACL_PRIVATE_H_INCLUDED -#define ARCHIVE_ACL_PRIVATE_H_INCLUDED #include "archive_string.h" Modified: stable/12/contrib/libarchive/libarchive/archive_blake2.h ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_blake2.h Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_blake2.h Wed Feb 19 01:46:43 2020 (r358087) @@ -12,8 +12,9 @@ More information about the BLAKE2 hash function can be found at https://blake2.net. */ -#ifndef BLAKE2_H -#define BLAKE2_H + +#ifndef ARCHIVE_BLAKE2_H +#define ARCHIVE_BLAKE2_H #include #include Modified: stable/12/contrib/libarchive/libarchive/archive_blake2_impl.h ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_blake2_impl.h Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_blake2_impl.h Wed Feb 19 01:46:43 2020 (r358087) @@ -12,8 +12,9 @@ More information about the BLAKE2 hash function can be found at https://blake2.net. */ -#ifndef BLAKE2_IMPL_H -#define BLAKE2_IMPL_H + +#ifndef ARCHIVE_BLAKE2_IMPL_H +#define ARCHIVE_BLAKE2_IMPL_H #include #include Modified: stable/12/contrib/libarchive/libarchive/archive_cmdline_private.h ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_cmdline_private.h Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_cmdline_private.h Wed Feb 19 01:46:43 2020 (r358087) @@ -25,14 +25,14 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_CMDLINE_PRIVATE_H +#define ARCHIVE_CMDLINE_PRIVATE_H + #ifndef __LIBARCHIVE_BUILD #ifndef __LIBARCHIVE_TEST #error This header is only to be used internally to libarchive. #endif #endif - -#ifndef ARCHIVE_CMDLINE_PRIVATE_H -#define ARCHIVE_CMDLINE_PRIVATE_H struct archive_cmdline { char *path; Modified: stable/12/contrib/libarchive/libarchive/archive_crc32.h ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_crc32.h Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_crc32.h Wed Feb 19 01:46:43 2020 (r358087) @@ -25,6 +25,9 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_CRC32_H +#define ARCHIVE_CRC32_H + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif @@ -76,3 +79,5 @@ crc32(unsigned long crc, const void *_p, size_t len) crc = crc_tbl[(crc ^ *p++) & 0xff] ^ (crc >> 8); return (crc ^ 0xffffffffUL); } + +#endif Modified: stable/12/contrib/libarchive/libarchive/archive_cryptor.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_cryptor.c Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_cryptor.c Wed Feb 19 01:46:43 2020 (r358087) @@ -85,6 +85,35 @@ pbkdf2_sha1(const char *pw, size_t pw_len, const uint8 return (BCRYPT_SUCCESS(status)) ? 0: -1; } +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_PKCS5_H) + +static int +pbkdf2_sha1(const char *pw, size_t pw_len, const uint8_t *salt, + size_t salt_len, unsigned rounds, uint8_t *derived_key, + size_t derived_key_len) +{ + mbedtls_md_context_t ctx; + const mbedtls_md_info_t *info; + int ret; + + mbedtls_md_init(&ctx); + info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); + if (info == NULL) { + mbedtls_md_free(&ctx); + return (-1); + } + ret = mbedtls_md_setup(&ctx, info, 1); + if (ret != 0) { + mbedtls_md_free(&ctx); + return (-1); + } + ret = mbedtls_pkcs5_pbkdf2_hmac(&ctx, (const unsigned char *)pw, + pw_len, salt, salt_len, rounds, derived_key_len, derived_key); + + mbedtls_md_free(&ctx); + return (ret); +} + #elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_PBKDF2_H) static int @@ -265,6 +294,39 @@ aes_ctr_release(archive_crypto_ctx *ctx) HeapFree(GetProcessHeap(), 0, ctx->keyObj); ctx->keyObj = NULL; } + memset(ctx, 0, sizeof(*ctx)); + return 0; +} + +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) + +static int +aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) +{ + mbedtls_aes_init(&ctx->ctx); + ctx->key_len = key_len; + memcpy(ctx->key, key, key_len); + memset(ctx->nonce, 0, sizeof(ctx->nonce)); + ctx->encr_pos = AES_BLOCK_SIZE; + return 0; +} + +static int +aes_ctr_encrypt_counter(archive_crypto_ctx *ctx) +{ + if (mbedtls_aes_setkey_enc(&ctx->ctx, ctx->key, + ctx->key_len * 8) != 0) + return (-1); + if (mbedtls_aes_crypt_ecb(&ctx->ctx, MBEDTLS_AES_ENCRYPT, ctx->nonce, + ctx->encr_buf) != 0) + return (-1); + return 0; +} + +static int +aes_ctr_release(archive_crypto_ctx *ctx) +{ + mbedtls_aes_free(&ctx->ctx); memset(ctx, 0, sizeof(*ctx)); return 0; } Modified: stable/12/contrib/libarchive/libarchive/archive_cryptor_private.h ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_cryptor_private.h Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_cryptor_private.h Wed Feb 19 01:46:43 2020 (r358087) @@ -23,13 +23,12 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __LIBARCHIVE_BUILD -#error This header is only to be used internally to libarchive. -#endif - #ifndef ARCHIVE_CRYPTOR_PRIVATE_H_INCLUDED #define ARCHIVE_CRYPTOR_PRIVATE_H_INCLUDED +#ifndef __LIBARCHIVE_BUILD +#error This header is only to be used internally to libarchive. +#endif /* * On systems that do not support any recognized crypto libraries, * the archive_cryptor.c file will normally define no usable symbols. @@ -78,6 +77,23 @@ typedef struct { BCRYPT_KEY_HANDLE hKey; PBYTE keyObj; DWORD keyObj_len; + uint8_t nonce[AES_BLOCK_SIZE]; + uint8_t encr_buf[AES_BLOCK_SIZE]; + unsigned encr_pos; +} archive_crypto_ctx; + +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) +#include +#include +#include + +#define AES_MAX_KEY_SIZE 32 +#define AES_BLOCK_SIZE 16 + +typedef struct { + mbedtls_aes_context ctx; + uint8_t key[AES_MAX_KEY_SIZE]; + unsigned key_len; uint8_t nonce[AES_BLOCK_SIZE]; uint8_t encr_buf[AES_BLOCK_SIZE]; unsigned encr_pos; Modified: stable/12/contrib/libarchive/libarchive/archive_digest.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_digest.c Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_digest.c Wed Feb 19 01:46:43 2020 (r358087) @@ -178,6 +178,40 @@ __archive_libsystem_md5final(archive_md5_ctx *ctx, voi return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) + +static int +__archive_mbedtls_md5init(archive_md5_ctx *ctx) +{ + mbedtls_md5_init(ctx); + if (mbedtls_md5_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_md5update(archive_md5_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_md5final(archive_md5_ctx *ctx, void *md) +{ + if (mbedtls_md5_finish_ret(ctx, md) == 0) { + mbedtls_md5_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_md5_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) static int @@ -335,6 +369,40 @@ __archive_libmd_ripemd160final(archive_rmd160_ctx *ctx return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) + +static int +__archive_mbedtls_ripemd160init(archive_rmd160_ctx *ctx) +{ + mbedtls_ripemd160_init(ctx); + if (mbedtls_ripemd160_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_ripemd160final(archive_rmd160_ctx *ctx, void *md) +{ + if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { + mbedtls_ripemd160_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_ripemd160_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) static int @@ -491,6 +559,40 @@ __archive_libsystem_sha1final(archive_sha1_ctx *ctx, v return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) + +static int +__archive_mbedtls_sha1init(archive_sha1_ctx *ctx) +{ + mbedtls_sha1_init(ctx); + if (mbedtls_sha1_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha1update(archive_sha1_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha1final(archive_sha1_ctx *ctx, void *md) +{ + if (mbedtls_sha1_finish_ret(ctx, md) == 0) { + mbedtls_sha1_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha1_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) static int @@ -720,6 +822,40 @@ __archive_libsystem_sha256final(archive_sha256_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) + +static int +__archive_mbedtls_sha256init(archive_sha256_ctx *ctx) +{ + mbedtls_sha256_init(ctx); + if (mbedtls_sha256_starts_ret(ctx, 0) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha256update(archive_sha256_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha256final(archive_sha256_ctx *ctx, void *md) +{ + if (mbedtls_sha256_finish_ret(ctx, md) == 0) { + mbedtls_sha256_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha256_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) static int @@ -921,6 +1057,40 @@ __archive_libsystem_sha384final(archive_sha384_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) + +static int +__archive_mbedtls_sha384init(archive_sha384_ctx *ctx) +{ + mbedtls_sha512_init(ctx); + if (mbedtls_sha512_starts_ret(ctx, 1) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha384update(archive_sha384_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha384final(archive_sha384_ctx *ctx, void *md) +{ + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha512_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) static int @@ -1146,6 +1316,40 @@ __archive_libsystem_sha512final(archive_sha512_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) + +static int +__archive_mbedtls_sha512init(archive_sha512_ctx *ctx) +{ + mbedtls_sha512_init(ctx); + if (mbedtls_sha512_starts_ret(ctx, 0) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha512update(archive_sha512_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha512final(archive_sha512_ctx *ctx, void *md) +{ + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha512_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) static int @@ -1276,6 +1480,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_md5init, &__archive_libsystem_md5update, &__archive_libsystem_md5final, +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) + &__archive_mbedtls_md5init, + &__archive_mbedtls_md5update, + &__archive_mbedtls_md5final, #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) &__archive_nettle_md5init, &__archive_nettle_md5update, @@ -1303,6 +1511,10 @@ const struct archive_digest __archive_digest = &__archive_libmd_ripemd160init, &__archive_libmd_ripemd160update, &__archive_libmd_ripemd160final, +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) + &__archive_mbedtls_ripemd160init, + &__archive_mbedtls_ripemd160update, + &__archive_mbedtls_ripemd160final, #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) &__archive_nettle_ripemd160init, &__archive_nettle_ripemd160update, @@ -1330,6 +1542,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha1init, &__archive_libsystem_sha1update, &__archive_libsystem_sha1final, +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) + &__archive_mbedtls_sha1init, + &__archive_mbedtls_sha1update, + &__archive_mbedtls_sha1final, #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) &__archive_nettle_sha1init, &__archive_nettle_sha1update, @@ -1369,6 +1585,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha256init, &__archive_libsystem_sha256update, &__archive_libsystem_sha256final, +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) + &__archive_mbedtls_sha256init, + &__archive_mbedtls_sha256update, + &__archive_mbedtls_sha256final, #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) &__archive_nettle_sha256init, &__archive_nettle_sha256update, @@ -1404,6 +1624,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha384init, &__archive_libsystem_sha384update, &__archive_libsystem_sha384final, +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) + &__archive_mbedtls_sha384init, + &__archive_mbedtls_sha384update, + &__archive_mbedtls_sha384final, #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) &__archive_nettle_sha384init, &__archive_nettle_sha384update, @@ -1443,6 +1667,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha512init, &__archive_libsystem_sha512update, &__archive_libsystem_sha512final +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) + &__archive_mbedtls_sha512init, + &__archive_mbedtls_sha512update, + &__archive_mbedtls_sha512final #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) &__archive_nettle_sha512init, &__archive_nettle_sha512update, Modified: stable/12/contrib/libarchive/libarchive/archive_digest_private.h ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_digest_private.h Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_digest_private.h Wed Feb 19 01:46:43 2020 (r358087) @@ -24,13 +24,12 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef ARCHIVE_DIGEST_PRIVATE_H_INCLUDED +#define ARCHIVE_DIGEST_PRIVATE_H_INCLUDED + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif - -#ifndef ARCHIVE_CRYPTO_PRIVATE_H_INCLUDED -#define ARCHIVE_CRYPTO_PRIVATE_H_INCLUDED - /* * Crypto support in various Operating Systems: * @@ -112,6 +111,24 @@ #include #endif +/* mbed TLS crypto headers */ +#if defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) ||\ + defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) +#include +#endif + /* Nettle crypto headers */ #if defined(ARCHIVE_CRYPTO_MD5_NETTLE) #include @@ -159,6 +176,8 @@ typedef MD5_CTX archive_md5_ctx; typedef MD5_CTX archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) typedef CC_MD5_CTX archive_md5_ctx; +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) +typedef mbedtls_md5_context archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) typedef struct md5_ctx archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) @@ -173,6 +192,8 @@ typedef unsigned char archive_md5_ctx; typedef RMD160_CTX archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) typedef RIPEMD160_CTX archive_rmd160_ctx; +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) +typedef mbedtls_ripemd160_context archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) typedef struct ripemd160_ctx archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) @@ -187,6 +208,8 @@ typedef SHA1_CTX archive_sha1_ctx; typedef SHA1_CTX archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) typedef CC_SHA1_CTX archive_sha1_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) +typedef mbedtls_sha1_context archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) typedef struct sha1_ctx archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) @@ -207,6 +230,8 @@ typedef SHA2_CTX archive_sha256_ctx; typedef SHA256_CTX archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) typedef CC_SHA256_CTX archive_sha256_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) +typedef mbedtls_sha256_context archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) typedef struct sha256_ctx archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) @@ -225,6 +250,8 @@ typedef SHA384_CTX archive_sha384_ctx; typedef SHA2_CTX archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) typedef CC_SHA512_CTX archive_sha384_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) +typedef mbedtls_sha512_context archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) typedef struct sha384_ctx archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) @@ -245,6 +272,8 @@ typedef SHA2_CTX archive_sha512_ctx; typedef SHA512_CTX archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) typedef CC_SHA512_CTX archive_sha512_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) +typedef mbedtls_sha512_context archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) typedef struct sha512_ctx archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) @@ -259,6 +288,7 @@ typedef unsigned char archive_sha512_ctx; #if defined(ARCHIVE_CRYPTO_MD5_LIBC) ||\ defined(ARCHIVE_CRYPTO_MD5_LIBMD) || \ defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_MD5_NETTLE) ||\ defined(ARCHIVE_CRYPTO_MD5_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_MD5_WIN) @@ -272,6 +302,7 @@ typedef unsigned char archive_sha512_ctx; __archive_digest.md5update(ctx, buf, n) #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) ||\ + defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_RMD160_NETTLE) ||\ defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) #define ARCHIVE_HAS_RMD160 @@ -286,6 +317,7 @@ typedef unsigned char archive_sha512_ctx; #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) ||\ defined(ARCHIVE_CRYPTO_SHA1_LIBMD) || \ defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA1_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA1_WIN) @@ -303,6 +335,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA256_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA256_LIBMD) ||\ defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA256_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA256_WIN) @@ -319,6 +352,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA384_LIBC2) ||\ defined(ARCHIVE_CRYPTO_SHA384_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA384_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA384_WIN) @@ -336,6 +370,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA512_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA512_LIBMD) ||\ defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA512_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA512_WIN) Modified: stable/12/contrib/libarchive/libarchive/archive_endian.h ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_endian.h Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_endian.h Wed Feb 19 01:46:43 2020 (r358087) @@ -28,16 +28,15 @@ * Borrowed from FreeBSD's */ -#ifndef __LIBARCHIVE_BUILD -#error This header is only to be used internally to libarchive. -#endif +#ifndef ARCHIVE_ENDIAN_H_INCLUDED +#define ARCHIVE_ENDIAN_H_INCLUDED /* Note: This is a purely internal header! */ /* Do not use this outside of libarchive internal code! */ -#ifndef ARCHIVE_ENDIAN_H_INCLUDED -#define ARCHIVE_ENDIAN_H_INCLUDED - +#ifndef __LIBARCHIVE_BUILD +#error This header is only to be used internally to libarchive. +#endif /* * Disabling inline keyword for compilers known to choke on it: Modified: stable/12/contrib/libarchive/libarchive/archive_entry.c ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_entry.c Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_entry.c Wed Feb 19 01:46:43 2020 (r358087) @@ -1699,7 +1699,7 @@ static const struct flag { const wchar_t *wname; unsigned long set; unsigned long clear; -} flags[] = { +} fileflags[] = { /* Preferred (shorter) names per flag first, all prefixed by "no" */ #ifdef SF_APPEND { "nosappnd", L"nosappnd", SF_APPEND, 0}, @@ -1876,7 +1876,7 @@ ae_fflagstostr(unsigned long bitset, unsigned long bit bits = bitset | bitclear; length = 0; - for (flag = flags; flag->name != NULL; flag++) + for (flag = fileflags; flag->name != NULL; flag++) if (bits & (flag->set | flag->clear)) { length += strlen(flag->name) + 1; bits &= ~(flag->set | flag->clear); @@ -1889,7 +1889,7 @@ ae_fflagstostr(unsigned long bitset, unsigned long bit return (NULL); dp = string; - for (flag = flags; flag->name != NULL; flag++) { + for (flag = fileflags; flag->name != NULL; flag++) { if (bitset & flag->set || bitclear & flag->clear) { sp = flag->name + 2; } else if (bitset & flag->clear || bitclear & flag->set) { @@ -1941,7 +1941,7 @@ ae_strtofflags(const char *s, unsigned long *setp, uns *end != ' ' && *end != ',') end++; length = end - start; - for (flag = flags; flag->name != NULL; flag++) { + for (flag = fileflags; flag->name != NULL; flag++) { size_t flag_length = strlen(flag->name); if (length == flag_length && memcmp(start, flag->name, length) == 0) { @@ -2009,7 +2009,7 @@ ae_wcstofflags(const wchar_t *s, unsigned long *setp, *end != L' ' && *end != L',') end++; length = end - start; - for (flag = flags; flag->wname != NULL; flag++) { + for (flag = fileflags; flag->wname != NULL; flag++) { size_t flag_length = wcslen(flag->wname); if (length == flag_length && wmemcmp(start, flag->wname, length) == 0) { Modified: stable/12/contrib/libarchive/libarchive/archive_entry.h ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_entry.h Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_entry.h Wed Feb 19 01:46:43 2020 (r358087) @@ -30,7 +30,7 @@ #define ARCHIVE_ENTRY_H_INCLUDED /* Note: Compiler will complain if this does not match archive.h! */ -#define ARCHIVE_VERSION_NUMBER 3004000 +#define ARCHIVE_VERSION_NUMBER 3004002 /* * Note: archive_entry.h is for use outside of libarchive; the @@ -524,9 +524,6 @@ __LA_DECL int archive_entry_acl_reset(struct archive_ __LA_DECL int archive_entry_acl_next(struct archive_entry *, int /* want_type */, int * /* type */, int * /* permset */, int * /* tag */, int * /* qual */, const char ** /* name */); -__LA_DECL int archive_entry_acl_next_w(struct archive_entry *, int /* want_type */, - int * /* type */, int * /* permset */, int * /* tag */, - int * /* qual */, const wchar_t ** /* name */); /* * Construct a text-format ACL. The flags argument is a bitmask that Modified: stable/12/contrib/libarchive/libarchive/archive_entry_acl.3 ============================================================================== --- stable/12/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Feb 19 00:48:58 2020 (r358086) +++ stable/12/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Feb 19 01:46:43 2020 (r358087) @@ -34,7 +34,6 @@ .Nm archive_entry_acl_from_text , .Nm archive_entry_acl_from_text_w , .Nm archive_entry_acl_next , -.Nm archive_entry_acl_next_w , .Nm archive_entry_acl_reset , .Nm archive_entry_acl_to_text , .Nm archive_entry_acl_to_text_w , @@ -89,16 +88,6 @@ Streaming Archive Library (libarchive, -larchive) .Fa "const char **ret_name" .Fc .Ft int -.Fo archive_entry_acl_next_w -.Fa "struct archive_entry *a" -.Fa "int type" -.Fa "int *ret_type" -.Fa "int *ret_permset" -.Fa "int *ret_tag" -.Fa "int *ret_qual" -.Fa "const wchar_t **ret_name" -.Fc -.Ft int .Fn archive_entry_acl_reset "struct archive_entry *a" "int type" .Ft char * .Fo archive_entry_acl_to_text @@ -349,8 +338,6 @@ character are skipped. .Pp .Fn archive_entry_acl_next -and -.Fn archive_entry_acl_next_w return the next entry of the ACL list. This functions may only be called after .Fn archive_entry_acl_reset @@ -358,9 +345,7 @@ has indicated the presence of extended ACL entries. .Pp .Fn archive_entry_acl_reset prepare reading the list of ACL entries with -.Fn archive_entry_acl_next -or -.Fn archive_entry_acl_next_w . +.Fn archive_entry_acl_next . *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Feb 19 01:50:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8B50D24BE16; Wed, 19 Feb 2020 01:50:52 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Mgfh2rlBz4CGX; Wed, 19 Feb 2020 01:50:52 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5CA82154E; Wed, 19 Feb 2020 01:50:52 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01J1oqXd031629; Wed, 19 Feb 2020 01:50:52 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J1om1L030786; Wed, 19 Feb 2020 01:50:48 GMT (envelope-from mm@FreeBSD.org) Message-Id: <202002190150.01J1om1L030786@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Wed, 19 Feb 2020 01:50:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358088 - in stable/11: contrib/libarchive contrib/libarchive/cat contrib/libarchive/cat/test contrib/libarchive/cpio contrib/libarchive/cpio/test contrib/libarchive/libarchive contrib/... X-SVN-Group: stable-11 X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in stable/11: contrib/libarchive contrib/libarchive/cat contrib/libarchive/cat/test contrib/libarchive/cpio contrib/libarchive/cpio/test contrib/libarchive/libarchive contrib/libarchive/libarchive/tes... X-SVN-Commit-Revision: 358088 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 01:50:52 -0000 Author: mm Date: Wed Feb 19 01:50:47 2020 New Revision: 358088 URL: https://svnweb.freebsd.org/changeset/base/358088 Log: MFC r356212,r356366,r356416,r357785 Update libarchive to version 3.4.2 Relevant vendor changes (r356212): Issue #351: Refactor and implement private state logic for write filters PR #1252: RAR5 reader - verify window size for solid files (OSS-Fuzz 15482) PR #1255: zip writer - don't append unused NUL for directories PR #1260: Fix sparse file offset overflow on 32-bit systems PR #1263: UNICODE filename support for reading lha/lzh format Issue #1276: Bugfix and optimize archive_wstring_append_from_mbs() PR #1288: Add the "xattrhdr" option to pax write options PR #1295: 7z reader - fix reading archives with digests in PackInfo PR #1296: RAR5 reader - verify window size for multivolume archives PR #1297: ZIP reader - support LZMA_STREAM_END marker in 'lzma alone' files Issue #1298: Fix a heap-buffer-overflow in archive_string_append_from_wcs() OSS-Fuzz 19360, 19362: LHA reader - plug two memory leaks on error Fix possible off-by-one when dealing with readlink(2) Relevant vendor changes (r356366): Issue #1302: Plug memory leak on failure of archive_write_client_open() Relevant vendor changes (r356416): Issue #1302: Re-do fix for archive_write_client_open() Relevant vendor changes (r357785): PR #1289: atomic extraction support (bsdtar -x --safe-writes) PR #1308: big endian fix for UTF16 support in LHA reader PR #1326: reject RAR5 files that declare invalid header flags Issue #987: fix support 7z archive entries with Delta filter Issue #1317: fix compression output buffer handling in XAR writer Issue #1319: fix uname or gname longer than 32 characters in pax writer Issue #1325: fix use after free when archiving hardlinks in ISO9660 or XAR Use localtime_r() and gmtime_r() instead of localtime() and gmtime() Added: stable/11/contrib/libarchive/libarchive/archive_write_set_format_private.h - copied unchanged from r357785, head/contrib/libarchive/libarchive/archive_write_set_format_private.h stable/11/contrib/libarchive/libarchive/test/test_pax_xattr_header.c - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header.c stable/11/contrib/libarchive/libarchive/test/test_pax_xattr_header_all.tar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header_all.tar.uu stable/11/contrib/libarchive/libarchive/test/test_pax_xattr_header_libarchive.tar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header_libarchive.tar.uu stable/11/contrib/libarchive/libarchive/test/test_pax_xattr_header_schily.tar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header_schily.tar.uu stable/11/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu - copied unchanged from r357785, head/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu stable/11/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu - copied unchanged from r357785, head/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu stable/11/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu stable/11/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.c - copied, changed from r356212, head/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.c stable/11/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.c - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.c stable/11/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu stable/11/contrib/libarchive/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu - copied unchanged from r357785, head/contrib/libarchive/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu stable/11/contrib/libarchive/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu stable/11/contrib/libarchive/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu stable/11/contrib/libarchive/tar/test/test_option_safe_writes.c - copied unchanged from r357785, head/contrib/libarchive/tar/test/test_option_safe_writes.c Modified: stable/11/contrib/libarchive/NEWS stable/11/contrib/libarchive/cat/bsdcat.h stable/11/contrib/libarchive/cat/test/test_0.c stable/11/contrib/libarchive/cpio/cpio.c stable/11/contrib/libarchive/cpio/test/test_basic.c stable/11/contrib/libarchive/cpio/test/test_format_newc.c stable/11/contrib/libarchive/libarchive/archive.h stable/11/contrib/libarchive/libarchive/archive_acl_private.h stable/11/contrib/libarchive/libarchive/archive_blake2.h stable/11/contrib/libarchive/libarchive/archive_blake2_impl.h stable/11/contrib/libarchive/libarchive/archive_cmdline_private.h stable/11/contrib/libarchive/libarchive/archive_crc32.h stable/11/contrib/libarchive/libarchive/archive_cryptor.c stable/11/contrib/libarchive/libarchive/archive_cryptor_private.h stable/11/contrib/libarchive/libarchive/archive_digest.c stable/11/contrib/libarchive/libarchive/archive_digest_private.h stable/11/contrib/libarchive/libarchive/archive_endian.h stable/11/contrib/libarchive/libarchive/archive_entry.c stable/11/contrib/libarchive/libarchive/archive_entry.h stable/11/contrib/libarchive/libarchive/archive_entry_acl.3 stable/11/contrib/libarchive/libarchive/archive_entry_locale.h stable/11/contrib/libarchive/libarchive/archive_entry_private.h stable/11/contrib/libarchive/libarchive/archive_getdate.c stable/11/contrib/libarchive/libarchive/archive_getdate.h stable/11/contrib/libarchive/libarchive/archive_hmac.c stable/11/contrib/libarchive/libarchive/archive_hmac_private.h stable/11/contrib/libarchive/libarchive/archive_openssl_evp_private.h stable/11/contrib/libarchive/libarchive/archive_openssl_hmac_private.h stable/11/contrib/libarchive/libarchive/archive_options_private.h stable/11/contrib/libarchive/libarchive/archive_pack_dev.c stable/11/contrib/libarchive/libarchive/archive_pack_dev.h stable/11/contrib/libarchive/libarchive/archive_pathmatch.h stable/11/contrib/libarchive/libarchive/archive_platform_acl.h stable/11/contrib/libarchive/libarchive/archive_platform_xattr.h stable/11/contrib/libarchive/libarchive/archive_ppmd7.c stable/11/contrib/libarchive/libarchive/archive_ppmd7_private.h stable/11/contrib/libarchive/libarchive/archive_ppmd8_private.h stable/11/contrib/libarchive/libarchive/archive_ppmd_private.h stable/11/contrib/libarchive/libarchive/archive_private.h stable/11/contrib/libarchive/libarchive/archive_random_private.h stable/11/contrib/libarchive/libarchive/archive_rb.h stable/11/contrib/libarchive/libarchive/archive_read.c stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c stable/11/contrib/libarchive/libarchive/archive_read_disk_posix.c stable/11/contrib/libarchive/libarchive/archive_read_disk_private.h stable/11/contrib/libarchive/libarchive/archive_read_private.h stable/11/contrib/libarchive/libarchive/archive_read_set_options.3 stable/11/contrib/libarchive/libarchive/archive_read_support_filter_uu.c stable/11/contrib/libarchive/libarchive/archive_read_support_format_7zip.c stable/11/contrib/libarchive/libarchive/archive_read_support_format_lha.c stable/11/contrib/libarchive/libarchive/archive_read_support_format_mtree.c stable/11/contrib/libarchive/libarchive/archive_read_support_format_rar.c stable/11/contrib/libarchive/libarchive/archive_read_support_format_rar5.c stable/11/contrib/libarchive/libarchive/archive_read_support_format_warc.c stable/11/contrib/libarchive/libarchive/archive_read_support_format_xar.c stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c stable/11/contrib/libarchive/libarchive/archive_string.c stable/11/contrib/libarchive/libarchive/archive_string.h stable/11/contrib/libarchive/libarchive/archive_string_composition.h stable/11/contrib/libarchive/libarchive/archive_util.c stable/11/contrib/libarchive/libarchive/archive_write.c stable/11/contrib/libarchive/libarchive/archive_write_add_filter_b64encode.c stable/11/contrib/libarchive/libarchive/archive_write_add_filter_bzip2.c stable/11/contrib/libarchive/libarchive/archive_write_add_filter_compress.c stable/11/contrib/libarchive/libarchive/archive_write_add_filter_gzip.c stable/11/contrib/libarchive/libarchive/archive_write_add_filter_lz4.c stable/11/contrib/libarchive/libarchive/archive_write_add_filter_lzop.c stable/11/contrib/libarchive/libarchive/archive_write_add_filter_program.c stable/11/contrib/libarchive/libarchive/archive_write_add_filter_uuencode.c stable/11/contrib/libarchive/libarchive/archive_write_add_filter_xz.c stable/11/contrib/libarchive/libarchive/archive_write_add_filter_zstd.c stable/11/contrib/libarchive/libarchive/archive_write_disk.3 stable/11/contrib/libarchive/libarchive/archive_write_disk_posix.c stable/11/contrib/libarchive/libarchive/archive_write_disk_private.h stable/11/contrib/libarchive/libarchive/archive_write_private.h stable/11/contrib/libarchive/libarchive/archive_write_set_format.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_7zip.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_ar.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_cpio.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_pax.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_shar.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_ustar.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_v7tar.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_warc.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_xar.c stable/11/contrib/libarchive/libarchive/archive_write_set_format_zip.c stable/11/contrib/libarchive/libarchive/archive_write_set_options.3 stable/11/contrib/libarchive/libarchive/archive_xxhash.h stable/11/contrib/libarchive/libarchive/filter_fork.h stable/11/contrib/libarchive/libarchive/test/test_archive_write_set_format_filter_by_ext.c stable/11/contrib/libarchive/libarchive/test/test_compat_zip.c stable/11/contrib/libarchive/libarchive/test/test_fuzz.c stable/11/contrib/libarchive/libarchive/test/test_open_failure.c stable/11/contrib/libarchive/libarchive/test/test_open_fd.c stable/11/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c stable/11/contrib/libarchive/libarchive/test/test_read_extract.c stable/11/contrib/libarchive/libarchive/test/test_read_format_7zip.c stable/11/contrib/libarchive/libarchive/test/test_read_format_gtar_sparse.c stable/11/contrib/libarchive/libarchive/test/test_read_format_rar5.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_7075_utf8_paths.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_extra_padding.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_high_compression.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_jar.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_malformed.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_msdos.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_nested.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_nofiletype.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_padded.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c stable/11/contrib/libarchive/libarchive/test/test_read_format_zip_zip64.c stable/11/contrib/libarchive/libarchive/test/test_read_pax_truncated.c stable/11/contrib/libarchive/libarchive/test/test_read_truncated_filter.c stable/11/contrib/libarchive/libarchive/test/test_sparse_basic.c stable/11/contrib/libarchive/libarchive/test/test_write_disk.c stable/11/contrib/libarchive/libarchive/test/test_write_format_cpio_empty.c stable/11/contrib/libarchive/libarchive/test/test_write_format_pax.c stable/11/contrib/libarchive/libarchive/test/test_write_format_shar_empty.c stable/11/contrib/libarchive/libarchive/test/test_write_format_tar.c stable/11/contrib/libarchive/libarchive/test/test_write_format_tar_sparse.c stable/11/contrib/libarchive/libarchive/test/test_write_format_xar.c stable/11/contrib/libarchive/libarchive/test/test_write_format_zip_file.c stable/11/contrib/libarchive/libarchive/test/test_write_format_zip_file_zip64.c stable/11/contrib/libarchive/libarchive_fe/err.h stable/11/contrib/libarchive/tar/bsdtar.1 stable/11/contrib/libarchive/tar/bsdtar.c stable/11/contrib/libarchive/tar/bsdtar.h stable/11/contrib/libarchive/tar/cmdline.c stable/11/contrib/libarchive/tar/test/test_basic.c stable/11/contrib/libarchive/tar/test/test_copy.c stable/11/contrib/libarchive/tar/test/test_option_C_upper.c stable/11/contrib/libarchive/tar/test/test_option_s.c stable/11/contrib/libarchive/tar/util.c stable/11/contrib/libarchive/test_utils/test_common.h stable/11/contrib/libarchive/test_utils/test_main.c stable/11/lib/libarchive/tests/Makefile stable/11/usr.bin/bsdcat/Makefile stable/11/usr.bin/cpio/Makefile stable/11/usr.bin/tar/Makefile stable/11/usr.bin/tar/tests/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/libarchive/NEWS ============================================================================== --- stable/11/contrib/libarchive/NEWS Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/NEWS Wed Feb 19 01:50:47 2020 (r358088) @@ -1,3 +1,17 @@ +Feb 11, 2020: libarchive 3.4.2 released + +Jan 23, 2020: Important fixes for writing XAR archives + +Jan 20, 2020: New tar option: --safe-writes (atomical file extraction) + +Jan 03, 2020: Support mbed TLS (PolarSSL) as optional crypto provider + +Dec 30, 2019: libarchive 3.4.1 released + +Dec 11, 2019: New pax write option "xattrhdr" + +Nov 17, 2019: Unicode filename support for reading lha/lzh archives + Jun 11, 2019: libarchive 3.4.0 released May 18, 2019: Fixes for reading Android APK and JAR archives Modified: stable/11/contrib/libarchive/cat/bsdcat.h ============================================================================== --- stable/11/contrib/libarchive/cat/bsdcat.h Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/cat/bsdcat.h Wed Feb 19 01:50:47 2020 (r358088) @@ -23,6 +23,9 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef BSDCAT_H_INCLUDED +#define BSDCAT_H_INCLUDED + #if defined(PLATFORM_CONFIG_H) /* Use hand-built config.h in environments that need it. */ #include PLATFORM_CONFIG_H @@ -54,3 +57,5 @@ void usage(FILE *stream, int eval); void bsdcat_next(void); void bsdcat_print_error(void); void bsdcat_read_to_stdout(const char* filename); + +#endif Modified: stable/11/contrib/libarchive/cat/test/test_0.c ============================================================================== --- stable/11/contrib/libarchive/cat/test/test_0.c Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/cat/test/test_0.c Wed Feb 19 01:50:47 2020 (r358088) @@ -59,7 +59,7 @@ DEFINE_TEST(test_0) * we know some option that will succeed. */ if (0 != systemf("%s --version >" DEV_NULL, testprog)) { - failure("Unable to successfully run: %s --version\n", testprog, testprog); + failure("Unable to successfully run: %s --version\n", testprog); assert(0); } Modified: stable/11/contrib/libarchive/cpio/cpio.c ============================================================================== --- stable/11/contrib/libarchive/cpio/cpio.c Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/cpio/cpio.c Wed Feb 19 01:50:47 2020 (r358088) @@ -1139,6 +1139,14 @@ list_item_verbose(struct cpio *cpio, struct archive_en const char *fmt; time_t mtime; static time_t now; + struct tm *ltime; +#if defined(HAVE_LOCALTIME_R) || defined(HAVE__LOCALTIME64_S) + struct tm tmbuf; +#endif +#if defined(HAVE__LOCALTIME64_S) + errno_t terr; + __time64_t tmptime; +#endif if (!now) time(&now); @@ -1186,7 +1194,19 @@ list_item_verbose(struct cpio *cpio, struct archive_en else fmt = cpio->day_first ? "%e %b %H:%M" : "%b %e %H:%M"; #endif - strftime(date, sizeof(date), fmt, localtime(&mtime)); +#if defined(HAVE_LOCALTIME_R) + ltime = localtime_r(&mtime, &tmbuf); +#elif defined(HAVE__LOCALTIME64_S) + tmptime = mtime; + terr = _localtime64_s(&tmbuf, &tmptime); + if (terr) + ltime = NULL; + else + ltime = &tmbuf; +#else + ltime = localtime(&mtime); +#endif + strftime(date, sizeof(date), fmt, ltime); fprintf(out, "%s%3d %-8s %-8s %8s %12s %s", archive_entry_strmode(entry), Modified: stable/11/contrib/libarchive/cpio/test/test_basic.c ============================================================================== --- stable/11/contrib/libarchive/cpio/test/test_basic.c Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/cpio/test/test_basic.c Wed Feb 19 01:50:47 2020 (r358088) @@ -33,15 +33,15 @@ verify_files(const char *msg) */ /* Regular file with 2 links. */ - failure(msg); + failure("%s", msg); assertIsReg("file", 0644); - failure(msg); + failure("%s", msg); assertFileSize("file", 10); - failure(msg); + failure("%s", msg); assertFileNLinks("file", 2); /* Another name for the same file. */ - failure(msg); + failure("%s", msg); assertIsHardlink("linkfile", "file"); /* Symlink */ @@ -49,11 +49,11 @@ verify_files(const char *msg) assertIsSymlink("symlink", "file", 0); /* Another file with 1 link and different permissions. */ - failure(msg); + failure("%s", msg); assertIsReg("file2", 0777); - failure(msg); + failure("%s", msg); assertFileSize("file2", 10); - failure(msg); + failure("%s", msg); assertFileNLinks("file2", 1); /* dir */ Modified: stable/11/contrib/libarchive/cpio/test/test_format_newc.c ============================================================================== --- stable/11/contrib/libarchive/cpio/test/test_format_newc.c Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/cpio/test/test_format_newc.c Wed Feb 19 01:50:47 2020 (r358088) @@ -205,9 +205,11 @@ DEFINE_TEST(test_format_newc) gid = from_hex(e + 30, 8); /* gid */ assertEqualMem(e + 38, "00000003", 8); /* nlink */ t = from_hex(e + 46, 8); /* mtime */ - failure("t=0x%08x now=0x%08x=%d", t, now, now); + failure("t=%#08jx now=%#08jx=%jd", (intmax_t)t, (intmax_t)now, + (intmax_t)now); assert(t <= now); /* File wasn't created in future. */ - failure("t=0x%08x now - 2=0x%08x = %d", t, now - 2, now - 2); + failure("t=%#08jx now - 2=%#08jx=%jd", (intmax_t)t, (intmax_t)now - 2, + (intmax_t)now - 2); assert(t >= now - 2); /* File was created w/in last 2 secs. */ failure("newc format stores body only with last appearance of a link\n" " first appearance should be empty, so this file size\n" @@ -243,7 +245,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000001", 8); /* nlink */ t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created" + " at t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000005", 8); /* File size */ fs = from_hex(e + 54, 8); @@ -278,7 +281,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(nlinks("dir"), from_hex(e + 38, 8)); /* nlinks */ #endif t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created at" + "t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000000", 8); /* File size */ fs = from_hex(e + 54, 8); @@ -311,7 +315,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000003", 8); /* nlink */ t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created at" + "t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualInt(10, from_hex(e + 54, 8)); /* File size */ fs = from_hex(e + 54, 8); Modified: stable/11/contrib/libarchive/libarchive/archive.h ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive.h Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive.h Wed Feb 19 01:50:47 2020 (r358088) @@ -36,7 +36,7 @@ * assert that ARCHIVE_VERSION_NUMBER >= 2012108. */ /* Note: Compiler will complain if this does not match archive_entry.h! */ -#define ARCHIVE_VERSION_NUMBER 3004000 +#define ARCHIVE_VERSION_NUMBER 3004002 #include #include /* for wchar_t */ @@ -155,7 +155,7 @@ __LA_DECL int archive_version_number(void); /* * Textual name/version of the library, useful for version displays. */ -#define ARCHIVE_VERSION_ONLY_STRING "3.4.0" +#define ARCHIVE_VERSION_ONLY_STRING "3.4.2" #define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING __LA_DECL const char * archive_version_string(void); @@ -693,6 +693,8 @@ __LA_DECL int archive_read_set_passphrase_callback(str #define ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS (0x10000) /* Default: Do not clear no-change flags when unlinking object */ #define ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS (0x20000) +/* Default: Do not extract atomically (using rename) */ +#define ARCHIVE_EXTRACT_SAFE_WRITES (0x40000) __LA_DECL int archive_read_extract(struct archive *, struct archive_entry *, int flags); Modified: stable/11/contrib/libarchive/libarchive/archive_acl_private.h ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_acl_private.h Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_acl_private.h Wed Feb 19 01:50:47 2020 (r358088) @@ -25,12 +25,12 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_ACL_PRIVATE_H_INCLUDED +#define ARCHIVE_ACL_PRIVATE_H_INCLUDED + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif - -#ifndef ARCHIVE_ACL_PRIVATE_H_INCLUDED -#define ARCHIVE_ACL_PRIVATE_H_INCLUDED #include "archive_string.h" Modified: stable/11/contrib/libarchive/libarchive/archive_blake2.h ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_blake2.h Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_blake2.h Wed Feb 19 01:50:47 2020 (r358088) @@ -12,8 +12,9 @@ More information about the BLAKE2 hash function can be found at https://blake2.net. */ -#ifndef BLAKE2_H -#define BLAKE2_H + +#ifndef ARCHIVE_BLAKE2_H +#define ARCHIVE_BLAKE2_H #include #include Modified: stable/11/contrib/libarchive/libarchive/archive_blake2_impl.h ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_blake2_impl.h Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_blake2_impl.h Wed Feb 19 01:50:47 2020 (r358088) @@ -12,8 +12,9 @@ More information about the BLAKE2 hash function can be found at https://blake2.net. */ -#ifndef BLAKE2_IMPL_H -#define BLAKE2_IMPL_H + +#ifndef ARCHIVE_BLAKE2_IMPL_H +#define ARCHIVE_BLAKE2_IMPL_H #include #include Modified: stable/11/contrib/libarchive/libarchive/archive_cmdline_private.h ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_cmdline_private.h Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_cmdline_private.h Wed Feb 19 01:50:47 2020 (r358088) @@ -25,14 +25,14 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_CMDLINE_PRIVATE_H +#define ARCHIVE_CMDLINE_PRIVATE_H + #ifndef __LIBARCHIVE_BUILD #ifndef __LIBARCHIVE_TEST #error This header is only to be used internally to libarchive. #endif #endif - -#ifndef ARCHIVE_CMDLINE_PRIVATE_H -#define ARCHIVE_CMDLINE_PRIVATE_H struct archive_cmdline { char *path; Modified: stable/11/contrib/libarchive/libarchive/archive_crc32.h ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_crc32.h Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_crc32.h Wed Feb 19 01:50:47 2020 (r358088) @@ -25,6 +25,9 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_CRC32_H +#define ARCHIVE_CRC32_H + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif @@ -76,3 +79,5 @@ crc32(unsigned long crc, const void *_p, size_t len) crc = crc_tbl[(crc ^ *p++) & 0xff] ^ (crc >> 8); return (crc ^ 0xffffffffUL); } + +#endif Modified: stable/11/contrib/libarchive/libarchive/archive_cryptor.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_cryptor.c Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_cryptor.c Wed Feb 19 01:50:47 2020 (r358088) @@ -85,6 +85,35 @@ pbkdf2_sha1(const char *pw, size_t pw_len, const uint8 return (BCRYPT_SUCCESS(status)) ? 0: -1; } +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_PKCS5_H) + +static int +pbkdf2_sha1(const char *pw, size_t pw_len, const uint8_t *salt, + size_t salt_len, unsigned rounds, uint8_t *derived_key, + size_t derived_key_len) +{ + mbedtls_md_context_t ctx; + const mbedtls_md_info_t *info; + int ret; + + mbedtls_md_init(&ctx); + info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); + if (info == NULL) { + mbedtls_md_free(&ctx); + return (-1); + } + ret = mbedtls_md_setup(&ctx, info, 1); + if (ret != 0) { + mbedtls_md_free(&ctx); + return (-1); + } + ret = mbedtls_pkcs5_pbkdf2_hmac(&ctx, (const unsigned char *)pw, + pw_len, salt, salt_len, rounds, derived_key_len, derived_key); + + mbedtls_md_free(&ctx); + return (ret); +} + #elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_PBKDF2_H) static int @@ -265,6 +294,39 @@ aes_ctr_release(archive_crypto_ctx *ctx) HeapFree(GetProcessHeap(), 0, ctx->keyObj); ctx->keyObj = NULL; } + memset(ctx, 0, sizeof(*ctx)); + return 0; +} + +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) + +static int +aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) +{ + mbedtls_aes_init(&ctx->ctx); + ctx->key_len = key_len; + memcpy(ctx->key, key, key_len); + memset(ctx->nonce, 0, sizeof(ctx->nonce)); + ctx->encr_pos = AES_BLOCK_SIZE; + return 0; +} + +static int +aes_ctr_encrypt_counter(archive_crypto_ctx *ctx) +{ + if (mbedtls_aes_setkey_enc(&ctx->ctx, ctx->key, + ctx->key_len * 8) != 0) + return (-1); + if (mbedtls_aes_crypt_ecb(&ctx->ctx, MBEDTLS_AES_ENCRYPT, ctx->nonce, + ctx->encr_buf) != 0) + return (-1); + return 0; +} + +static int +aes_ctr_release(archive_crypto_ctx *ctx) +{ + mbedtls_aes_free(&ctx->ctx); memset(ctx, 0, sizeof(*ctx)); return 0; } Modified: stable/11/contrib/libarchive/libarchive/archive_cryptor_private.h ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_cryptor_private.h Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_cryptor_private.h Wed Feb 19 01:50:47 2020 (r358088) @@ -23,13 +23,12 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __LIBARCHIVE_BUILD -#error This header is only to be used internally to libarchive. -#endif - #ifndef ARCHIVE_CRYPTOR_PRIVATE_H_INCLUDED #define ARCHIVE_CRYPTOR_PRIVATE_H_INCLUDED +#ifndef __LIBARCHIVE_BUILD +#error This header is only to be used internally to libarchive. +#endif /* * On systems that do not support any recognized crypto libraries, * the archive_cryptor.c file will normally define no usable symbols. @@ -78,6 +77,23 @@ typedef struct { BCRYPT_KEY_HANDLE hKey; PBYTE keyObj; DWORD keyObj_len; + uint8_t nonce[AES_BLOCK_SIZE]; + uint8_t encr_buf[AES_BLOCK_SIZE]; + unsigned encr_pos; +} archive_crypto_ctx; + +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) +#include +#include +#include + +#define AES_MAX_KEY_SIZE 32 +#define AES_BLOCK_SIZE 16 + +typedef struct { + mbedtls_aes_context ctx; + uint8_t key[AES_MAX_KEY_SIZE]; + unsigned key_len; uint8_t nonce[AES_BLOCK_SIZE]; uint8_t encr_buf[AES_BLOCK_SIZE]; unsigned encr_pos; Modified: stable/11/contrib/libarchive/libarchive/archive_digest.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_digest.c Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_digest.c Wed Feb 19 01:50:47 2020 (r358088) @@ -178,6 +178,40 @@ __archive_libsystem_md5final(archive_md5_ctx *ctx, voi return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) + +static int +__archive_mbedtls_md5init(archive_md5_ctx *ctx) +{ + mbedtls_md5_init(ctx); + if (mbedtls_md5_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_md5update(archive_md5_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_md5final(archive_md5_ctx *ctx, void *md) +{ + if (mbedtls_md5_finish_ret(ctx, md) == 0) { + mbedtls_md5_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_md5_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) static int @@ -335,6 +369,40 @@ __archive_libmd_ripemd160final(archive_rmd160_ctx *ctx return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) + +static int +__archive_mbedtls_ripemd160init(archive_rmd160_ctx *ctx) +{ + mbedtls_ripemd160_init(ctx); + if (mbedtls_ripemd160_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_ripemd160final(archive_rmd160_ctx *ctx, void *md) +{ + if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { + mbedtls_ripemd160_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_ripemd160_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) static int @@ -491,6 +559,40 @@ __archive_libsystem_sha1final(archive_sha1_ctx *ctx, v return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) + +static int +__archive_mbedtls_sha1init(archive_sha1_ctx *ctx) +{ + mbedtls_sha1_init(ctx); + if (mbedtls_sha1_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha1update(archive_sha1_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha1final(archive_sha1_ctx *ctx, void *md) +{ + if (mbedtls_sha1_finish_ret(ctx, md) == 0) { + mbedtls_sha1_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha1_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) static int @@ -720,6 +822,40 @@ __archive_libsystem_sha256final(archive_sha256_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) + +static int +__archive_mbedtls_sha256init(archive_sha256_ctx *ctx) +{ + mbedtls_sha256_init(ctx); + if (mbedtls_sha256_starts_ret(ctx, 0) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha256update(archive_sha256_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha256final(archive_sha256_ctx *ctx, void *md) +{ + if (mbedtls_sha256_finish_ret(ctx, md) == 0) { + mbedtls_sha256_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha256_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) static int @@ -921,6 +1057,40 @@ __archive_libsystem_sha384final(archive_sha384_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) + +static int +__archive_mbedtls_sha384init(archive_sha384_ctx *ctx) +{ + mbedtls_sha512_init(ctx); + if (mbedtls_sha512_starts_ret(ctx, 1) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha384update(archive_sha384_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha384final(archive_sha384_ctx *ctx, void *md) +{ + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha512_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) static int @@ -1146,6 +1316,40 @@ __archive_libsystem_sha512final(archive_sha512_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) + +static int +__archive_mbedtls_sha512init(archive_sha512_ctx *ctx) +{ + mbedtls_sha512_init(ctx); + if (mbedtls_sha512_starts_ret(ctx, 0) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha512update(archive_sha512_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha512final(archive_sha512_ctx *ctx, void *md) +{ + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha512_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) static int @@ -1276,6 +1480,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_md5init, &__archive_libsystem_md5update, &__archive_libsystem_md5final, +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) + &__archive_mbedtls_md5init, + &__archive_mbedtls_md5update, + &__archive_mbedtls_md5final, #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) &__archive_nettle_md5init, &__archive_nettle_md5update, @@ -1303,6 +1511,10 @@ const struct archive_digest __archive_digest = &__archive_libmd_ripemd160init, &__archive_libmd_ripemd160update, &__archive_libmd_ripemd160final, +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) + &__archive_mbedtls_ripemd160init, + &__archive_mbedtls_ripemd160update, + &__archive_mbedtls_ripemd160final, #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) &__archive_nettle_ripemd160init, &__archive_nettle_ripemd160update, @@ -1330,6 +1542,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha1init, &__archive_libsystem_sha1update, &__archive_libsystem_sha1final, +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) + &__archive_mbedtls_sha1init, + &__archive_mbedtls_sha1update, + &__archive_mbedtls_sha1final, #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) &__archive_nettle_sha1init, &__archive_nettle_sha1update, @@ -1369,6 +1585,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha256init, &__archive_libsystem_sha256update, &__archive_libsystem_sha256final, +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) + &__archive_mbedtls_sha256init, + &__archive_mbedtls_sha256update, + &__archive_mbedtls_sha256final, #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) &__archive_nettle_sha256init, &__archive_nettle_sha256update, @@ -1404,6 +1624,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha384init, &__archive_libsystem_sha384update, &__archive_libsystem_sha384final, +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) + &__archive_mbedtls_sha384init, + &__archive_mbedtls_sha384update, + &__archive_mbedtls_sha384final, #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) &__archive_nettle_sha384init, &__archive_nettle_sha384update, @@ -1443,6 +1667,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha512init, &__archive_libsystem_sha512update, &__archive_libsystem_sha512final +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) + &__archive_mbedtls_sha512init, + &__archive_mbedtls_sha512update, + &__archive_mbedtls_sha512final #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) &__archive_nettle_sha512init, &__archive_nettle_sha512update, Modified: stable/11/contrib/libarchive/libarchive/archive_digest_private.h ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_digest_private.h Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_digest_private.h Wed Feb 19 01:50:47 2020 (r358088) @@ -24,13 +24,12 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef ARCHIVE_DIGEST_PRIVATE_H_INCLUDED +#define ARCHIVE_DIGEST_PRIVATE_H_INCLUDED + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif - -#ifndef ARCHIVE_CRYPTO_PRIVATE_H_INCLUDED -#define ARCHIVE_CRYPTO_PRIVATE_H_INCLUDED - /* * Crypto support in various Operating Systems: * @@ -112,6 +111,24 @@ #include #endif +/* mbed TLS crypto headers */ +#if defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) ||\ + defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) +#include +#endif + /* Nettle crypto headers */ #if defined(ARCHIVE_CRYPTO_MD5_NETTLE) #include @@ -159,6 +176,8 @@ typedef MD5_CTX archive_md5_ctx; typedef MD5_CTX archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) typedef CC_MD5_CTX archive_md5_ctx; +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) +typedef mbedtls_md5_context archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) typedef struct md5_ctx archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) @@ -173,6 +192,8 @@ typedef unsigned char archive_md5_ctx; typedef RMD160_CTX archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) typedef RIPEMD160_CTX archive_rmd160_ctx; +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) +typedef mbedtls_ripemd160_context archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) typedef struct ripemd160_ctx archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) @@ -187,6 +208,8 @@ typedef SHA1_CTX archive_sha1_ctx; typedef SHA1_CTX archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) typedef CC_SHA1_CTX archive_sha1_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) +typedef mbedtls_sha1_context archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) typedef struct sha1_ctx archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) @@ -207,6 +230,8 @@ typedef SHA2_CTX archive_sha256_ctx; typedef SHA256_CTX archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) typedef CC_SHA256_CTX archive_sha256_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) +typedef mbedtls_sha256_context archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) typedef struct sha256_ctx archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) @@ -225,6 +250,8 @@ typedef SHA384_CTX archive_sha384_ctx; typedef SHA2_CTX archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) typedef CC_SHA512_CTX archive_sha384_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) +typedef mbedtls_sha512_context archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) typedef struct sha384_ctx archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) @@ -245,6 +272,8 @@ typedef SHA2_CTX archive_sha512_ctx; typedef SHA512_CTX archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) typedef CC_SHA512_CTX archive_sha512_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) +typedef mbedtls_sha512_context archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) typedef struct sha512_ctx archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) @@ -259,6 +288,7 @@ typedef unsigned char archive_sha512_ctx; #if defined(ARCHIVE_CRYPTO_MD5_LIBC) ||\ defined(ARCHIVE_CRYPTO_MD5_LIBMD) || \ defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_MD5_NETTLE) ||\ defined(ARCHIVE_CRYPTO_MD5_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_MD5_WIN) @@ -272,6 +302,7 @@ typedef unsigned char archive_sha512_ctx; __archive_digest.md5update(ctx, buf, n) #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) ||\ + defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_RMD160_NETTLE) ||\ defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) #define ARCHIVE_HAS_RMD160 @@ -286,6 +317,7 @@ typedef unsigned char archive_sha512_ctx; #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) ||\ defined(ARCHIVE_CRYPTO_SHA1_LIBMD) || \ defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA1_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA1_WIN) @@ -303,6 +335,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA256_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA256_LIBMD) ||\ defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA256_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA256_WIN) @@ -319,6 +352,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA384_LIBC2) ||\ defined(ARCHIVE_CRYPTO_SHA384_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA384_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA384_WIN) @@ -336,6 +370,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA512_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA512_LIBMD) ||\ defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA512_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA512_WIN) Modified: stable/11/contrib/libarchive/libarchive/archive_endian.h ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_endian.h Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_endian.h Wed Feb 19 01:50:47 2020 (r358088) @@ -28,16 +28,15 @@ * Borrowed from FreeBSD's */ -#ifndef __LIBARCHIVE_BUILD -#error This header is only to be used internally to libarchive. -#endif +#ifndef ARCHIVE_ENDIAN_H_INCLUDED +#define ARCHIVE_ENDIAN_H_INCLUDED /* Note: This is a purely internal header! */ /* Do not use this outside of libarchive internal code! */ -#ifndef ARCHIVE_ENDIAN_H_INCLUDED -#define ARCHIVE_ENDIAN_H_INCLUDED - +#ifndef __LIBARCHIVE_BUILD +#error This header is only to be used internally to libarchive. +#endif /* * Disabling inline keyword for compilers known to choke on it: Modified: stable/11/contrib/libarchive/libarchive/archive_entry.c ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_entry.c Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_entry.c Wed Feb 19 01:50:47 2020 (r358088) @@ -1699,7 +1699,7 @@ static const struct flag { const wchar_t *wname; unsigned long set; unsigned long clear; -} flags[] = { +} fileflags[] = { /* Preferred (shorter) names per flag first, all prefixed by "no" */ #ifdef SF_APPEND { "nosappnd", L"nosappnd", SF_APPEND, 0}, @@ -1876,7 +1876,7 @@ ae_fflagstostr(unsigned long bitset, unsigned long bit bits = bitset | bitclear; length = 0; - for (flag = flags; flag->name != NULL; flag++) + for (flag = fileflags; flag->name != NULL; flag++) if (bits & (flag->set | flag->clear)) { length += strlen(flag->name) + 1; bits &= ~(flag->set | flag->clear); @@ -1889,7 +1889,7 @@ ae_fflagstostr(unsigned long bitset, unsigned long bit return (NULL); dp = string; - for (flag = flags; flag->name != NULL; flag++) { + for (flag = fileflags; flag->name != NULL; flag++) { if (bitset & flag->set || bitclear & flag->clear) { sp = flag->name + 2; } else if (bitset & flag->clear || bitclear & flag->set) { @@ -1941,7 +1941,7 @@ ae_strtofflags(const char *s, unsigned long *setp, uns *end != ' ' && *end != ',') end++; length = end - start; - for (flag = flags; flag->name != NULL; flag++) { + for (flag = fileflags; flag->name != NULL; flag++) { size_t flag_length = strlen(flag->name); if (length == flag_length && memcmp(start, flag->name, length) == 0) { @@ -2009,7 +2009,7 @@ ae_wcstofflags(const wchar_t *s, unsigned long *setp, *end != L' ' && *end != L',') end++; length = end - start; - for (flag = flags; flag->wname != NULL; flag++) { + for (flag = fileflags; flag->wname != NULL; flag++) { size_t flag_length = wcslen(flag->wname); if (length == flag_length && wmemcmp(start, flag->wname, length) == 0) { Modified: stable/11/contrib/libarchive/libarchive/archive_entry.h ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_entry.h Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_entry.h Wed Feb 19 01:50:47 2020 (r358088) @@ -30,7 +30,7 @@ #define ARCHIVE_ENTRY_H_INCLUDED /* Note: Compiler will complain if this does not match archive.h! */ -#define ARCHIVE_VERSION_NUMBER 3004000 +#define ARCHIVE_VERSION_NUMBER 3004002 /* * Note: archive_entry.h is for use outside of libarchive; the @@ -524,9 +524,6 @@ __LA_DECL int archive_entry_acl_reset(struct archive_ __LA_DECL int archive_entry_acl_next(struct archive_entry *, int /* want_type */, int * /* type */, int * /* permset */, int * /* tag */, int * /* qual */, const char ** /* name */); -__LA_DECL int archive_entry_acl_next_w(struct archive_entry *, int /* want_type */, - int * /* type */, int * /* permset */, int * /* tag */, - int * /* qual */, const wchar_t ** /* name */); /* * Construct a text-format ACL. The flags argument is a bitmask that Modified: stable/11/contrib/libarchive/libarchive/archive_entry_acl.3 ============================================================================== --- stable/11/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Feb 19 01:46:43 2020 (r358087) +++ stable/11/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Feb 19 01:50:47 2020 (r358088) @@ -34,7 +34,6 @@ .Nm archive_entry_acl_from_text , .Nm archive_entry_acl_from_text_w , .Nm archive_entry_acl_next , -.Nm archive_entry_acl_next_w , .Nm archive_entry_acl_reset , .Nm archive_entry_acl_to_text , .Nm archive_entry_acl_to_text_w , @@ -89,16 +88,6 @@ Streaming Archive Library (libarchive, -larchive) .Fa "const char **ret_name" .Fc .Ft int -.Fo archive_entry_acl_next_w -.Fa "struct archive_entry *a" -.Fa "int type" -.Fa "int *ret_type" -.Fa "int *ret_permset" -.Fa "int *ret_tag" -.Fa "int *ret_qual" -.Fa "const wchar_t **ret_name" -.Fc -.Ft int .Fn archive_entry_acl_reset "struct archive_entry *a" "int type" .Ft char * .Fo archive_entry_acl_to_text @@ -349,8 +338,6 @@ character are skipped. .Pp .Fn archive_entry_acl_next -and -.Fn archive_entry_acl_next_w return the next entry of the ACL list. This functions may only be called after .Fn archive_entry_acl_reset @@ -358,9 +345,7 @@ has indicated the presence of extended ACL entries. .Pp .Fn archive_entry_acl_reset prepare reading the list of ACL entries with -.Fn archive_entry_acl_next -or -.Fn archive_entry_acl_next_w . +.Fn archive_entry_acl_next . *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Feb 19 01:51:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 152AE24BF9C; Wed, 19 Feb 2020 01:51:02 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Mgfs5Q0wz4CYm; Wed, 19 Feb 2020 01:51:01 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B05881568; Wed, 19 Feb 2020 01:51:01 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01J1p15e031680; Wed, 19 Feb 2020 01:51:01 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J1p1sZ031679; Wed, 19 Feb 2020 01:51:01 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <202002190151.01J1p1sZ031679@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Wed, 19 Feb 2020 01:51:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358089 - head/tests/sys/fs/fusefs X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/tests/sys/fs/fusefs X-SVN-Commit-Revision: 358089 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 01:51:02 -0000 Author: asomers Date: Wed Feb 19 01:51:01 2020 New Revision: 358089 URL: https://svnweb.freebsd.org/changeset/base/358089 Log: [skip ci] delete obsolete comment in fusefs tests It should've been deleted by r349436 MFC after: 2 weeks Modified: head/tests/sys/fs/fusefs/io.cc Modified: head/tests/sys/fs/fusefs/io.cc ============================================================================== --- head/tests/sys/fs/fusefs/io.cc Wed Feb 19 01:50:47 2020 (r358088) +++ head/tests/sys/fs/fusefs/io.cc Wed Feb 19 01:51:01 2020 (r358089) @@ -46,9 +46,6 @@ extern "C" { /* * For testing I/O like fsx does, but deterministically and without a real * underlying file system - * - * TODO: after fusefs gains the options to select cache mode for each mount - * point, run each of these tests for all cache modes. */ using namespace testing; From owner-svn-src-all@freebsd.org Wed Feb 19 01:51:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 454C924C0BE; Wed, 19 Feb 2020 01:51:50 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Mggn3ytrz4Dnt; Wed, 19 Feb 2020 01:51:49 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7708615AF; Wed, 19 Feb 2020 01:51:49 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01J1pnuQ033646; Wed, 19 Feb 2020 01:51:49 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J1pjJn033181; Wed, 19 Feb 2020 01:51:45 GMT (envelope-from mm@FreeBSD.org) Message-Id: <202002190151.01J1pjJn033181@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Wed, 19 Feb 2020 01:51:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r358090 - in stable/10: contrib/libarchive contrib/libarchive/cat contrib/libarchive/cat/test contrib/libarchive/cpio contrib/libarchive/cpio/test contrib/libarchive/libarchive contrib/... X-SVN-Group: stable-10 X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in stable/10: contrib/libarchive contrib/libarchive/cat contrib/libarchive/cat/test contrib/libarchive/cpio contrib/libarchive/cpio/test contrib/libarchive/libarchive contrib/libarchive/libarchive/tes... X-SVN-Commit-Revision: 358090 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 01:51:50 -0000 Author: mm Date: Wed Feb 19 01:51:44 2020 New Revision: 358090 URL: https://svnweb.freebsd.org/changeset/base/358090 Log: MFC r356212,r356366,r356416,r357785 Update libarchive to version 3.4.2 Relevant vendor changes (r356212): Issue #351: Refactor and implement private state logic for write filters PR #1252: RAR5 reader - verify window size for solid files (OSS-Fuzz 15482) PR #1255: zip writer - don't append unused NUL for directories PR #1260: Fix sparse file offset overflow on 32-bit systems PR #1263: UNICODE filename support for reading lha/lzh format Issue #1276: Bugfix and optimize archive_wstring_append_from_mbs() PR #1288: Add the "xattrhdr" option to pax write options PR #1295: 7z reader - fix reading archives with digests in PackInfo PR #1296: RAR5 reader - verify window size for multivolume archives PR #1297: ZIP reader - support LZMA_STREAM_END marker in 'lzma alone' files Issue #1298: Fix a heap-buffer-overflow in archive_string_append_from_wcs() OSS-Fuzz 19360, 19362: LHA reader - plug two memory leaks on error Fix possible off-by-one when dealing with readlink(2) Relevant vendor changes (r356366): Issue #1302: Plug memory leak on failure of archive_write_client_open() Relevant vendor changes (r356416): Issue #1302: Re-do fix for archive_write_client_open() Relevant vendor changes (r357785): PR #1289: atomic extraction support (bsdtar -x --safe-writes) PR #1308: big endian fix for UTF16 support in LHA reader PR #1326: reject RAR5 files that declare invalid header flags Issue #987: fix support 7z archive entries with Delta filter Issue #1317: fix compression output buffer handling in XAR writer Issue #1319: fix uname or gname longer than 32 characters in pax writer Issue #1325: fix use after free when archiving hardlinks in ISO9660 or XAR Use localtime_r() and gmtime_r() instead of localtime() and gmtime() Added: stable/10/contrib/libarchive/libarchive/archive_write_set_format_private.h - copied unchanged from r357785, head/contrib/libarchive/libarchive/archive_write_set_format_private.h stable/10/contrib/libarchive/libarchive/test/test_pax_xattr_header.c - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header.c stable/10/contrib/libarchive/libarchive/test/test_pax_xattr_header_all.tar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header_all.tar.uu stable/10/contrib/libarchive/libarchive/test/test_pax_xattr_header_libarchive.tar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header_libarchive.tar.uu stable/10/contrib/libarchive/libarchive/test/test_pax_xattr_header_schily.tar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_pax_xattr_header_schily.tar.uu stable/10/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu - copied unchanged from r357785, head/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu stable/10/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu - copied unchanged from r357785, head/contrib/libarchive/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu stable/10/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu stable/10/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.c - copied, changed from r356212, head/contrib/libarchive/libarchive/test/test_read_format_7zip_packinfo_digests.c stable/10/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.c - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.c stable/10/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu stable/10/contrib/libarchive/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu - copied unchanged from r357785, head/contrib/libarchive/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu stable/10/contrib/libarchive/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu stable/10/contrib/libarchive/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu - copied unchanged from r356212, head/contrib/libarchive/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu stable/10/contrib/libarchive/tar/test/test_option_safe_writes.c - copied unchanged from r357785, head/contrib/libarchive/tar/test/test_option_safe_writes.c Modified: stable/10/contrib/libarchive/NEWS stable/10/contrib/libarchive/cat/bsdcat.h stable/10/contrib/libarchive/cat/test/test_0.c stable/10/contrib/libarchive/cpio/cpio.c stable/10/contrib/libarchive/cpio/test/test_basic.c stable/10/contrib/libarchive/cpio/test/test_format_newc.c stable/10/contrib/libarchive/libarchive/archive.h stable/10/contrib/libarchive/libarchive/archive_acl_private.h stable/10/contrib/libarchive/libarchive/archive_blake2.h stable/10/contrib/libarchive/libarchive/archive_blake2_impl.h stable/10/contrib/libarchive/libarchive/archive_cmdline_private.h stable/10/contrib/libarchive/libarchive/archive_crc32.h stable/10/contrib/libarchive/libarchive/archive_cryptor.c stable/10/contrib/libarchive/libarchive/archive_cryptor_private.h stable/10/contrib/libarchive/libarchive/archive_digest.c stable/10/contrib/libarchive/libarchive/archive_digest_private.h stable/10/contrib/libarchive/libarchive/archive_endian.h stable/10/contrib/libarchive/libarchive/archive_entry.c stable/10/contrib/libarchive/libarchive/archive_entry.h stable/10/contrib/libarchive/libarchive/archive_entry_acl.3 stable/10/contrib/libarchive/libarchive/archive_entry_locale.h stable/10/contrib/libarchive/libarchive/archive_entry_private.h stable/10/contrib/libarchive/libarchive/archive_getdate.c stable/10/contrib/libarchive/libarchive/archive_getdate.h stable/10/contrib/libarchive/libarchive/archive_hmac.c stable/10/contrib/libarchive/libarchive/archive_hmac_private.h stable/10/contrib/libarchive/libarchive/archive_openssl_evp_private.h stable/10/contrib/libarchive/libarchive/archive_openssl_hmac_private.h stable/10/contrib/libarchive/libarchive/archive_options_private.h stable/10/contrib/libarchive/libarchive/archive_pack_dev.c stable/10/contrib/libarchive/libarchive/archive_pack_dev.h stable/10/contrib/libarchive/libarchive/archive_pathmatch.h stable/10/contrib/libarchive/libarchive/archive_platform_acl.h stable/10/contrib/libarchive/libarchive/archive_platform_xattr.h stable/10/contrib/libarchive/libarchive/archive_ppmd7.c stable/10/contrib/libarchive/libarchive/archive_ppmd7_private.h stable/10/contrib/libarchive/libarchive/archive_ppmd8_private.h stable/10/contrib/libarchive/libarchive/archive_ppmd_private.h stable/10/contrib/libarchive/libarchive/archive_private.h stable/10/contrib/libarchive/libarchive/archive_random_private.h stable/10/contrib/libarchive/libarchive/archive_rb.h stable/10/contrib/libarchive/libarchive/archive_read.c stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c stable/10/contrib/libarchive/libarchive/archive_read_disk_posix.c stable/10/contrib/libarchive/libarchive/archive_read_disk_private.h stable/10/contrib/libarchive/libarchive/archive_read_private.h stable/10/contrib/libarchive/libarchive/archive_read_set_options.3 stable/10/contrib/libarchive/libarchive/archive_read_support_filter_uu.c stable/10/contrib/libarchive/libarchive/archive_read_support_format_7zip.c stable/10/contrib/libarchive/libarchive/archive_read_support_format_lha.c stable/10/contrib/libarchive/libarchive/archive_read_support_format_mtree.c stable/10/contrib/libarchive/libarchive/archive_read_support_format_rar.c stable/10/contrib/libarchive/libarchive/archive_read_support_format_rar5.c stable/10/contrib/libarchive/libarchive/archive_read_support_format_warc.c stable/10/contrib/libarchive/libarchive/archive_read_support_format_xar.c stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c stable/10/contrib/libarchive/libarchive/archive_string.c stable/10/contrib/libarchive/libarchive/archive_string.h stable/10/contrib/libarchive/libarchive/archive_string_composition.h stable/10/contrib/libarchive/libarchive/archive_util.c stable/10/contrib/libarchive/libarchive/archive_write.c stable/10/contrib/libarchive/libarchive/archive_write_add_filter_b64encode.c stable/10/contrib/libarchive/libarchive/archive_write_add_filter_bzip2.c stable/10/contrib/libarchive/libarchive/archive_write_add_filter_compress.c stable/10/contrib/libarchive/libarchive/archive_write_add_filter_gzip.c stable/10/contrib/libarchive/libarchive/archive_write_add_filter_lz4.c stable/10/contrib/libarchive/libarchive/archive_write_add_filter_lzop.c stable/10/contrib/libarchive/libarchive/archive_write_add_filter_program.c stable/10/contrib/libarchive/libarchive/archive_write_add_filter_uuencode.c stable/10/contrib/libarchive/libarchive/archive_write_add_filter_xz.c stable/10/contrib/libarchive/libarchive/archive_write_add_filter_zstd.c stable/10/contrib/libarchive/libarchive/archive_write_disk.3 stable/10/contrib/libarchive/libarchive/archive_write_disk_posix.c stable/10/contrib/libarchive/libarchive/archive_write_disk_private.h stable/10/contrib/libarchive/libarchive/archive_write_private.h stable/10/contrib/libarchive/libarchive/archive_write_set_format.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_7zip.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_ar.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_cpio.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_cpio_newc.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_gnutar.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_iso9660.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_pax.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_shar.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_ustar.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_v7tar.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_warc.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_xar.c stable/10/contrib/libarchive/libarchive/archive_write_set_format_zip.c stable/10/contrib/libarchive/libarchive/archive_write_set_options.3 stable/10/contrib/libarchive/libarchive/archive_xxhash.h stable/10/contrib/libarchive/libarchive/filter_fork.h stable/10/contrib/libarchive/libarchive/test/test_archive_write_set_format_filter_by_ext.c stable/10/contrib/libarchive/libarchive/test/test_compat_zip.c stable/10/contrib/libarchive/libarchive/test/test_fuzz.c stable/10/contrib/libarchive/libarchive/test/test_open_failure.c stable/10/contrib/libarchive/libarchive/test/test_open_fd.c stable/10/contrib/libarchive/libarchive/test/test_read_disk_directory_traversals.c stable/10/contrib/libarchive/libarchive/test/test_read_extract.c stable/10/contrib/libarchive/libarchive/test/test_read_format_7zip.c stable/10/contrib/libarchive/libarchive/test/test_read_format_gtar_sparse.c stable/10/contrib/libarchive/libarchive/test/test_read_format_rar5.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_7075_utf8_paths.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_comment_stored.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_extra_padding.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_high_compression.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_jar.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_mac_metadata.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_malformed.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_msdos.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_nested.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_nofiletype.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_padded.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_sfx.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c stable/10/contrib/libarchive/libarchive/test/test_read_format_zip_zip64.c stable/10/contrib/libarchive/libarchive/test/test_read_pax_truncated.c stable/10/contrib/libarchive/libarchive/test/test_read_truncated_filter.c stable/10/contrib/libarchive/libarchive/test/test_sparse_basic.c stable/10/contrib/libarchive/libarchive/test/test_write_disk.c stable/10/contrib/libarchive/libarchive/test/test_write_format_cpio_empty.c stable/10/contrib/libarchive/libarchive/test/test_write_format_pax.c stable/10/contrib/libarchive/libarchive/test/test_write_format_shar_empty.c stable/10/contrib/libarchive/libarchive/test/test_write_format_tar.c stable/10/contrib/libarchive/libarchive/test/test_write_format_tar_sparse.c stable/10/contrib/libarchive/libarchive/test/test_write_format_xar.c stable/10/contrib/libarchive/libarchive/test/test_write_format_zip_file.c stable/10/contrib/libarchive/libarchive/test/test_write_format_zip_file_zip64.c stable/10/contrib/libarchive/libarchive_fe/err.h stable/10/contrib/libarchive/tar/bsdtar.1 stable/10/contrib/libarchive/tar/bsdtar.c stable/10/contrib/libarchive/tar/bsdtar.h stable/10/contrib/libarchive/tar/cmdline.c stable/10/contrib/libarchive/tar/test/test_basic.c stable/10/contrib/libarchive/tar/test/test_copy.c stable/10/contrib/libarchive/tar/test/test_option_C_upper.c stable/10/contrib/libarchive/tar/test/test_option_s.c stable/10/contrib/libarchive/tar/util.c stable/10/contrib/libarchive/test_utils/test_common.h stable/10/contrib/libarchive/test_utils/test_main.c stable/10/lib/libarchive/tests/Makefile stable/10/usr.bin/bsdcat/Makefile stable/10/usr.bin/cpio/Makefile stable/10/usr.bin/tar/Makefile stable/10/usr.bin/tar/tests/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/libarchive/NEWS ============================================================================== --- stable/10/contrib/libarchive/NEWS Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/NEWS Wed Feb 19 01:51:44 2020 (r358090) @@ -1,3 +1,17 @@ +Feb 11, 2020: libarchive 3.4.2 released + +Jan 23, 2020: Important fixes for writing XAR archives + +Jan 20, 2020: New tar option: --safe-writes (atomical file extraction) + +Jan 03, 2020: Support mbed TLS (PolarSSL) as optional crypto provider + +Dec 30, 2019: libarchive 3.4.1 released + +Dec 11, 2019: New pax write option "xattrhdr" + +Nov 17, 2019: Unicode filename support for reading lha/lzh archives + Jun 11, 2019: libarchive 3.4.0 released May 18, 2019: Fixes for reading Android APK and JAR archives Modified: stable/10/contrib/libarchive/cat/bsdcat.h ============================================================================== --- stable/10/contrib/libarchive/cat/bsdcat.h Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/cat/bsdcat.h Wed Feb 19 01:51:44 2020 (r358090) @@ -23,6 +23,9 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef BSDCAT_H_INCLUDED +#define BSDCAT_H_INCLUDED + #if defined(PLATFORM_CONFIG_H) /* Use hand-built config.h in environments that need it. */ #include PLATFORM_CONFIG_H @@ -54,3 +57,5 @@ void usage(FILE *stream, int eval); void bsdcat_next(void); void bsdcat_print_error(void); void bsdcat_read_to_stdout(const char* filename); + +#endif Modified: stable/10/contrib/libarchive/cat/test/test_0.c ============================================================================== --- stable/10/contrib/libarchive/cat/test/test_0.c Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/cat/test/test_0.c Wed Feb 19 01:51:44 2020 (r358090) @@ -59,7 +59,7 @@ DEFINE_TEST(test_0) * we know some option that will succeed. */ if (0 != systemf("%s --version >" DEV_NULL, testprog)) { - failure("Unable to successfully run: %s --version\n", testprog, testprog); + failure("Unable to successfully run: %s --version\n", testprog); assert(0); } Modified: stable/10/contrib/libarchive/cpio/cpio.c ============================================================================== --- stable/10/contrib/libarchive/cpio/cpio.c Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/cpio/cpio.c Wed Feb 19 01:51:44 2020 (r358090) @@ -1137,6 +1137,14 @@ list_item_verbose(struct cpio *cpio, struct archive_en const char *fmt; time_t mtime; static time_t now; + struct tm *ltime; +#if defined(HAVE_LOCALTIME_R) || defined(HAVE__LOCALTIME64_S) + struct tm tmbuf; +#endif +#if defined(HAVE__LOCALTIME64_S) + errno_t terr; + __time64_t tmptime; +#endif if (!now) time(&now); @@ -1184,7 +1192,19 @@ list_item_verbose(struct cpio *cpio, struct archive_en else fmt = cpio->day_first ? "%e %b %H:%M" : "%b %e %H:%M"; #endif - strftime(date, sizeof(date), fmt, localtime(&mtime)); +#if defined(HAVE_LOCALTIME_R) + ltime = localtime_r(&mtime, &tmbuf); +#elif defined(HAVE__LOCALTIME64_S) + tmptime = mtime; + terr = _localtime64_s(&tmbuf, &tmptime); + if (terr) + ltime = NULL; + else + ltime = &tmbuf; +#else + ltime = localtime(&mtime); +#endif + strftime(date, sizeof(date), fmt, ltime); fprintf(out, "%s%3d %-8s %-8s %8s %12s %s", archive_entry_strmode(entry), Modified: stable/10/contrib/libarchive/cpio/test/test_basic.c ============================================================================== --- stable/10/contrib/libarchive/cpio/test/test_basic.c Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/cpio/test/test_basic.c Wed Feb 19 01:51:44 2020 (r358090) @@ -33,15 +33,15 @@ verify_files(const char *msg) */ /* Regular file with 2 links. */ - failure(msg); + failure("%s", msg); assertIsReg("file", 0644); - failure(msg); + failure("%s", msg); assertFileSize("file", 10); - failure(msg); + failure("%s", msg); assertFileNLinks("file", 2); /* Another name for the same file. */ - failure(msg); + failure("%s", msg); assertIsHardlink("linkfile", "file"); /* Symlink */ @@ -49,11 +49,11 @@ verify_files(const char *msg) assertIsSymlink("symlink", "file", 0); /* Another file with 1 link and different permissions. */ - failure(msg); + failure("%s", msg); assertIsReg("file2", 0777); - failure(msg); + failure("%s", msg); assertFileSize("file2", 10); - failure(msg); + failure("%s", msg); assertFileNLinks("file2", 1); /* dir */ Modified: stable/10/contrib/libarchive/cpio/test/test_format_newc.c ============================================================================== --- stable/10/contrib/libarchive/cpio/test/test_format_newc.c Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/cpio/test/test_format_newc.c Wed Feb 19 01:51:44 2020 (r358090) @@ -205,9 +205,11 @@ DEFINE_TEST(test_format_newc) gid = from_hex(e + 30, 8); /* gid */ assertEqualMem(e + 38, "00000003", 8); /* nlink */ t = from_hex(e + 46, 8); /* mtime */ - failure("t=0x%08x now=0x%08x=%d", t, now, now); + failure("t=%#08jx now=%#08jx=%jd", (intmax_t)t, (intmax_t)now, + (intmax_t)now); assert(t <= now); /* File wasn't created in future. */ - failure("t=0x%08x now - 2=0x%08x = %d", t, now - 2, now - 2); + failure("t=%#08jx now - 2=%#08jx=%jd", (intmax_t)t, (intmax_t)now - 2, + (intmax_t)now - 2); assert(t >= now - 2); /* File was created w/in last 2 secs. */ failure("newc format stores body only with last appearance of a link\n" " first appearance should be empty, so this file size\n" @@ -243,7 +245,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000001", 8); /* nlink */ t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created" + " at t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000005", 8); /* File size */ fs = from_hex(e + 54, 8); @@ -278,7 +281,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(nlinks("dir"), from_hex(e + 38, 8)); /* nlinks */ #endif t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created at" + "t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000000", 8); /* File size */ fs = from_hex(e + 54, 8); @@ -311,7 +315,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000003", 8); /* nlink */ t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created at" + "t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualInt(10, from_hex(e + 54, 8)); /* File size */ fs = from_hex(e + 54, 8); Modified: stable/10/contrib/libarchive/libarchive/archive.h ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive.h Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive.h Wed Feb 19 01:51:44 2020 (r358090) @@ -36,7 +36,7 @@ * assert that ARCHIVE_VERSION_NUMBER >= 2012108. */ /* Note: Compiler will complain if this does not match archive_entry.h! */ -#define ARCHIVE_VERSION_NUMBER 3004000 +#define ARCHIVE_VERSION_NUMBER 3004002 #include #include /* for wchar_t */ @@ -155,7 +155,7 @@ __LA_DECL int archive_version_number(void); /* * Textual name/version of the library, useful for version displays. */ -#define ARCHIVE_VERSION_ONLY_STRING "3.4.0" +#define ARCHIVE_VERSION_ONLY_STRING "3.4.2" #define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING __LA_DECL const char * archive_version_string(void); @@ -693,6 +693,8 @@ __LA_DECL int archive_read_set_passphrase_callback(str #define ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS (0x10000) /* Default: Do not clear no-change flags when unlinking object */ #define ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS (0x20000) +/* Default: Do not extract atomically (using rename) */ +#define ARCHIVE_EXTRACT_SAFE_WRITES (0x40000) __LA_DECL int archive_read_extract(struct archive *, struct archive_entry *, int flags); Modified: stable/10/contrib/libarchive/libarchive/archive_acl_private.h ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_acl_private.h Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_acl_private.h Wed Feb 19 01:51:44 2020 (r358090) @@ -25,12 +25,12 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_ACL_PRIVATE_H_INCLUDED +#define ARCHIVE_ACL_PRIVATE_H_INCLUDED + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif - -#ifndef ARCHIVE_ACL_PRIVATE_H_INCLUDED -#define ARCHIVE_ACL_PRIVATE_H_INCLUDED #include "archive_string.h" Modified: stable/10/contrib/libarchive/libarchive/archive_blake2.h ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_blake2.h Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_blake2.h Wed Feb 19 01:51:44 2020 (r358090) @@ -12,8 +12,9 @@ More information about the BLAKE2 hash function can be found at https://blake2.net. */ -#ifndef BLAKE2_H -#define BLAKE2_H + +#ifndef ARCHIVE_BLAKE2_H +#define ARCHIVE_BLAKE2_H #include #include Modified: stable/10/contrib/libarchive/libarchive/archive_blake2_impl.h ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_blake2_impl.h Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_blake2_impl.h Wed Feb 19 01:51:44 2020 (r358090) @@ -12,8 +12,9 @@ More information about the BLAKE2 hash function can be found at https://blake2.net. */ -#ifndef BLAKE2_IMPL_H -#define BLAKE2_IMPL_H + +#ifndef ARCHIVE_BLAKE2_IMPL_H +#define ARCHIVE_BLAKE2_IMPL_H #include #include Modified: stable/10/contrib/libarchive/libarchive/archive_cmdline_private.h ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_cmdline_private.h Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_cmdline_private.h Wed Feb 19 01:51:44 2020 (r358090) @@ -25,14 +25,14 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_CMDLINE_PRIVATE_H +#define ARCHIVE_CMDLINE_PRIVATE_H + #ifndef __LIBARCHIVE_BUILD #ifndef __LIBARCHIVE_TEST #error This header is only to be used internally to libarchive. #endif #endif - -#ifndef ARCHIVE_CMDLINE_PRIVATE_H -#define ARCHIVE_CMDLINE_PRIVATE_H struct archive_cmdline { char *path; Modified: stable/10/contrib/libarchive/libarchive/archive_crc32.h ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_crc32.h Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_crc32.h Wed Feb 19 01:51:44 2020 (r358090) @@ -25,6 +25,9 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_CRC32_H +#define ARCHIVE_CRC32_H + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif @@ -76,3 +79,5 @@ crc32(unsigned long crc, const void *_p, size_t len) crc = crc_tbl[(crc ^ *p++) & 0xff] ^ (crc >> 8); return (crc ^ 0xffffffffUL); } + +#endif Modified: stable/10/contrib/libarchive/libarchive/archive_cryptor.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_cryptor.c Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_cryptor.c Wed Feb 19 01:51:44 2020 (r358090) @@ -85,6 +85,35 @@ pbkdf2_sha1(const char *pw, size_t pw_len, const uint8 return (BCRYPT_SUCCESS(status)) ? 0: -1; } +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_PKCS5_H) + +static int +pbkdf2_sha1(const char *pw, size_t pw_len, const uint8_t *salt, + size_t salt_len, unsigned rounds, uint8_t *derived_key, + size_t derived_key_len) +{ + mbedtls_md_context_t ctx; + const mbedtls_md_info_t *info; + int ret; + + mbedtls_md_init(&ctx); + info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); + if (info == NULL) { + mbedtls_md_free(&ctx); + return (-1); + } + ret = mbedtls_md_setup(&ctx, info, 1); + if (ret != 0) { + mbedtls_md_free(&ctx); + return (-1); + } + ret = mbedtls_pkcs5_pbkdf2_hmac(&ctx, (const unsigned char *)pw, + pw_len, salt, salt_len, rounds, derived_key_len, derived_key); + + mbedtls_md_free(&ctx); + return (ret); +} + #elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_PBKDF2_H) static int @@ -265,6 +294,39 @@ aes_ctr_release(archive_crypto_ctx *ctx) HeapFree(GetProcessHeap(), 0, ctx->keyObj); ctx->keyObj = NULL; } + memset(ctx, 0, sizeof(*ctx)); + return 0; +} + +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) + +static int +aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) +{ + mbedtls_aes_init(&ctx->ctx); + ctx->key_len = key_len; + memcpy(ctx->key, key, key_len); + memset(ctx->nonce, 0, sizeof(ctx->nonce)); + ctx->encr_pos = AES_BLOCK_SIZE; + return 0; +} + +static int +aes_ctr_encrypt_counter(archive_crypto_ctx *ctx) +{ + if (mbedtls_aes_setkey_enc(&ctx->ctx, ctx->key, + ctx->key_len * 8) != 0) + return (-1); + if (mbedtls_aes_crypt_ecb(&ctx->ctx, MBEDTLS_AES_ENCRYPT, ctx->nonce, + ctx->encr_buf) != 0) + return (-1); + return 0; +} + +static int +aes_ctr_release(archive_crypto_ctx *ctx) +{ + mbedtls_aes_free(&ctx->ctx); memset(ctx, 0, sizeof(*ctx)); return 0; } Modified: stable/10/contrib/libarchive/libarchive/archive_cryptor_private.h ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_cryptor_private.h Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_cryptor_private.h Wed Feb 19 01:51:44 2020 (r358090) @@ -23,13 +23,12 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __LIBARCHIVE_BUILD -#error This header is only to be used internally to libarchive. -#endif - #ifndef ARCHIVE_CRYPTOR_PRIVATE_H_INCLUDED #define ARCHIVE_CRYPTOR_PRIVATE_H_INCLUDED +#ifndef __LIBARCHIVE_BUILD +#error This header is only to be used internally to libarchive. +#endif /* * On systems that do not support any recognized crypto libraries, * the archive_cryptor.c file will normally define no usable symbols. @@ -78,6 +77,23 @@ typedef struct { BCRYPT_KEY_HANDLE hKey; PBYTE keyObj; DWORD keyObj_len; + uint8_t nonce[AES_BLOCK_SIZE]; + uint8_t encr_buf[AES_BLOCK_SIZE]; + unsigned encr_pos; +} archive_crypto_ctx; + +#elif defined(HAVE_LIBMBEDCRYPTO) && defined(HAVE_MBEDTLS_AES_H) +#include +#include +#include + +#define AES_MAX_KEY_SIZE 32 +#define AES_BLOCK_SIZE 16 + +typedef struct { + mbedtls_aes_context ctx; + uint8_t key[AES_MAX_KEY_SIZE]; + unsigned key_len; uint8_t nonce[AES_BLOCK_SIZE]; uint8_t encr_buf[AES_BLOCK_SIZE]; unsigned encr_pos; Modified: stable/10/contrib/libarchive/libarchive/archive_digest.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_digest.c Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_digest.c Wed Feb 19 01:51:44 2020 (r358090) @@ -178,6 +178,40 @@ __archive_libsystem_md5final(archive_md5_ctx *ctx, voi return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) + +static int +__archive_mbedtls_md5init(archive_md5_ctx *ctx) +{ + mbedtls_md5_init(ctx); + if (mbedtls_md5_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_md5update(archive_md5_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_md5final(archive_md5_ctx *ctx, void *md) +{ + if (mbedtls_md5_finish_ret(ctx, md) == 0) { + mbedtls_md5_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_md5_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) static int @@ -335,6 +369,40 @@ __archive_libmd_ripemd160final(archive_rmd160_ctx *ctx return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) + +static int +__archive_mbedtls_ripemd160init(archive_rmd160_ctx *ctx) +{ + mbedtls_ripemd160_init(ctx); + if (mbedtls_ripemd160_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_ripemd160final(archive_rmd160_ctx *ctx, void *md) +{ + if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { + mbedtls_ripemd160_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_ripemd160_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) static int @@ -491,6 +559,40 @@ __archive_libsystem_sha1final(archive_sha1_ctx *ctx, v return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) + +static int +__archive_mbedtls_sha1init(archive_sha1_ctx *ctx) +{ + mbedtls_sha1_init(ctx); + if (mbedtls_sha1_starts_ret(ctx) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha1update(archive_sha1_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha1final(archive_sha1_ctx *ctx, void *md) +{ + if (mbedtls_sha1_finish_ret(ctx, md) == 0) { + mbedtls_sha1_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha1_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) static int @@ -720,6 +822,40 @@ __archive_libsystem_sha256final(archive_sha256_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) + +static int +__archive_mbedtls_sha256init(archive_sha256_ctx *ctx) +{ + mbedtls_sha256_init(ctx); + if (mbedtls_sha256_starts_ret(ctx, 0) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha256update(archive_sha256_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha256final(archive_sha256_ctx *ctx, void *md) +{ + if (mbedtls_sha256_finish_ret(ctx, md) == 0) { + mbedtls_sha256_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha256_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) static int @@ -921,6 +1057,40 @@ __archive_libsystem_sha384final(archive_sha384_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) + +static int +__archive_mbedtls_sha384init(archive_sha384_ctx *ctx) +{ + mbedtls_sha512_init(ctx); + if (mbedtls_sha512_starts_ret(ctx, 1) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha384update(archive_sha384_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha384final(archive_sha384_ctx *ctx, void *md) +{ + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha512_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) static int @@ -1146,6 +1316,40 @@ __archive_libsystem_sha512final(archive_sha512_ctx *ct return (ARCHIVE_OK); } +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) + +static int +__archive_mbedtls_sha512init(archive_sha512_ctx *ctx) +{ + mbedtls_sha512_init(ctx); + if (mbedtls_sha512_starts_ret(ctx, 0) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha512update(archive_sha512_ctx *ctx, const void *indata, + size_t insize) +{ + if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) + return (ARCHIVE_OK); + else + return (ARCHIVE_FATAL); +} + +static int +__archive_mbedtls_sha512final(archive_sha512_ctx *ctx, void *md) +{ + if (mbedtls_sha512_finish_ret(ctx, md) == 0) { + mbedtls_sha512_free(ctx); + return (ARCHIVE_OK); + } else { + mbedtls_sha512_free(ctx); + return (ARCHIVE_FATAL); + } +} + #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) static int @@ -1276,6 +1480,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_md5init, &__archive_libsystem_md5update, &__archive_libsystem_md5final, +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) + &__archive_mbedtls_md5init, + &__archive_mbedtls_md5update, + &__archive_mbedtls_md5final, #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) &__archive_nettle_md5init, &__archive_nettle_md5update, @@ -1303,6 +1511,10 @@ const struct archive_digest __archive_digest = &__archive_libmd_ripemd160init, &__archive_libmd_ripemd160update, &__archive_libmd_ripemd160final, +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) + &__archive_mbedtls_ripemd160init, + &__archive_mbedtls_ripemd160update, + &__archive_mbedtls_ripemd160final, #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) &__archive_nettle_ripemd160init, &__archive_nettle_ripemd160update, @@ -1330,6 +1542,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha1init, &__archive_libsystem_sha1update, &__archive_libsystem_sha1final, +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) + &__archive_mbedtls_sha1init, + &__archive_mbedtls_sha1update, + &__archive_mbedtls_sha1final, #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) &__archive_nettle_sha1init, &__archive_nettle_sha1update, @@ -1369,6 +1585,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha256init, &__archive_libsystem_sha256update, &__archive_libsystem_sha256final, +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) + &__archive_mbedtls_sha256init, + &__archive_mbedtls_sha256update, + &__archive_mbedtls_sha256final, #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) &__archive_nettle_sha256init, &__archive_nettle_sha256update, @@ -1404,6 +1624,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha384init, &__archive_libsystem_sha384update, &__archive_libsystem_sha384final, +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) + &__archive_mbedtls_sha384init, + &__archive_mbedtls_sha384update, + &__archive_mbedtls_sha384final, #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) &__archive_nettle_sha384init, &__archive_nettle_sha384update, @@ -1443,6 +1667,10 @@ const struct archive_digest __archive_digest = &__archive_libsystem_sha512init, &__archive_libsystem_sha512update, &__archive_libsystem_sha512final +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) + &__archive_mbedtls_sha512init, + &__archive_mbedtls_sha512update, + &__archive_mbedtls_sha512final #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) &__archive_nettle_sha512init, &__archive_nettle_sha512update, Modified: stable/10/contrib/libarchive/libarchive/archive_digest_private.h ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_digest_private.h Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_digest_private.h Wed Feb 19 01:51:44 2020 (r358090) @@ -24,13 +24,12 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef ARCHIVE_DIGEST_PRIVATE_H_INCLUDED +#define ARCHIVE_DIGEST_PRIVATE_H_INCLUDED + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif - -#ifndef ARCHIVE_CRYPTO_PRIVATE_H_INCLUDED -#define ARCHIVE_CRYPTO_PRIVATE_H_INCLUDED - /* * Crypto support in various Operating Systems: * @@ -112,6 +111,24 @@ #include #endif +/* mbed TLS crypto headers */ +#if defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) +#include +#endif +#if defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) ||\ + defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) +#include +#endif + /* Nettle crypto headers */ #if defined(ARCHIVE_CRYPTO_MD5_NETTLE) #include @@ -159,6 +176,8 @@ typedef MD5_CTX archive_md5_ctx; typedef MD5_CTX archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) typedef CC_MD5_CTX archive_md5_ctx; +#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) +typedef mbedtls_md5_context archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) typedef struct md5_ctx archive_md5_ctx; #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) @@ -173,6 +192,8 @@ typedef unsigned char archive_md5_ctx; typedef RMD160_CTX archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) typedef RIPEMD160_CTX archive_rmd160_ctx; +#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) +typedef mbedtls_ripemd160_context archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) typedef struct ripemd160_ctx archive_rmd160_ctx; #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) @@ -187,6 +208,8 @@ typedef SHA1_CTX archive_sha1_ctx; typedef SHA1_CTX archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) typedef CC_SHA1_CTX archive_sha1_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) +typedef mbedtls_sha1_context archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) typedef struct sha1_ctx archive_sha1_ctx; #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) @@ -207,6 +230,8 @@ typedef SHA2_CTX archive_sha256_ctx; typedef SHA256_CTX archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) typedef CC_SHA256_CTX archive_sha256_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) +typedef mbedtls_sha256_context archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) typedef struct sha256_ctx archive_sha256_ctx; #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) @@ -225,6 +250,8 @@ typedef SHA384_CTX archive_sha384_ctx; typedef SHA2_CTX archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) typedef CC_SHA512_CTX archive_sha384_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) +typedef mbedtls_sha512_context archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) typedef struct sha384_ctx archive_sha384_ctx; #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) @@ -245,6 +272,8 @@ typedef SHA2_CTX archive_sha512_ctx; typedef SHA512_CTX archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) typedef CC_SHA512_CTX archive_sha512_ctx; +#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) +typedef mbedtls_sha512_context archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) typedef struct sha512_ctx archive_sha512_ctx; #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) @@ -259,6 +288,7 @@ typedef unsigned char archive_sha512_ctx; #if defined(ARCHIVE_CRYPTO_MD5_LIBC) ||\ defined(ARCHIVE_CRYPTO_MD5_LIBMD) || \ defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_MD5_NETTLE) ||\ defined(ARCHIVE_CRYPTO_MD5_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_MD5_WIN) @@ -272,6 +302,7 @@ typedef unsigned char archive_sha512_ctx; __archive_digest.md5update(ctx, buf, n) #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) ||\ + defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_RMD160_NETTLE) ||\ defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) #define ARCHIVE_HAS_RMD160 @@ -286,6 +317,7 @@ typedef unsigned char archive_sha512_ctx; #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) ||\ defined(ARCHIVE_CRYPTO_SHA1_LIBMD) || \ defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA1_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA1_WIN) @@ -303,6 +335,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA256_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA256_LIBMD) ||\ defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA256_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA256_WIN) @@ -319,6 +352,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA384_LIBC2) ||\ defined(ARCHIVE_CRYPTO_SHA384_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA384_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA384_WIN) @@ -336,6 +370,7 @@ typedef unsigned char archive_sha512_ctx; defined(ARCHIVE_CRYPTO_SHA512_LIBC3) ||\ defined(ARCHIVE_CRYPTO_SHA512_LIBMD) ||\ defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) ||\ + defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) ||\ defined(ARCHIVE_CRYPTO_SHA512_NETTLE) ||\ defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA512_WIN) Modified: stable/10/contrib/libarchive/libarchive/archive_endian.h ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_endian.h Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_endian.h Wed Feb 19 01:51:44 2020 (r358090) @@ -28,16 +28,15 @@ * Borrowed from FreeBSD's */ -#ifndef __LIBARCHIVE_BUILD -#error This header is only to be used internally to libarchive. -#endif +#ifndef ARCHIVE_ENDIAN_H_INCLUDED +#define ARCHIVE_ENDIAN_H_INCLUDED /* Note: This is a purely internal header! */ /* Do not use this outside of libarchive internal code! */ -#ifndef ARCHIVE_ENDIAN_H_INCLUDED -#define ARCHIVE_ENDIAN_H_INCLUDED - +#ifndef __LIBARCHIVE_BUILD +#error This header is only to be used internally to libarchive. +#endif /* * Disabling inline keyword for compilers known to choke on it: Modified: stable/10/contrib/libarchive/libarchive/archive_entry.c ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_entry.c Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_entry.c Wed Feb 19 01:51:44 2020 (r358090) @@ -1699,7 +1699,7 @@ static const struct flag { const wchar_t *wname; unsigned long set; unsigned long clear; -} flags[] = { +} fileflags[] = { /* Preferred (shorter) names per flag first, all prefixed by "no" */ #ifdef SF_APPEND { "nosappnd", L"nosappnd", SF_APPEND, 0}, @@ -1876,7 +1876,7 @@ ae_fflagstostr(unsigned long bitset, unsigned long bit bits = bitset | bitclear; length = 0; - for (flag = flags; flag->name != NULL; flag++) + for (flag = fileflags; flag->name != NULL; flag++) if (bits & (flag->set | flag->clear)) { length += strlen(flag->name) + 1; bits &= ~(flag->set | flag->clear); @@ -1889,7 +1889,7 @@ ae_fflagstostr(unsigned long bitset, unsigned long bit return (NULL); dp = string; - for (flag = flags; flag->name != NULL; flag++) { + for (flag = fileflags; flag->name != NULL; flag++) { if (bitset & flag->set || bitclear & flag->clear) { sp = flag->name + 2; } else if (bitset & flag->clear || bitclear & flag->set) { @@ -1941,7 +1941,7 @@ ae_strtofflags(const char *s, unsigned long *setp, uns *end != ' ' && *end != ',') end++; length = end - start; - for (flag = flags; flag->name != NULL; flag++) { + for (flag = fileflags; flag->name != NULL; flag++) { size_t flag_length = strlen(flag->name); if (length == flag_length && memcmp(start, flag->name, length) == 0) { @@ -2009,7 +2009,7 @@ ae_wcstofflags(const wchar_t *s, unsigned long *setp, *end != L' ' && *end != L',') end++; length = end - start; - for (flag = flags; flag->wname != NULL; flag++) { + for (flag = fileflags; flag->wname != NULL; flag++) { size_t flag_length = wcslen(flag->wname); if (length == flag_length && wmemcmp(start, flag->wname, length) == 0) { Modified: stable/10/contrib/libarchive/libarchive/archive_entry.h ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_entry.h Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_entry.h Wed Feb 19 01:51:44 2020 (r358090) @@ -30,7 +30,7 @@ #define ARCHIVE_ENTRY_H_INCLUDED /* Note: Compiler will complain if this does not match archive.h! */ -#define ARCHIVE_VERSION_NUMBER 3004000 +#define ARCHIVE_VERSION_NUMBER 3004002 /* * Note: archive_entry.h is for use outside of libarchive; the @@ -524,9 +524,6 @@ __LA_DECL int archive_entry_acl_reset(struct archive_ __LA_DECL int archive_entry_acl_next(struct archive_entry *, int /* want_type */, int * /* type */, int * /* permset */, int * /* tag */, int * /* qual */, const char ** /* name */); -__LA_DECL int archive_entry_acl_next_w(struct archive_entry *, int /* want_type */, - int * /* type */, int * /* permset */, int * /* tag */, - int * /* qual */, const wchar_t ** /* name */); /* * Construct a text-format ACL. The flags argument is a bitmask that Modified: stable/10/contrib/libarchive/libarchive/archive_entry_acl.3 ============================================================================== --- stable/10/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Feb 19 01:51:01 2020 (r358089) +++ stable/10/contrib/libarchive/libarchive/archive_entry_acl.3 Wed Feb 19 01:51:44 2020 (r358090) @@ -34,7 +34,6 @@ .Nm archive_entry_acl_from_text , .Nm archive_entry_acl_from_text_w , .Nm archive_entry_acl_next , -.Nm archive_entry_acl_next_w , .Nm archive_entry_acl_reset , .Nm archive_entry_acl_to_text , .Nm archive_entry_acl_to_text_w , @@ -89,16 +88,6 @@ Streaming Archive Library (libarchive, -larchive) .Fa "const char **ret_name" .Fc .Ft int -.Fo archive_entry_acl_next_w -.Fa "struct archive_entry *a" -.Fa "int type" -.Fa "int *ret_type" -.Fa "int *ret_permset" -.Fa "int *ret_tag" -.Fa "int *ret_qual" -.Fa "const wchar_t **ret_name" -.Fc -.Ft int .Fn archive_entry_acl_reset "struct archive_entry *a" "int type" .Ft char * .Fo archive_entry_acl_to_text @@ -349,8 +338,6 @@ character are skipped. .Pp .Fn archive_entry_acl_next -and -.Fn archive_entry_acl_next_w return the next entry of the ACL list. This functions may only be called after .Fn archive_entry_acl_reset @@ -358,9 +345,7 @@ has indicated the presence of extended ACL entries. .Pp .Fn archive_entry_acl_reset prepare reading the list of ACL entries with -.Fn archive_entry_acl_next -or -.Fn archive_entry_acl_next_w . +.Fn archive_entry_acl_next . *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Feb 19 02:34:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5D50324C9E0; Wed, 19 Feb 2020 02:34:57 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MhdY1kZnz4Ffq; Wed, 19 Feb 2020 02:34:57 +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 367FA1D66; Wed, 19 Feb 2020 02:34:57 +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 01J2Yv1R057552; Wed, 19 Feb 2020 02:34:57 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J2Yven057551; Wed, 19 Feb 2020 02:34:57 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002190234.01J2Yven057551@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 19 Feb 2020 02:34:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358091 - head/usr.sbin/certctl X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.sbin/certctl X-SVN-Commit-Revision: 358091 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 02:34:57 -0000 Author: kevans Date: Wed Feb 19 02:34:56 2020 New Revision: 358091 URL: https://svnweb.freebsd.org/changeset/base/358091 Log: certctl(8): switch to install(1) to fix DESTDIR support "Oops" - ln(1) is fine and dandy, but when you're using DESTDIR...it's not- the path will almost certainly be invalid once the root you've just installed to is relocated, perhaps to /. Switch to install(1) using `-l rs` to calculate the relative symlink between the two, which should work just fine in all cases. MFC after: 1 week Modified: head/usr.sbin/certctl/certctl.sh Modified: head/usr.sbin/certctl/certctl.sh ============================================================================== --- head/usr.sbin/certctl/certctl.sh Wed Feb 19 01:51:44 2020 (r358090) +++ head/usr.sbin/certctl/certctl.sh Wed Feb 19 02:34:56 2020 (r358091) @@ -69,7 +69,7 @@ create_trusted_link() return 1 fi [ $VERBOSE -gt 0 ] && echo "Adding $hash.0 to trust store" - [ $NOOP -eq 0 ] && ln -fs $(realpath "$1") "$CERTDESTDIR/$hash.0" + [ $NOOP -eq 0 ] && install -lrs $(realpath "$1") "$CERTDESTDIR/$hash.0" } create_blacklisted() @@ -88,7 +88,7 @@ create_blacklisted() return fi [ $VERBOSE -gt 0 ] && echo "Adding $filename to blacklist" - [ $NOOP -eq 0 ] && ln -fs "$srcfile" "$BLACKLISTDESTDIR/$filename" + [ $NOOP -eq 0 ] && install -lrs "$srcfile" "$BLACKLISTDESTDIR/$filename" } do_scan() From owner-svn-src-all@freebsd.org Wed Feb 19 02:35:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 24F8624CAB0; Wed, 19 Feb 2020 02:35:45 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MhfS6rllz4GSd; Wed, 19 Feb 2020 02:35:44 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6C5E51D69; Wed, 19 Feb 2020 02:35:44 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01J2ZiGS057647; Wed, 19 Feb 2020 02:35:44 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J2ZiTB057646; Wed, 19 Feb 2020 02:35:44 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002190235.01J2ZiTB057646@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 19 Feb 2020 02:35:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358092 - head/release/packages X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/release/packages X-SVN-Commit-Revision: 358092 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 02:35:45 -0000 Author: kevans Date: Wed Feb 19 02:35:43 2020 New Revision: 358092 URL: https://svnweb.freebsd.org/changeset/base/358092 Log: caroot pkg: pass through the pkg -r rootdir as DESTDIR If we're trying to bootstrap a different root with pkgbase, we should be doing the right thing with caroot. Modified: head/release/packages/caroot.ucl Modified: head/release/packages/caroot.ucl ============================================================================== --- head/release/packages/caroot.ucl Wed Feb 19 02:34:56 2020 (r358091) +++ head/release/packages/caroot.ucl Wed Feb 19 02:35:43 2020 (r358092) @@ -20,6 +20,7 @@ scripts: { # files being added or removed, we should use it instead to gate the # rehash. post-install = < Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C22F024DC80; Wed, 19 Feb 2020 03:39:12 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Mk3h174rz3Jf3; Wed, 19 Feb 2020 03:39:12 +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 027E428CF; Wed, 19 Feb 2020 03:39:12 +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 01J3dBJL094970; Wed, 19 Feb 2020 03:39:11 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J3dBm5094969; Wed, 19 Feb 2020 03:39:11 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202002190339.01J3dBm5094969@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Wed, 19 Feb 2020 03:39:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358093 - head/sys/powerpc/amigaone X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/amigaone X-SVN-Commit-Revision: 358093 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 03:39:12 -0000 Author: jhibbits Date: Wed Feb 19 03:39:11 2020 New Revision: 358093 URL: https://svnweb.freebsd.org/changeset/base/358093 Log: powerpc/amigaone: Fix license header formatting on cpld files This should've been fixed before initial commit, but wasn't. Not even sure how it happened in the first place. Modified: head/sys/powerpc/amigaone/cpld.h head/sys/powerpc/amigaone/cpld_x5000.c Modified: head/sys/powerpc/amigaone/cpld.h ============================================================================== --- head/sys/powerpc/amigaone/cpld.h Wed Feb 19 02:35:43 2020 (r358092) +++ head/sys/powerpc/amigaone/cpld.h Wed Feb 19 03:39:11 2020 (r358093) @@ -7,7 +7,8 @@ * * 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 + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR Modified: head/sys/powerpc/amigaone/cpld_x5000.c ============================================================================== --- head/sys/powerpc/amigaone/cpld_x5000.c Wed Feb 19 02:35:43 2020 (r358092) +++ head/sys/powerpc/amigaone/cpld_x5000.c Wed Feb 19 03:39:11 2020 (r358093) @@ -7,7 +7,8 @@ * * 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 + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR From owner-svn-src-all@freebsd.org Wed Feb 19 04:46:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B68E324EDDF; Wed, 19 Feb 2020 04:46:42 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MlYY5nPWz4DsS; Wed, 19 Feb 2020 04:46:41 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AC74B371E; Wed, 19 Feb 2020 04:46:41 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01J4kfHh036873; Wed, 19 Feb 2020 04:46:41 GMT (envelope-from rlibby@FreeBSD.org) Received: (from rlibby@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J4kfVR036872; Wed, 19 Feb 2020 04:46:41 GMT (envelope-from rlibby@FreeBSD.org) Message-Id: <202002190446.01J4kfVR036872@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rlibby set sender to rlibby@FreeBSD.org using -f From: Ryan Libby Date: Wed, 19 Feb 2020 04:46:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358094 - head/sys/powerpc/aim X-SVN-Group: head X-SVN-Commit-Author: rlibby X-SVN-Commit-Paths: head/sys/powerpc/aim X-SVN-Commit-Revision: 358094 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 04:46:42 -0000 Author: rlibby Date: Wed Feb 19 04:46:41 2020 New Revision: 358094 URL: https://svnweb.freebsd.org/changeset/base/358094 Log: powerpc: unconditionally mark SLB zones UMA_ZONE_CONTIG PR: 244118 Reported by: Francis Little Tested by: Francis Little, Mark Millard Reviewed by: markj Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D23729 Modified: head/sys/powerpc/aim/slb.c Modified: head/sys/powerpc/aim/slb.c ============================================================================== --- head/sys/powerpc/aim/slb.c Wed Feb 19 03:39:11 2020 (r358093) +++ head/sys/powerpc/aim/slb.c Wed Feb 19 04:46:41 2020 (r358094) @@ -523,18 +523,12 @@ slb_uma_real_alloc(uma_zone_t zone, vm_size_t bytes, i static void slb_zone_init(void *dummy) { - uint32_t allocf_flags; - - allocf_flags = 0; - if (platform_real_maxaddr() != VM_MAX_ADDRESS) - allocf_flags = UMA_ZONE_CONTIG; - slbt_zone = uma_zcreate("SLB tree node", sizeof(struct slbtnode), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, - allocf_flags | UMA_ZONE_VM); + UMA_ZONE_CONTIG | UMA_ZONE_VM); slb_cache_zone = uma_zcreate("SLB cache", (n_slbs + 1)*sizeof(struct slb *), NULL, NULL, NULL, NULL, - UMA_ALIGN_PTR, allocf_flags | UMA_ZONE_VM); + UMA_ALIGN_PTR, UMA_ZONE_CONTIG | UMA_ZONE_VM); if (platform_real_maxaddr() != VM_MAX_ADDRESS) { uma_zone_set_allocf(slb_cache_zone, slb_uma_real_alloc); From owner-svn-src-all@freebsd.org Wed Feb 19 06:28:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8E1642509E2; Wed, 19 Feb 2020 06:28:57 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MnqY1CJrz3ync; Wed, 19 Feb 2020 06:28:57 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F2D664A15; Wed, 19 Feb 2020 06:28:56 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01J6SuK3096687; Wed, 19 Feb 2020 06:28:56 GMT (envelope-from hrs@FreeBSD.org) Received: (from hrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J6StxP096683; Wed, 19 Feb 2020 06:28:55 GMT (envelope-from hrs@FreeBSD.org) Message-Id: <202002190628.01J6StxP096683@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hrs set sender to hrs@FreeBSD.org using -f From: Hiroki Sato Date: Wed, 19 Feb 2020 06:28:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358095 - in head: share/man/man4 sys/dev/acpica usr.sbin/acpi/acpiconf X-SVN-Group: head X-SVN-Commit-Author: hrs X-SVN-Commit-Paths: in head: share/man/man4 sys/dev/acpica usr.sbin/acpi/acpiconf X-SVN-Commit-Revision: 358095 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 06:28:57 -0000 Author: hrs Date: Wed Feb 19 06:28:55 2020 New Revision: 358095 URL: https://svnweb.freebsd.org/changeset/base/358095 Log: Add _BIX (Battery Information Extended) object support. ACPI Control Method Batteries have a _BIF and/or _BIX object which provide static properties of the battery. FreeBSD acpi_cmbat module supported _BIF object only, which was deprecated as of ACPI 4.0. _BIX is an extended version of _BIF defined in ACPI 4.0 or later. As of writing, _BIX has two revisions. One is in ACPI 4.0 (rev.0) and another is in ACPI 6.0 (rev.1). It seems that hardware vendors still stick to _BIF only or _BIX rev.0 + _BIF for the maximum compatibility. Microsoft requires _BIX rev.0 for Windows machines, so there are some laptop machines with _BIX rev.0 only. In this case, FreeBSD does not recognize the battery information. After this change, the acpi_cmbat module gets battery information from _BIX or _BIF object and internally uses _BIX rev.1 data structure as the primary information store in the kernel. ACPIIO_BATT_GET_BI[FX] returns an acpi_bi[fx] structure built by using information obtained from a _BIF or a _BIX object found on the system. The revision number field can be used to check which field is available. The acpiconf(8) utility will show additional information if _BIX is available. Although ABIs of ACPIIO_BATT_* were changed, the existing APIs for userland utilities are not changed and the backward-compatible ABIs are provided. This means that older versions of acpiconf(8) can also work with the new kernel. The (union acpi_battery_ioctl_arg) was padded to 256 byte long to avoid another ABI change in the future. A _BIX object with its revision number >1 will be treated as compatible with the rev.1 _BIX format. Reviewed by: takawata MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23728 Modified: head/share/man/man4/acpi_battery.4 head/sys/dev/acpica/acpi_battery.c head/sys/dev/acpica/acpi_cmbat.c head/sys/dev/acpica/acpi_if.m head/sys/dev/acpica/acpi_package.c head/sys/dev/acpica/acpi_smbat.c head/sys/dev/acpica/acpiio.h head/sys/dev/acpica/acpivar.h head/usr.sbin/acpi/acpiconf/acpiconf.c Modified: head/share/man/man4/acpi_battery.4 ============================================================================== --- head/share/man/man4/acpi_battery.4 Wed Feb 19 04:46:41 2020 (r358094) +++ head/share/man/man4/acpi_battery.4 Wed Feb 19 06:28:55 2020 (r358095) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 26, 2019 +.Dd February 16, 2020 .Dt ACPI_BATTERY 4 .Os .Sh NAME @@ -37,6 +37,7 @@ The .Nm is a driver for battery management features of the ACPI module. +.Pp An ACPI-compatible battery device supports either a Control Method Battery interface or a Smart Battery subsystem interface. The former is accessed by the AML @@ -45,7 +46,8 @@ code control methods, and the latter is controlled directly through the ACPI EC .Pq Embedded Controller typically via an SMBus interface. -This driver supports the +.Pp +This driver supports the .Xr sysctl 8 and .Xr ioctl 2 @@ -59,60 +61,86 @@ driver takes a single integer value for the battery un number as an argument, and returns a specific structure for each request. A special unit number -.Li ACPI_BATTERY_ALL_UNITS +.Dv ACPI_BATTERY_ALL_UNITS specifies all of the attached units and reports accumulated information. .Bl -tag -width indent -.It ACPIIO_BATT_GET_UNITS Vt int +.It Dv ACPIIO_BATT_GET_UNITS Vt int Returns the number of battery units in the system. The unit number argument will be ignored. -.It ACPIIO_BATT_GET_BATTINFO Vt struct acpi_battinfo +.It Dv ACPIIO_BATT_GET_BATTINFO Vt struct acpi_battinfo Returns the following: .Bl -tag -width indent -.It cap +.It Va cap Battery capacity in percent, -.It min +.It Va min Remaining battery life in minutes, -.It state +.It Va state Current status of the battery encoded in the following: .Bl -tag -width indent -.It ACPI_BATT_STAT_DISCHARG Pq 0x0001 +.It Dv ACPI_BATT_STAT_DISCHARG Pq 0x0001 Battery is discharging, -.It ACPI_BATT_STAT_CHARGING Pq 0x0002 +.It Dv ACPI_BATT_STAT_CHARGING Pq 0x0002 Battery is being charged, or -.It ACPI_BATT_STAT_CRITICAL Pq 0x0004 +.It Dv ACPI_BATT_STAT_CRITICAL Pq 0x0004 Remaining battery life is critically low. .El .Pp Note that the status bits of each battery will be consolidated when -.Li ACPI_BATTERY_ALL_UNITS +.Dv ACPI_BATTERY_ALL_UNITS is specified. -.It rate +.It Va rate Current battery discharging rate in mW. .Li -1 means not discharging right now. .El -.It ACPIIO_BATT_GET_BIF Vt struct acpi_bif +.It Dv ACPIIO_BATT_GET_BIX Vt struct acpi_bix Returns battery information given by the ACPI -.Li _BIF Pq Battery Information +.Li _BIX Pq Battery Information object, which is the static portion of the Control Method Battery information. -In the case of a Smart Battery attached to SMBus, +In the case of a Smart Battery attached to +SMBus or a Control Method Battery with a +.Li _BIF +object, this ioctl will build a -.Vt struct acpi_bif +.Vt struct acpi_bix structure based on the obtained information and return it. .Bl -tag -width indent -.It units +.It Va rev +Revision number of the object. +There are the following well-known values: +.Bl -tag -width indent +.It Dv ACPI_BIX_REV_0 Pq 0x0000 +A +.Li _BIX +object in ACPI 4.0. +.It Dv ACPI_BIX_REV_1 Pq 0x0001 +A +.Li _BIX +object in ACPI 6.0. +.It Dv ACPI_BIX_REV_BIF Pq 0xffff +A +.Li _BIX +object built from the +.Li _BIF +object found on the system. +.El +.Pp +Note that this field should be checked by using +.Fn ACPI_BIX_REV_MIN_CHECK var rev +macro when checking the minimum revision number. +.It Va units Indicates the units used by the battery to report its capacity and charge rate encoded in the following: .Bl -tag -width indent -.It ACPI_BIF_UNITS_MW Pq 0x00000000 +.It ACPI_BIX_UNITS_MW Pq 0x00000000 in mW .Pq power -.It ACPI_BIF_UNITS_MA Pq 0x00000001 +.It ACPI_BIX_UNITS_MA Pq 0x00000001 in mA .Pq current .El @@ -120,31 +148,69 @@ in mA Note that capacity is expressed in mWh or mAh, and rate is expressed in mW or mA, respectively. -.It dcap +.It Va dcap The Battery's design capacity, which is the nominal capacity of a new battery. This is expressed as power or current depending on the value of .Va units . -.It lfcap +.It Va lfcap Predicted battery capacity when fully charged. Typically this will decrease every charging cycle. .It btech Battery technology: .Bl -tag -width indent .It 0x00000000 Primary cell Pq non-rechargable -.It 0x00000001 Secondery cell Pq rechargable +.It 0x00000001 Secondary cell Pq rechargable .El -.It dvol +.It Va dvol Design voltage in mV, which is the nominal voltage of a new battery. -.It wcap +.It Va wcap Design capacity of warning. When a discharging battery device reaches this capacity, notification is sent to the system. -.It lcap +.It Va lcap Design capacity of low. -.It gra1 +.It Va cycles +.Pq rev 0 or newer +The number of cycles the battery has experienced. +A cycle means an amount of discharge occurred which was +approximately equal to the value of Design Capacity. +.It Va accuracy +.Pq rev 0 or newer +The accuracy of the battery capacity measurement, +in thousandth of a percent. +.It Va stmax +.Pq rev 0 or newer +The Maximum Sampling Time of the battery in +milliseconds. +This is the maximum duration between two consecutive +measurements of the battery's capacities specified in +.Li _BST . +If two succeeding readings of +.Li _BST +beyond this duration occur, +two different results can be returned. +.It Va stmin +.Pq rev 0 or newer +The Minimum Sampling Time of the battery in +milliseconds. +.It Va aimax +.Pq rev 0 or newer +The Maximum Average Interval of the battery in +milliseconds. +This is the length of time within which the battery +averages the capacity measurements specified in +.Li _BST . +The Sampling Time specifies the frequency of measurements, +and the Average Interval specifies the width of the time +window of every measurement. +.It Va aimin +.Pq rev 0 or newer +The Minimum Average Interval of the battery in +milliseconds. +.It Va gra1 Battery capacity granularity between .Va low and @@ -152,7 +218,7 @@ and This is expressed as power or current depending on the value of .Va units . -.It gra2 +.It Va gra2 Battery capacity granularity between .Va warning and @@ -160,15 +226,41 @@ and This is expressed as power or current depending on the value of .Va units . -.It model +.It Va model Model number of the battery as a string. -.It serial +.It Va serial Serial number of the battery as a string. -.It type +.It Va type Type identifier of the battery as a string. -.It oeminfo +.It Va oeminfo OEM-specific information of the battery as a string. +.It Va scap +.Pq rev 1 or newer +Battery swapping capability encoded in the following: +.Bl -tag -width indent +.It ACPI_BIX_SCAP_NO Pq 0x00000000 +Non-swappable +.It ACPI_BIX_SCAP_COLD Pq 0x00000001 +Cold-swappable +.It ACPI_BIX_SCAP_HOT Pq 0x00000010 +Hot-swappable .El +.El +.It Dv ACPIIO_BATT_GET_BIF Vt struct acpi_bif +.Pq deprecated +Returns battery information given by the ACPI +.Li _BIF Pq Battery Information +object, +which was deprecated in ACPI 4.0 specification. +The data structure is a subset of +.Vt struct acpi_bix . +.Pp +Note that this ioctl will built a +.Vt struct acpi_bif +structure based on the obtained information +even if this object is not available and a +.Li _BIX +object is found. .It ACPIIO_BATT_GET_BST Vt struct acpi_bst Returns battery information given by the ACPI .Li _BST Pq Battery Status @@ -180,25 +272,25 @@ this ioctl will build a structure based on the obtained information and return it. .Bl -tag -width indent -.It state +.It Va state Battery state. The value is encoded in the same way as .Va state of .Vt struct acpi_battinfo . -.It rate +.It Va rate Battery present rate of charging or discharging. The unit of the value depends on .Va unit of .Vt struct acpi_bif . -.It cap +.It Va cap Battery remaining capacity. The unit of this value depends on .Va unit of .Vt struct acpi_bif . -.It volt +.It Va volt Battery present voltage. .El .El @@ -212,6 +304,8 @@ connected batteries: .It Va hw.acpi.battery.info_expire Information cache expiration time in seconds. The battery information obtained by +.Li _BIX +or .Li _BIF object will be stored and reused for successive read access to this MIB within the specified period. @@ -276,8 +370,11 @@ Battery information was changed. .An Munehiro Matsuda , .An Takanori Watanabe Aq Mt takawata@FreeBSD.org , .An Mitsuru IWASAKI Aq Mt iwasaki@FreeBSD.org , +.An Hans Petter Selasky Aq Mt hselasky@FreeBSD.org , and -.An Hans Petter Selasky Aq Mt hselasky@FreeBSD.org . +.An Hiroki Sato Aq Mt hrs@FreeBSD.org . .Pp This manual page was written by -.An Takanori Watanabe Aq Mt takawata@FreeBSD.org . +.An Takanori Watanabe Aq Mt takawata@FreeBSD.org +and +.An Hiroki Sato Aq Mt hrs@FreeBSD.org . Modified: head/sys/dev/acpica/acpi_battery.c ============================================================================== --- head/sys/dev/acpica/acpi_battery.c Wed Feb 19 04:46:41 2020 (r358094) +++ head/sys/dev/acpica/acpi_battery.c Wed Feb 19 06:28:55 2020 (r358095) @@ -44,7 +44,7 @@ __FBSDID("$FreeBSD$"); /* Default seconds before re-sampling the battery state. */ #define ACPI_BATTERY_INFO_EXPIRE 5 -static int acpi_batteries_initted; +static int acpi_batteries_initialized; static int acpi_battery_info_expire = ACPI_BATTERY_INFO_EXPIRE; static struct acpi_battinfo acpi_battery_battinfo; static struct sysctl_ctx_list acpi_battery_sysctl_ctx; @@ -65,11 +65,10 @@ acpi_battery_register(device_t dev) { int error; - error = 0; ACPI_SERIAL_BEGIN(battery); - if (!acpi_batteries_initted) - error = acpi_battery_init(); + error = acpi_battery_init(); ACPI_SERIAL_END(battery); + return (error); } @@ -107,11 +106,12 @@ acpi_battery_bst_valid(struct acpi_bst *bst) bst->cap != ACPI_BATT_UNKNOWN && bst->volt != ACPI_BATT_UNKNOWN); } -/* Check _BIF results for validity. */ +/* Check _BI[FX] results for validity. */ int -acpi_battery_bif_valid(struct acpi_bif *bif) +acpi_battery_bix_valid(struct acpi_bix *bix) { - return (bif->lfcap != 0); + + return (bix->lfcap != 0); } /* Get info about one or all batteries. */ @@ -123,7 +123,7 @@ acpi_battery_get_battinfo(device_t dev, struct acpi_ba devclass_t batt_dc; device_t batt_dev; struct acpi_bst *bst; - struct acpi_bif *bif; + struct acpi_bix *bix; struct acpi_battinfo *bi; /* @@ -139,11 +139,11 @@ acpi_battery_get_battinfo(device_t dev, struct acpi_ba /* * Allocate storage for all _BST data, their derived battinfo data, - * and the current battery's _BIF data. + * and the current battery's _BIX (or _BIF) data. */ bst = malloc(devcount * sizeof(*bst), M_TEMP, M_WAITOK | M_ZERO); bi = malloc(devcount * sizeof(*bi), M_TEMP, M_WAITOK | M_ZERO); - bif = malloc(sizeof(*bif), M_TEMP, M_WAITOK | M_ZERO); + bix = malloc(sizeof(*bix), M_TEMP, M_WAITOK | M_ZERO); /* * Pass 1: for each battery that is present and valid, get its status, @@ -173,12 +173,12 @@ acpi_battery_get_battinfo(device_t dev, struct acpi_ba * Be sure we can get various info from the battery. */ if (ACPI_BATT_GET_STATUS(batt_dev, &bst[i]) != 0 || - ACPI_BATT_GET_INFO(batt_dev, bif) != 0) + ACPI_BATT_GET_INFO(batt_dev, bix, sizeof(*bix)) != 0) continue; /* If a battery is not installed, we sometimes get strange values. */ if (!acpi_battery_bst_valid(&bst[i]) || - !acpi_battery_bif_valid(bif)) + !acpi_battery_bix_valid(bix)) continue; /* @@ -197,18 +197,18 @@ acpi_battery_get_battinfo(device_t dev, struct acpi_ba * is 0 (due to some error reading the battery), skip this * conversion. */ - if (bif->units == ACPI_BIF_UNITS_MA && bif->dvol != 0 && dev == NULL) { - bst[i].rate = (bst[i].rate * bif->dvol) / 1000; - bst[i].cap = (bst[i].cap * bif->dvol) / 1000; - bif->lfcap = (bif->lfcap * bif->dvol) / 1000; + if (bix->units == ACPI_BIX_UNITS_MA && bix->dvol != 0 && dev == NULL) { + bst[i].rate = (bst[i].rate * bix->dvol) / 1000; + bst[i].cap = (bst[i].cap * bix->dvol) / 1000; + bix->lfcap = (bix->lfcap * bix->dvol) / 1000; } /* - * The calculation above may set bif->lfcap to zero. This was + * The calculation above may set bix->lfcap to zero. This was * seen on a laptop with a broken battery. The result of the * division was rounded to zero. */ - if (!acpi_battery_bif_valid(bif)) + if (!acpi_battery_bix_valid(bix)) continue; /* @@ -216,16 +216,16 @@ acpi_battery_get_battinfo(device_t dev, struct acpi_ba * "real-capacity" when the battery is fully charged. That breaks * the above arithmetic as it needs to be 100% maximum. */ - if (bst[i].cap > bif->lfcap) - bst[i].cap = bif->lfcap; + if (bst[i].cap > bix->lfcap) + bst[i].cap = bix->lfcap; /* Calculate percent capacity remaining. */ - bi[i].cap = (100 * bst[i].cap) / bif->lfcap; + bi[i].cap = (100 * bst[i].cap) / bix->lfcap; /* If this battery is not present, don't use its capacity. */ if (bi[i].cap != -1) { total_cap += bst[i].cap; - total_lfcap += bif->lfcap; + total_lfcap += bix->lfcap; } /* @@ -291,12 +291,9 @@ acpi_battery_get_battinfo(device_t dev, struct acpi_ba error = 0; out: - if (bi) - free(bi, M_TEMP); - if (bif) - free(bif, M_TEMP); - if (bst) - free(bst, M_TEMP); + free(bi, M_TEMP); + free(bix, M_TEMP); + free(bst, M_TEMP); return (error); } @@ -365,7 +362,8 @@ acpi_battery_ioctl(u_long cmd, caddr_t addr, void *arg unit = 0; dev = NULL; ioctl_arg = NULL; - if (IOCPARM_LEN(cmd) == sizeof(*ioctl_arg)) { + if (IOCPARM_LEN(cmd) == sizeof(union acpi_battery_ioctl_arg) || + IOCPARM_LEN(cmd) == sizeof(union acpi_battery_ioctl_arg_v1)) { ioctl_arg = (union acpi_battery_ioctl_arg *)addr; unit = ioctl_arg->unit; if (unit != ACPI_BATTERY_ALL_UNITS) @@ -376,12 +374,14 @@ acpi_battery_ioctl(u_long cmd, caddr_t addr, void *arg * No security check required: information retrieval only. If * new functions are added here, a check might be required. */ + /* Unit check */ switch (cmd) { case ACPIIO_BATT_GET_UNITS: *(int *)addr = acpi_battery_get_units(); error = 0; break; case ACPIIO_BATT_GET_BATTINFO: + case ACPIIO_BATT_GET_BATTINFO_V1: if (dev != NULL || unit == ACPI_BATTERY_ALL_UNITS) { bzero(&ioctl_arg->battinfo, sizeof(ioctl_arg->battinfo)); error = acpi_battery_get_battinfo(dev, &ioctl_arg->battinfo); @@ -390,24 +390,19 @@ acpi_battery_ioctl(u_long cmd, caddr_t addr, void *arg case ACPIIO_BATT_GET_BIF: if (dev != NULL) { bzero(&ioctl_arg->bif, sizeof(ioctl_arg->bif)); - error = ACPI_BATT_GET_INFO(dev, &ioctl_arg->bif); - - /* - * Remove invalid characters. Perhaps this should be done - * within a convenience function so all callers get the - * benefit. - */ - acpi_battery_clean_str(ioctl_arg->bif.model, - sizeof(ioctl_arg->bif.model)); - acpi_battery_clean_str(ioctl_arg->bif.serial, - sizeof(ioctl_arg->bif.serial)); - acpi_battery_clean_str(ioctl_arg->bif.type, - sizeof(ioctl_arg->bif.type)); - acpi_battery_clean_str(ioctl_arg->bif.oeminfo, - sizeof(ioctl_arg->bif.oeminfo)); + error = ACPI_BATT_GET_INFO(dev, &ioctl_arg->bif, + sizeof(ioctl_arg->bif)); } break; + case ACPIIO_BATT_GET_BIX: + if (dev != NULL) { + bzero(&ioctl_arg->bix, sizeof(ioctl_arg->bix)); + error = ACPI_BATT_GET_INFO(dev, &ioctl_arg->bix, + sizeof(ioctl_arg->bix)); + } + break; case ACPIIO_BATT_GET_BST: + case ACPIIO_BATT_GET_BST_V1: if (dev != NULL) { bzero(&ioctl_arg->bst, sizeof(ioctl_arg->bst)); error = ACPI_BATT_GET_STATUS(dev, &ioctl_arg->bst); @@ -417,6 +412,25 @@ acpi_battery_ioctl(u_long cmd, caddr_t addr, void *arg error = EINVAL; } + /* Sanitize the string members. */ + switch (cmd) { + case ACPIIO_BATT_GET_BIX: + case ACPIIO_BATT_GET_BIF: + /* + * Remove invalid characters. Perhaps this should be done + * within a convenience function so all callers get the + * benefit. + */ + acpi_battery_clean_str(ioctl_arg->bix.model, + sizeof(ioctl_arg->bix.model)); + acpi_battery_clean_str(ioctl_arg->bix.serial, + sizeof(ioctl_arg->bix.serial)); + acpi_battery_clean_str(ioctl_arg->bix.type, + sizeof(ioctl_arg->bix.type)); + acpi_battery_clean_str(ioctl_arg->bix.oeminfo, + sizeof(ioctl_arg->bix.oeminfo)); + }; + return (error); } @@ -450,27 +464,30 @@ acpi_battery_init(void) ACPI_SERIAL_ASSERT(battery); + if (acpi_batteries_initialized) + return(0); + error = ENXIO; dev = devclass_get_device(devclass_find("acpi"), 0); if (dev == NULL) goto out; sc = device_get_softc(dev); - error = acpi_register_ioctl(ACPIIO_BATT_GET_UNITS, acpi_battery_ioctl, - NULL); - if (error != 0) - goto out; - error = acpi_register_ioctl(ACPIIO_BATT_GET_BATTINFO, acpi_battery_ioctl, - NULL); - if (error != 0) - goto out; - error = acpi_register_ioctl(ACPIIO_BATT_GET_BIF, acpi_battery_ioctl, NULL); - if (error != 0) - goto out; - error = acpi_register_ioctl(ACPIIO_BATT_GET_BST, acpi_battery_ioctl, NULL); - if (error != 0) - goto out; +#define ACPI_REGISTER_IOCTL(a, b, c) do { \ + error = acpi_register_ioctl(a, b, c); \ + if (error) \ + goto out; \ + } while (0) + ACPI_REGISTER_IOCTL(ACPIIO_BATT_GET_UNITS, acpi_battery_ioctl, NULL); + ACPI_REGISTER_IOCTL(ACPIIO_BATT_GET_BATTINFO, acpi_battery_ioctl, NULL); + ACPI_REGISTER_IOCTL(ACPIIO_BATT_GET_BATTINFO_V1, acpi_battery_ioctl, NULL); + ACPI_REGISTER_IOCTL(ACPIIO_BATT_GET_BIF, acpi_battery_ioctl, NULL); + ACPI_REGISTER_IOCTL(ACPIIO_BATT_GET_BIX, acpi_battery_ioctl, NULL); + ACPI_REGISTER_IOCTL(ACPIIO_BATT_GET_BST, acpi_battery_ioctl, NULL); + ACPI_REGISTER_IOCTL(ACPIIO_BATT_GET_BST_V1, acpi_battery_ioctl, NULL); +#undef ACPI_REGISTER_IOCTL + sysctl_ctx_init(&acpi_battery_sysctl_ctx); acpi_battery_sysctl_tree = SYSCTL_ADD_NODE(&acpi_battery_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), OID_AUTO, "battery", CTLFLAG_RD, @@ -505,14 +522,17 @@ acpi_battery_init(void) &acpi_battery_info_expire, 0, "time in seconds until info is refreshed"); - acpi_batteries_initted = TRUE; + acpi_batteries_initialized = TRUE; out: - if (error != 0) { + if (error) { acpi_deregister_ioctl(ACPIIO_BATT_GET_UNITS, acpi_battery_ioctl); acpi_deregister_ioctl(ACPIIO_BATT_GET_BATTINFO, acpi_battery_ioctl); + acpi_deregister_ioctl(ACPIIO_BATT_GET_BATTINFO_V1, acpi_battery_ioctl); acpi_deregister_ioctl(ACPIIO_BATT_GET_BIF, acpi_battery_ioctl); + acpi_deregister_ioctl(ACPIIO_BATT_GET_BIX, acpi_battery_ioctl); acpi_deregister_ioctl(ACPIIO_BATT_GET_BST, acpi_battery_ioctl); + acpi_deregister_ioctl(ACPIIO_BATT_GET_BST_V1, acpi_battery_ioctl); } return (error); } Modified: head/sys/dev/acpica/acpi_cmbat.c ============================================================================== --- head/sys/dev/acpica/acpi_cmbat.c Wed Feb 19 04:46:41 2020 (r358094) +++ head/sys/dev/acpica/acpi_cmbat.c Wed Feb 19 06:28:55 2020 (r358095) @@ -61,12 +61,13 @@ ACPI_MODULE_NAME("BATTERY") #define ACPI_BATTERY_BST_CHANGE 0x80 #define ACPI_BATTERY_BIF_CHANGE 0x81 +#define ACPI_BATTERY_BIX_CHANGE ACPI_BATTERY_BIF_CHANGE struct acpi_cmbat_softc { device_t dev; int flags; - struct acpi_bif bif; + struct acpi_bix bix; struct acpi_bst bst; struct timespec bst_lastupdated; }; @@ -82,10 +83,10 @@ static void acpi_cmbat_notify_handler(ACPI_HANDLE h, static int acpi_cmbat_info_expired(struct timespec *lastupdated); static void acpi_cmbat_info_updated(struct timespec *lastupdated); static void acpi_cmbat_get_bst(void *arg); -static void acpi_cmbat_get_bif_task(void *arg); -static void acpi_cmbat_get_bif(void *arg); -static int acpi_cmbat_bst(device_t dev, struct acpi_bst *bstp); -static int acpi_cmbat_bif(device_t dev, struct acpi_bif *bifp); +static void acpi_cmbat_get_bix_task(void *arg); +static void acpi_cmbat_get_bix(void *arg); +static int acpi_cmbat_bst(device_t, struct acpi_bst *); +static int acpi_cmbat_bix(device_t, void *, size_t); static void acpi_cmbat_init_battery(void *arg); static device_method_t acpi_cmbat_methods[] = { @@ -96,7 +97,7 @@ static device_method_t acpi_cmbat_methods[] = { DEVMETHOD(device_resume, acpi_cmbat_resume), /* ACPI battery interface */ - DEVMETHOD(acpi_batt_get_info, acpi_cmbat_bif), + DEVMETHOD(acpi_batt_get_info, acpi_cmbat_bix), DEVMETHOD(acpi_batt_get_status, acpi_cmbat_bst), DEVMETHOD_END @@ -205,12 +206,12 @@ acpi_cmbat_notify_handler(ACPI_HANDLE h, UINT32 notify timespecclear(&sc->bst_lastupdated); break; case ACPI_NOTIFY_BUS_CHECK: - case ACPI_BATTERY_BIF_CHANGE: + case ACPI_BATTERY_BIX_CHANGE: /* * Queue a callback to get the current battery info from thread * context. It's not safe to block in a notify handler. */ - AcpiOsExecute(OSL_NOTIFY_HANDLER, acpi_cmbat_get_bif_task, dev); + AcpiOsExecute(OSL_NOTIFY_HANDLER, acpi_cmbat_get_bix_task, dev); break; } @@ -269,15 +270,15 @@ acpi_cmbat_get_bst(void *arg) as = AcpiEvaluateObject(h, "_BST", NULL, &bst_buffer); if (ACPI_FAILURE(as)) { ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), - "error fetching current battery status -- %s\n", - AcpiFormatException(as)); + "error fetching current battery status -- %s\n", + AcpiFormatException(as)); goto end; } res = (ACPI_OBJECT *)bst_buffer.Pointer; if (!ACPI_PKG_VALID(res, 4)) { ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), - "battery status corrupted\n"); + "battery status corrupted\n"); goto end; } @@ -307,119 +308,194 @@ acpi_cmbat_get_bst(void *arg) sc->flags &= ~ACPI_BATT_STAT_CRITICAL; end: - if (bst_buffer.Pointer != NULL) - AcpiOsFree(bst_buffer.Pointer); + AcpiOsFree(bst_buffer.Pointer); } /* XXX There should be a cleaner way to do this locking. */ static void -acpi_cmbat_get_bif_task(void *arg) +acpi_cmbat_get_bix_task(void *arg) { ACPI_SERIAL_BEGIN(cmbat); - acpi_cmbat_get_bif(arg); + acpi_cmbat_get_bix(arg); ACPI_SERIAL_END(cmbat); } static void -acpi_cmbat_get_bif(void *arg) +acpi_cmbat_get_bix(void *arg) { struct acpi_cmbat_softc *sc; ACPI_STATUS as; ACPI_OBJECT *res; ACPI_HANDLE h; - ACPI_BUFFER bif_buffer; + ACPI_BUFFER bix_buffer; device_t dev; + int i, n; + const struct { + enum { _BIX, _BIF } type; + char *name; + } bobjs[] = { + { _BIX, "_BIX"}, + { _BIF, "_BIF"}, + }; ACPI_SERIAL_ASSERT(cmbat); dev = arg; sc = device_get_softc(dev); h = acpi_get_handle(dev); - bif_buffer.Pointer = NULL; - bif_buffer.Length = ACPI_ALLOCATE_BUFFER; + bix_buffer.Pointer = NULL; + bix_buffer.Length = ACPI_ALLOCATE_BUFFER; - as = AcpiEvaluateObject(h, "_BIF", NULL, &bif_buffer); - if (ACPI_FAILURE(as)) { + for (n = 0; n < sizeof(bobjs); n++) { + as = AcpiEvaluateObject(h, bobjs[n].name, NULL, &bix_buffer); + if (!ACPI_FAILURE(as)) { + res = (ACPI_OBJECT *)bix_buffer.Pointer; + break; + } + AcpiOsFree(bix_buffer.Pointer); + bix_buffer.Pointer = NULL; + bix_buffer.Length = ACPI_ALLOCATE_BUFFER; + } + /* Both _BIF and _BIX were not found. */ + if (n == sizeof(bobjs)) { ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), - "error fetching current battery info -- %s\n", - AcpiFormatException(as)); + "error fetching current battery info -- %s\n", + AcpiFormatException(as)); goto end; } - res = (ACPI_OBJECT *)bif_buffer.Pointer; - if (!ACPI_PKG_VALID(res, 13)) { - ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), - "battery info corrupted\n"); - goto end; + /* + * ACPI _BIX and _BIF revision mismatch check: + * + * 1. _BIF has no revision field. The number of fields must be 13. + * + * 2. _BIX has a revision field. As of ACPI 6.3 it must be "0" or + * "1". The number of fields will be checked---20 and 21, + * respectively. + * + * If the revision number is grater than "1" and the number of + * fields is grater than 21, it will be treated as compatible with + * ACPI 6.0 _BIX. If not, it will be ignored. + */ + i = 0; + switch (bobjs[n].type) { + case _BIX: + if (acpi_PkgInt16(res, i++, &sc->bix.rev) != 0) { + ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), + "_BIX revision error\n"); + goto end; + } +#define ACPI_BIX_REV_MISMATCH_ERR(x, r) do { \ + ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), \ + "_BIX revision mismatch (%u != %u)\n", x, r); \ + goto end; \ + } while (0) + + if (ACPI_PKG_VALID_EQ(res, 21)) { /* ACPI 6.0 _BIX */ + if (sc->bix.rev != ACPI_BIX_REV_1) + ACPI_BIX_REV_MISMATCH_ERR(sc->bix.rev, ACPI_BIX_REV_1); + } else if (ACPI_PKG_VALID_EQ(res, 20)) {/* ACPI 4.0 _BIX */ + if (sc->bix.rev != ACPI_BIX_REV_0) + ACPI_BIX_REV_MISMATCH_ERR(sc->bix.rev, ACPI_BIX_REV_0); + } else if (ACPI_PKG_VALID(res, 22) && + ACPI_BIX_REV_MIN_CHECK(sc->bix.rev, ACPI_BIX_REV_1 + 1)) { + /* + * Unknown _BIX with 22 or more members. + * Assume 21 members are compatible with 6.0 _BIX. + */ + ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), + "Unknown _BIX revision(%u). " + "Assuming compatible with revision %u.\n", + sc->bix.rev, ACPI_BIX_REV_1); + } else { + /* Invalid _BIX. Ignore it. */ + ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), + "Invalid _BIX found (rev=%u, count=%u). Ignored.\n", + sc->bix.rev, res->Package.Count); + goto end; + } + break; +#undef ACPI_BIX_REV_MISMATCH_ERR + case _BIF: + if (ACPI_PKG_VALID_EQ(res, 13)) /* _BIF */ + sc->bix.rev = ACPI_BIX_REV_BIF; + else { + ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), + "Invalid _BIF found (count=%u). Ignored.\n", + res->Package.Count); + goto end; + } + break; } - if (acpi_PkgInt32(res, 0, &sc->bif.units) != 0) - goto end; - if (acpi_PkgInt32(res, 1, &sc->bif.dcap) != 0) - goto end; - if (acpi_PkgInt32(res, 2, &sc->bif.lfcap) != 0) - goto end; - if (acpi_PkgInt32(res, 3, &sc->bif.btech) != 0) - goto end; - if (acpi_PkgInt32(res, 4, &sc->bif.dvol) != 0) - goto end; - if (acpi_PkgInt32(res, 5, &sc->bif.wcap) != 0) - goto end; - if (acpi_PkgInt32(res, 6, &sc->bif.lcap) != 0) - goto end; - if (acpi_PkgInt32(res, 7, &sc->bif.gra1) != 0) - goto end; - if (acpi_PkgInt32(res, 8, &sc->bif.gra2) != 0) - goto end; - if (acpi_PkgStr(res, 9, sc->bif.model, ACPI_CMBAT_MAXSTRLEN) != 0) - goto end; - if (acpi_PkgStr(res, 10, sc->bif.serial, ACPI_CMBAT_MAXSTRLEN) != 0) - goto end; - if (acpi_PkgStr(res, 11, sc->bif.type, ACPI_CMBAT_MAXSTRLEN) != 0) - goto end; - if (acpi_PkgStr(res, 12, sc->bif.oeminfo, ACPI_CMBAT_MAXSTRLEN) != 0) - goto end; + ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), + "rev = %04x\n", sc->bix.rev); +#define BIX_GETU32(NAME) do { \ + ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), \ + #NAME " = %u\n", sc->bix.NAME); \ + if (acpi_PkgInt32(res, i++, &sc->bix.NAME) != 0) \ + goto end; \ + } while (0) + BIX_GETU32(units); + BIX_GETU32(dcap); + BIX_GETU32(lfcap); + BIX_GETU32(btech); + BIX_GETU32(dvol); + BIX_GETU32(wcap); + BIX_GETU32(lcap); + if (ACPI_BIX_REV_MIN_CHECK(sc->bix.rev, ACPI_BIX_REV_0)) { + BIX_GETU32(cycles); + BIX_GETU32(accuracy); + BIX_GETU32(stmax); + BIX_GETU32(stmin); + BIX_GETU32(aimax); + BIX_GETU32(aimin); + } + BIX_GETU32(gra1); + BIX_GETU32(gra2); + if (acpi_PkgStr(res, i++, sc->bix.model, ACPI_CMBAT_MAXSTRLEN) != 0) + goto end; + if (acpi_PkgStr(res, i++, sc->bix.serial, ACPI_CMBAT_MAXSTRLEN) != 0) + goto end; + if (acpi_PkgStr(res, i++, sc->bix.type, ACPI_CMBAT_MAXSTRLEN) != 0) + goto end; + if (acpi_PkgStr(res, i++, sc->bix.oeminfo, ACPI_CMBAT_MAXSTRLEN) != 0) + goto end; + if (ACPI_BIX_REV_MIN_CHECK(sc->bix.rev, ACPI_BIX_REV_1)) + BIX_GETU32(scap); +#undef BIX_GETU32 end: - if (bif_buffer.Pointer != NULL) - AcpiOsFree(bif_buffer.Pointer); + AcpiOsFree(bix_buffer.Pointer); } static int -acpi_cmbat_bif(device_t dev, struct acpi_bif *bifp) +acpi_cmbat_bix(device_t dev, void *bix, size_t len) { struct acpi_cmbat_softc *sc; + if (len != sizeof(struct acpi_bix) && + len != sizeof(struct acpi_bif)) + return (-1); + sc = device_get_softc(dev); /* * Just copy the data. The only value that should change is the * last-full capacity, so we only update when we get a notify that says * the info has changed. Many systems apparently take a long time to - * process a _BIF call so we avoid it if possible. + * process a _BI[FX] call so we avoid it if possible. */ ACPI_SERIAL_BEGIN(cmbat); - bifp->units = sc->bif.units; - bifp->dcap = sc->bif.dcap; - bifp->lfcap = sc->bif.lfcap; - bifp->btech = sc->bif.btech; - bifp->dvol = sc->bif.dvol; - bifp->wcap = sc->bif.wcap; - bifp->lcap = sc->bif.lcap; - bifp->gra1 = sc->bif.gra1; - bifp->gra2 = sc->bif.gra2; - strncpy(bifp->model, sc->bif.model, sizeof(sc->bif.model)); - strncpy(bifp->serial, sc->bif.serial, sizeof(sc->bif.serial)); - strncpy(bifp->type, sc->bif.type, sizeof(sc->bif.type)); - strncpy(bifp->oeminfo, sc->bif.oeminfo, sizeof(sc->bif.oeminfo)); + memcpy(bix, &sc->bix, len); ACPI_SERIAL_END(cmbat); return (0); } static int -acpi_cmbat_bst(device_t dev, struct acpi_bst *bstp) +acpi_cmbat_bst(device_t dev, struct acpi_bst *bst) { struct acpi_cmbat_softc *sc; @@ -428,12 +504,9 @@ acpi_cmbat_bst(device_t dev, struct acpi_bst *bstp) ACPI_SERIAL_BEGIN(cmbat); if (acpi_BatteryIsPresent(dev)) { acpi_cmbat_get_bst(dev); - bstp->state = sc->bst.state; - bstp->rate = sc->bst.rate; - bstp->cap = sc->bst.cap; - bstp->volt = sc->bst.volt; + memcpy(bst, &sc->bst, sizeof(*bst)); } else - bstp->state = ACPI_BATT_STAT_NOT_PRESENT; + bst->state = ACPI_BATT_STAT_NOT_PRESENT; ACPI_SERIAL_END(cmbat); return (0); @@ -448,7 +521,7 @@ acpi_cmbat_init_battery(void *arg) dev = (device_t)arg; ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), - "battery initialization start\n"); + "battery enitialization start\n"); /* * Try repeatedly to get valid data from the battery. Since the @@ -487,11 +560,11 @@ acpi_cmbat_init_battery(void *arg) timespecclear(&sc->bst_lastupdated); acpi_cmbat_get_bst(dev); } - if (retry == 0 || !acpi_battery_bif_valid(&sc->bif)) - acpi_cmbat_get_bif(dev); + if (retry == 0 || !acpi_battery_bix_valid(&sc->bix)) + acpi_cmbat_get_bix(dev); valid = acpi_battery_bst_valid(&sc->bst) && - acpi_battery_bif_valid(&sc->bif); + acpi_battery_bix_valid(&sc->bix); ACPI_SERIAL_END(cmbat); if (valid) @@ -500,9 +573,9 @@ acpi_cmbat_init_battery(void *arg) if (retry == ACPI_CMBAT_RETRY_MAX) { ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), - "battery initialization failed, giving up\n"); + "battery initialization failed, giving up\n"); } else { ACPI_VPRINT(dev, acpi_device_get_parent_softc(dev), - "battery initialization done, tried %d times\n", retry + 1); + "battery initialization done, tried %d times\n", retry + 1); } } Modified: head/sys/dev/acpica/acpi_if.m ============================================================================== --- head/sys/dev/acpica/acpi_if.m Wed Feb 19 04:46:41 2020 (r358094) +++ head/sys/dev/acpica/acpi_if.m Wed Feb 19 06:28:55 2020 (r358095) @@ -53,6 +53,7 @@ HEADER { typedef ACPI_STATUS (*acpi_scan_cb_t)(ACPI_HANDLE h, device_t *dev, int level, void *arg); + struct acpi_bix; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Feb 19 08:02:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 174252525C1; Wed, 19 Feb 2020 08:02:15 +0000 (UTC) (envelope-from yuripv@yuripv.me) Received: from new1-smtp.messagingengine.com (new1-smtp.messagingengine.com [66.111.4.221]) (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 48MqvB6WH3z3Q95; Wed, 19 Feb 2020 08:02:14 +0000 (UTC) (envelope-from yuripv@yuripv.me) Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailnew.nyi.internal (Postfix) with ESMTP id 32B211D0C; Wed, 19 Feb 2020 03:02:14 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Wed, 19 Feb 2020 03:02:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yuripv.me; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm1; bh=V 5FceKLtJu6WD1RwzwYWcDzHZ8afZRpc+Aef96JGbIc=; b=LKD712pmQJ9oAQE3I 0We5HSDN0X7t6ZWoaqkswW530TW0rD0bHYy8R7CaVt9U4uc1xYTuA9i8/oUBs3iC 9hSrYnlDFKJ/Brobr5EqtxAgsRV9HLNZJYmjFYpLxqhOV/jLkZ70gvhoYvXoVmKM c1QfI/syyEjZIVpJ5ZL7IzL8gABZly8F/uf6EymKQ107dbcwbu1I3nWx2u1B4n/t c//1ZTHsCXjD/Dlr3C4ZCWH+NHhJ4CQ9RG23IinVf1c0iA3WMHR9KC/BTd+EfMST jXloG+XLyPNs4S8ScdfsjWFaOO9oSIOA94cMiQ2Wg/3XvYJYtYjKFaIN6oLMla1m 0AfPQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=V5FceKLtJu6WD1RwzwYWcDzHZ8afZRpc+Aef96JGb Ic=; b=JO72z6eqwEfvv2k7gCbfcIxE7rQtTd997pMi5xucN96sTZJ1RtjSOfob/ 6/ylAk2A3qkgbXUgp5pgn33xyvSqxxtExDEwmQsdlZTd9kEzWicNm36zQStouPZl Y4DlKjVNkh3PUDsjTf9Pg/rcXy3u4Qfy6fX4NoxwW0LNLrFYyNh8dKaOGfATc+fY QizY1cyg4+LHAXXxjCizGUzzE9VE+z7J8RiTlS9JhdIlQPdu5Ifc2k5ddnws88G9 AI00Zv9yw3y3VreFNN3E6aE915YSvpbg6wqzxFI85YO5N1+z/QxgfFhgbE+An8DE Hah5VSJ7SMv0H7Ajob9bQTa06VkAg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedrjeelgdduudefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptggguffhjgffgffkfhfvofesthhqmhdthhdtvdenucfhrhhomhepjghurhhi ucfrrghnkhhovhcuoeihuhhrihhpvheshihurhhiphhvrdhmvgeqnecuffhomhgrihhnpe hfrhgvvggsshgurdhorhhgnecukfhppedujeekrdduheehrdegrdduuddvnecuvehluhhs thgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhephihurhhiphhvseihuh hrihhpvhdrmhgv X-ME-Proxy: Received: from earth.yuripv.me (unknown [178.155.4.112]) by mail.messagingengine.com (Postfix) with ESMTPA id 1E9EA3280060; Wed, 19 Feb 2020 03:02:12 -0500 (EST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.60.0.2.5\)) Subject: Re: svn commit: r358062 - in head: contrib/ncurses contrib/ncurses/doc contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/mis... From: Yuri Pankov In-Reply-To: <202002180811.01I8BqEq001150@repo.freebsd.org> Date: Wed, 19 Feb 2020 11:02:11 +0300 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <202002180811.01I8BqEq001150@repo.freebsd.org> To: Baptiste Daroussin X-Mailer: Apple Mail (2.3608.60.0.2.5) X-Rspamd-Queue-Id: 48MqvB6WH3z3Q95 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 08:02:15 -0000 On 18 Feb 2020, at 11:11, Baptiste Daroussin wrote: >=20 > Author: bapt > Date: Tue Feb 18 08:11:52 2020 > New Revision: 358062 > URL: https://svnweb.freebsd.org/changeset/base/358062 >=20 > Log: > Update ncurses to 20200118 >=20 > Among the changes from before: > - Add support for extended colors on widechar version > - Enable ncurses extended functions > - Enable version 2 of the extended mouse support > - Enable SCREEN extensions >=20 > Modification that differs from upstream: > - _nc_delink_entries used to be exposed and was turn static, > turn it back as dynamic to not break abi > - Adapt our old termcap.c to modern ncurses >=20 > MFC after: 3 weeks Somewhat confusingly, I had to rebuild e.g. dialog4ports after this = change as it was displaying garbage. May be a brief headsup is in order = (or am I the only one seeing it)?= From owner-svn-src-all@freebsd.org Wed Feb 19 08:15:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 686EC252916; Wed, 19 Feb 2020 08:15:21 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MrBK225gz4FPr; Wed, 19 Feb 2020 08:15:21 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 358D25E0D; Wed, 19 Feb 2020 08:15:21 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01J8FKcW062302; Wed, 19 Feb 2020 08:15:20 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J8FKJs062301; Wed, 19 Feb 2020 08:15:20 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002190815.01J8FKJs062301@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Wed, 19 Feb 2020 08:15:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358096 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 358096 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 08:15:21 -0000 Author: jeff Date: Wed Feb 19 08:15:20 2020 New Revision: 358096 URL: https://svnweb.freebsd.org/changeset/base/358096 Log: Type validating smr protected pointer accessors. This API is intended to provide some measure of safety with SMR protected pointers. A struct wrapper provides type checking and a guarantee that all access is mediated by the API unless abused. All modifying functions take an assert as an argument to guarantee that the required synchronization is present. Reviewed by: kib, markj, mjg Differential Revision: https://reviews.freebsd.org/D23711 Modified: head/sys/sys/smr.h Modified: head/sys/sys/smr.h ============================================================================== --- head/sys/sys/smr.h Wed Feb 19 06:28:55 2020 (r358095) +++ head/sys/sys/smr.h Wed Feb 19 08:15:20 2020 (r358096) @@ -77,6 +77,98 @@ struct smr { #define SMR_ASSERT_NOT_ENTERED(smr) \ KASSERT(!SMR_ENTERED(smr), ("In smr section.")); +#define SMR_ASSERT(ex, fn) \ + KASSERT((ex), (fn ": Assertion " #ex " failed at %s:%d", __FILE__, __LINE__)) + +/* + * SMR Accessors are meant to provide safe access to SMR protected + * pointers and prevent misuse and accidental access. + * + * Accessors are grouped by type: + * entered - Use while in a read section (between smr_enter/smr_exit()) + * serialized - Use while holding a lock that serializes writers. Updates + * are synchronized with readers via included barriers. + * unserialized - Use after the memory is out of scope and not visible to + * readers. + * + * All acceses include a parameter for an assert to verify the required + * synchronization. For example, a writer might use: + * + * smr_serilized_store(pointer, value, mtx_owned(&writelock)); + * + * These are only enabled in INVARIANTS kernels. + */ + +/* Type restricting pointer access to force smr accessors. */ +#define SMR_TYPE_DECLARE(smrtype, type) \ +typedef struct { \ + type __ptr; /* Do not access directly */ \ +} smrtype + +/* + * Read from an SMR protected pointer while in a read section. + */ +#define smr_entered_load(p, smr) ({ \ + SMR_ASSERT(SMR_ENTERED((smr)), "smr_entered_load"); \ + (__typeof((p)->__ptr))atomic_load_acq_ptr((uintptr_t *)&(p)->__ptr); \ +}) + +/* + * Read from an SMR protected pointer while serialized by an + * external mechanism. 'ex' should contain an assert that the + * external mechanism is held. i.e. mtx_owned() + */ +#define smr_serialized_load(p, ex) ({ \ + SMR_ASSERT(ex, "smr_serialized_load"); \ + (__typeof((p)->__ptr))atomic_load_ptr((uintptr_t *)&(p)->__ptr);\ +}) + +/* + * Store 'v' to an SMR protected pointer while serialized by an + * external mechanism. 'ex' should contain an assert that the + * external mechanism is held. i.e. mtx_owned() + */ +#define smr_serialized_store(p, v, ex) do { \ + SMR_ASSERT(ex, "smr_serialized_store"); \ + __typeof((p)->__ptr) _v = (v); \ + atomic_store_rel_ptr((uintptr_t *)&(p)->__ptr, (uintptr_t)_v); \ +} while (0) + +/* + * swap 'v' with an SMR protected pointer and return the old value + * while serialized by an external mechanism. 'ex' should contain + * an assert that the external mechanism is provided. i.e. mtx_owned() + */ +#define smr_serialized_swap(p, v, ex) ({ \ + SMR_ASSERT(ex, "smr_serialized_swap"); \ + __typeof((p)->__ptr) _v = (v); \ + /* Release barrier guarantees contents are visible to reader */ \ + atomic_thread_fence_rel(); \ + (__typeof((p)->__ptr))atomic_swap_ptr( \ + (uintptr_t *)&(p)->__ptr, (uintptr_t)_v); \ +}) + +/* + * Read from an SMR protected pointer when no serialization is required + * such as in the destructor callback or when the caller guarantees other + * synchronization. + */ +#define smr_unserialized_load(p, ex) ({ \ + SMR_ASSERT(ex, "smr_unserialized_load"); \ + (__typeof((p)->__ptr))atomic_load_ptr((uintptr_t *)&(p)->__ptr);\ +}) + +/* + * Store to an SMR protected pointer when no serialiation is required + * such as in the destructor callback or when the caller guarantees other + * synchronization. + */ +#define smr_unserialized_store(p, v, ex) do { \ + SMR_ASSERT(ex, "smr_unserialized_store"); \ + __typeof((p)->__ptr) _v = (v); \ + atomic_store_ptr((uintptr_t *)&(p)->__ptr, (uintptr_t)_v); \ +} while (0) + /* * Return the current write sequence number. */ From owner-svn-src-all@freebsd.org Wed Feb 19 08:17:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BB3E22529D4; Wed, 19 Feb 2020 08:17:28 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MrDm42jbz4JSK; Wed, 19 Feb 2020 08:17:28 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 70C615E17; Wed, 19 Feb 2020 08:17:28 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01J8HSBY062442; Wed, 19 Feb 2020 08:17:28 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J8HRTY062438; Wed, 19 Feb 2020 08:17:27 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002190817.01J8HRTY062438@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Wed, 19 Feb 2020 08:17:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358097 - in head/sys: kern vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in head/sys: kern vm X-SVN-Commit-Revision: 358097 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 08:17:28 -0000 Author: jeff Date: Wed Feb 19 08:17:27 2020 New Revision: 358097 URL: https://svnweb.freebsd.org/changeset/base/358097 Log: Eliminate some unnecessary uses of UMA_ZONE_VM. Only zones involved in virtual address or physical page allocation need to be marked with this flag. Reviewed by: markj Tested by: pho Differential Revision: https://reviews.freebsd.org/D23712 Modified: head/sys/kern/subr_vmem.c head/sys/kern/vfs_subr.c head/sys/vm/swap_pager.c head/sys/vm/vm_page.c head/sys/vm/vm_pager.c Modified: head/sys/kern/subr_vmem.c ============================================================================== --- head/sys/kern/subr_vmem.c Wed Feb 19 08:15:20 2020 (r358096) +++ head/sys/kern/subr_vmem.c Wed Feb 19 08:17:27 2020 (r358097) @@ -561,8 +561,7 @@ qc_init(vmem_t *vm, vmem_size_t qcache_max) qc->qc_vmem = vm; qc->qc_size = size; qc->qc_cache = uma_zcache_create(qc->qc_name, size, - NULL, NULL, NULL, NULL, qc_import, qc_release, qc, - UMA_ZONE_VM); + NULL, NULL, NULL, NULL, qc_import, qc_release, qc, 0); MPASS(qc->qc_cache); } } @@ -668,10 +667,10 @@ vmem_startup(void) mtx_init(&vmem_list_lock, "vmem list lock", NULL, MTX_DEF); vmem_zone = uma_zcreate("vmem", sizeof(struct vmem), NULL, NULL, NULL, NULL, - UMA_ALIGN_PTR, UMA_ZONE_VM); + UMA_ALIGN_PTR, 0); vmem_bt_zone = uma_zcreate("vmem btag", sizeof(struct vmem_btag), NULL, NULL, NULL, NULL, - UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); + UMA_ALIGN_PTR, UMA_ZONE_VM); #ifndef UMA_MD_SMALL_ALLOC mtx_init(&vmem_bt_lock, "btag lock", NULL, MTX_DEF); uma_prealloc(vmem_bt_zone, BT_MAXALLOC); Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Wed Feb 19 08:15:20 2020 (r358096) +++ head/sys/kern/vfs_subr.c Wed Feb 19 08:17:27 2020 (r358097) @@ -671,7 +671,7 @@ vntblinit(void *dummy __unused) */ buf_trie_zone = uma_zcreate("BUF TRIE", pctrie_node_size(), NULL, NULL, pctrie_zone_init, NULL, UMA_ALIGN_PTR, - UMA_ZONE_NOFREE | UMA_ZONE_VM); + UMA_ZONE_NOFREE); uma_prealloc(buf_trie_zone, nbuf); vnodes_created = counter_u64_alloc(M_WAITOK); Modified: head/sys/vm/swap_pager.c ============================================================================== --- head/sys/vm/swap_pager.c Wed Feb 19 08:15:20 2020 (r358096) +++ head/sys/vm/swap_pager.c Wed Feb 19 08:17:27 2020 (r358097) @@ -585,11 +585,11 @@ swap_pager_swap_init(void) n = maxswzone != 0 ? maxswzone / sizeof(struct swblk) : vm_cnt.v_page_count / 2; swpctrie_zone = uma_zcreate("swpctrie", pctrie_node_size(), NULL, NULL, - pctrie_zone_init, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM); + pctrie_zone_init, NULL, UMA_ALIGN_PTR, 0); if (swpctrie_zone == NULL) panic("failed to create swap pctrie zone."); swblk_zone = uma_zcreate("swblk", sizeof(struct swblk), NULL, NULL, - NULL, NULL, _Alignof(struct swblk) - 1, UMA_ZONE_VM); + NULL, NULL, _Alignof(struct swblk) - 1, 0); if (swblk_zone == NULL) panic("failed to create swap blk zone."); n2 = n; Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Wed Feb 19 08:15:20 2020 (r358096) +++ head/sys/vm/vm_page.c Wed Feb 19 08:17:27 2020 (r358097) @@ -202,7 +202,7 @@ vm_page_init(void *dummy) { fakepg_zone = uma_zcreate("fakepg", sizeof(struct vm_page), NULL, NULL, - NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE | UMA_ZONE_VM); + NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE); bogus_page = vm_page_alloc(NULL, 0, VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | VM_ALLOC_WIRED); } @@ -2022,7 +2022,7 @@ again: #endif vmd = VM_DOMAIN(domain); if (vmd->vmd_pgcache[pool].zone != NULL) { - m = uma_zalloc(vmd->vmd_pgcache[pool].zone, M_NOWAIT); + m = uma_zalloc(vmd->vmd_pgcache[pool].zone, M_NOWAIT | M_NOVM); if (m != NULL) { flags |= PG_PCPU_CACHE; goto found; Modified: head/sys/vm/vm_pager.c ============================================================================== --- head/sys/vm/vm_pager.c Wed Feb 19 08:15:20 2020 (r358096) +++ head/sys/vm/vm_pager.c Wed Feb 19 08:17:27 2020 (r358097) @@ -185,7 +185,7 @@ vm_pager_bufferinit(void) /* Main zone for paging bufs. */ pbuf_zone = uma_zcreate("pbuf", sizeof(struct buf), pbuf_ctor, pbuf_dtor, pbuf_init, NULL, UMA_ALIGN_CACHE, - UMA_ZONE_VM | UMA_ZONE_NOFREE); + UMA_ZONE_NOFREE); /* Few systems may still use this zone directly, so it needs a limit. */ nswbuf_max += uma_zone_set_max(pbuf_zone, NSWBUF_MIN); } From owner-svn-src-all@freebsd.org Wed Feb 19 09:04:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 32F25253D72; Wed, 19 Feb 2020 09:04:22 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MsGs6kR7z4LLR; Wed, 19 Feb 2020 09:04:21 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "tensor.andric.com", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: dim) by smtp.freebsd.org (Postfix) with ESMTPSA id B5C1617CC; Wed, 19 Feb 2020 09:04:21 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from [IPv6:2001:470:7a58:0:5404:1f0d:350e:6b73] (unknown [IPv6:2001:470:7a58:0:5404:1f0d:350e:6b73]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 82D3A2C36C; Wed, 19 Feb 2020 10:04:19 +0100 (CET) Subject: Re: svn commit: r358062 - in head: contrib/ncurses contrib/ncurses/doc contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/mis... To: Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202002180811.01I8BqEq001150@repo.freebsd.org> From: Dimitry Andric Message-ID: Date: Wed, 19 Feb 2020 10:04:19 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <202002180811.01I8BqEq001150@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 09:04:22 -0000 On 2020-02-18 09:11, Baptiste Daroussin wrote: > Author: bapt > Date: Tue Feb 18 08:11:52 2020 > New Revision: 358062 > URL: https://svnweb.freebsd.org/changeset/base/358062 > > Log: > Update ncurses to 20200118 Apparently this breaks the gcc builds, because it can't find the function "box" anymore: --- all_subdir_usr.bin/clang/lldb --- /usr/local/bin/x86_64-unknown-freebsd12.0-ld: /tmp/obj/workspace/src/amd64.amd64/lib/clang/liblldb/liblldb.a(IOHandler.o): in function `curses::Window::Box(unsigned int, unsigned int)': /workspace/src/contrib/llvm-project/lldb/source/Core/IOHandler.cpp:926: undefined reference to `box' /usr/local/bin/x86_64-unknown-freebsd12.0-ld: /workspace/src/contrib/llvm-project/lldb/source/Core/IOHandler.cpp:926: undefined reference to `box' collect2: error: ld returned 1 exit status *** [lldb.full] Error code 1 See also: https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/13322/ -Dimitry From owner-svn-src-all@freebsd.org Wed Feb 19 09:10:13 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 580C9253E42; Wed, 19 Feb 2020 09:10:13 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MsPd00Vcz4Ql7; Wed, 19 Feb 2020 09:10:12 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ABC06672F; Wed, 19 Feb 2020 09:10:12 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01J9AC9l092812; Wed, 19 Feb 2020 09:10:12 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01J9ABx9092808; Wed, 19 Feb 2020 09:10:11 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002190910.01J9ABx9092808@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Wed, 19 Feb 2020 09:10:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358098 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358098 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 09:10:13 -0000 Author: jeff Date: Wed Feb 19 09:10:11 2020 New Revision: 358098 URL: https://svnweb.freebsd.org/changeset/base/358098 Log: Don't release xbusy on kmem pages. After lockless page lookup we will not be able to guarantee that they can be racquired without blocking. Reviewed by: kib Discussed with: markj Differential Revision: https://reviews.freebsd.org/D23506 Modified: head/sys/vm/vm_glue.c head/sys/vm/vm_kern.c head/sys/vm/vm_page.h head/sys/vm/vm_swapout.c Modified: head/sys/vm/vm_glue.c ============================================================================== --- head/sys/vm/vm_glue.c Wed Feb 19 08:17:27 2020 (r358097) +++ head/sys/vm/vm_glue.c Wed Feb 19 09:10:11 2020 (r358098) @@ -342,10 +342,8 @@ vm_thread_stack_create(struct domainset *ds, vm_object VM_OBJECT_WLOCK(ksobj); (void)vm_page_grab_pages(ksobj, 0, VM_ALLOC_NORMAL | VM_ALLOC_WIRED, ma, pages); - for (i = 0; i < pages; i++) { + for (i = 0; i < pages; i++) vm_page_valid(ma[i]); - vm_page_xunbusy(ma[i]); - } VM_OBJECT_WUNLOCK(ksobj); pmap_qenter(ks, ma, pages); *ksobjp = ksobj; @@ -365,7 +363,7 @@ vm_thread_stack_dispose(vm_object_t ksobj, vm_offset_t m = vm_page_lookup(ksobj, i); if (m == NULL) panic("%s: kstack already missing?", __func__); - vm_page_busy_acquire(m, 0); + vm_page_xbusy_claim(m); vm_page_unwire_noq(m); vm_page_free(m); } Modified: head/sys/vm/vm_kern.c ============================================================================== --- head/sys/vm/vm_kern.c Wed Feb 19 08:17:27 2020 (r358097) +++ head/sys/vm/vm_kern.c Wed Feb 19 09:10:11 2020 (r358098) @@ -224,7 +224,6 @@ retry: if ((flags & M_ZERO) && (m->flags & PG_ZERO) == 0) pmap_zero_page(m); vm_page_valid(m); - vm_page_xunbusy(m); pmap_enter(kernel_pmap, addr + i, m, prot, prot | PMAP_ENTER_WIRED, 0); } @@ -317,7 +316,6 @@ retry: if ((flags & M_ZERO) && (m->flags & PG_ZERO) == 0) pmap_zero_page(m); vm_page_valid(m); - vm_page_xunbusy(m); pmap_enter(kernel_pmap, tmp, m, VM_PROT_RW, VM_PROT_RW | PMAP_ENTER_WIRED, 0); tmp += PAGE_SIZE; @@ -501,7 +499,6 @@ retry: KASSERT((m->oflags & VPO_UNMANAGED) != 0, ("kmem_malloc: page %p is managed", m)); vm_page_valid(m); - vm_page_xunbusy(m); pmap_enter(kernel_pmap, addr + i, m, prot, prot | PMAP_ENTER_WIRED, 0); #if VM_NRESERVLEVEL > 0 @@ -591,7 +588,7 @@ _kmem_unback(vm_object_t object, vm_offset_t addr, vm_ #endif for (; offset < end; offset += PAGE_SIZE, m = next) { next = vm_page_next(m); - vm_page_busy_acquire(m, 0); + vm_page_xbusy_claim(m); vm_page_unwire_noq(m); vm_page_free(m); } Modified: head/sys/vm/vm_page.h ============================================================================== --- head/sys/vm/vm_page.h Wed Feb 19 08:17:27 2020 (r358097) +++ head/sys/vm/vm_page.h Wed Feb 19 09:10:11 2020 (r358098) @@ -764,9 +764,14 @@ void vm_page_object_busy_assert(vm_page_t m); void vm_page_assert_pga_writeable(vm_page_t m, uint16_t bits); #define VM_PAGE_ASSERT_PGA_WRITEABLE(m, bits) \ vm_page_assert_pga_writeable(m, bits) +#define vm_page_xbusy_claim(m) do { \ + vm_page_assert_xbusied_unchecked((m)); \ + (m)->busy_lock = VPB_CURTHREAD_EXCLUSIVE; \ +} while (0) #else #define VM_PAGE_OBJECT_BUSY_ASSERT(m) (void)0 #define VM_PAGE_ASSERT_PGA_WRITEABLE(m, bits) (void)0 +#define vm_page_xbusy_claim(m) #endif #if BYTE_ORDER == BIG_ENDIAN Modified: head/sys/vm/vm_swapout.c ============================================================================== --- head/sys/vm/vm_swapout.c Wed Feb 19 08:17:27 2020 (r358097) +++ head/sys/vm/vm_swapout.c Wed Feb 19 09:10:11 2020 (r358098) @@ -540,6 +540,7 @@ vm_thread_swapout(struct thread *td) if (m == NULL) panic("vm_thread_swapout: kstack already missing?"); vm_page_dirty(m); + vm_page_xunbusy_unchecked(m); vm_page_unwire(m, PQ_LAUNDRY); } VM_OBJECT_WUNLOCK(ksobj); @@ -564,7 +565,6 @@ vm_thread_swapin(struct thread *td, int oom_alloc) for (i = 0; i < pages;) { vm_page_assert_xbusied(ma[i]); if (vm_page_all_valid(ma[i])) { - vm_page_xunbusy(ma[i]); i++; continue; } @@ -581,8 +581,6 @@ vm_thread_swapin(struct thread *td, int oom_alloc) KASSERT(rv == VM_PAGER_OK, ("%s: cannot get kstack for proc %d", __func__, td->td_proc->p_pid)); vm_object_pip_wakeup(ksobj); - for (j = i; j < i + count; j++) - vm_page_xunbusy(ma[j]); i += count; } pmap_qenter(td->td_kstack, ma, pages); From owner-svn-src-all@freebsd.org Wed Feb 19 09:41:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A514254527; Wed, 19 Feb 2020 09:41:29 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Mt5j3XBmz4RY0; Wed, 19 Feb 2020 09:41:29 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from ivaldir.etoilebsd.net (etoilebsd.net [178.32.217.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: bapt) by smtp.freebsd.org (Postfix) with ESMTPSA id 6088B1C9E; Wed, 19 Feb 2020 09:41:29 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: by ivaldir.etoilebsd.net (Postfix, from userid 1001) id E12A4E6CF2; Wed, 19 Feb 2020 10:41:27 +0100 (CET) Date: Wed, 19 Feb 2020 10:41:27 +0100 From: Baptiste Daroussin To: Yuri Pankov Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r358062 - in head: contrib/ncurses contrib/ncurses/doc contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/mis... Message-ID: <20200219094127.6r3udslzbftcvnhr@ivaldir.net> References: <202002180811.01I8BqEq001150@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="s2ubnhglproenvoz" Content-Disposition: inline In-Reply-To: X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 09:41:29 -0000 --s2ubnhglproenvoz Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Feb 19, 2020 at 11:02:11AM +0300, Yuri Pankov wrote: > On 18 Feb 2020, at 11:11, Baptiste Daroussin wrote: > >=20 > > Author: bapt > > Date: Tue Feb 18 08:11:52 2020 > > New Revision: 358062 > > URL: https://svnweb.freebsd.org/changeset/base/358062 > >=20 > > Log: > > Update ncurses to 20200118 > >=20 > > Among the changes from before: > > - Add support for extended colors on widechar version > > - Enable ncurses extended functions > > - Enable version 2 of the extended mouse support > > - Enable SCREEN extensions > >=20 > > Modification that differs from upstream: > > - _nc_delink_entries used to be exposed and was turn static, > > turn it back as dynamic to not break abi > > - Adapt our old termcap.c to modern ncurses > >=20 > > MFC after: 3 weeks >=20 > Somewhat confusingly, I had to rebuild e.g. dialog4ports after this chang= e as it was displaying garbage. May be a brief headsup is in order (or am = I the only one seeing it)? I will add a not in UPDATING Best regards, Bapt --s2ubnhglproenvoz Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAl5NAsUACgkQY4mL3PG3 PlowHBAAimu2VonM0w+T47lPU8isGlWRBGVe/srGtayZvMv9Uwjz/LpA9FW46I6K M1xTDJmdewWo04rs3NLlKJGxrblWREClptiv0v2ZNIzA2KNjkm35UlsP8vT/7/3K 0O141IXvt1+7tvDolmafeYPtYp6HaezI6yuzmtb82rs7D/h8tSkApZ2SHdxPf58b iOCoest22adS4kMYZCwvnSNd29bR/BzFAwjNAMwrvwpu6TVeinSHLTjSg+sVpH64 KPzoTQOR8/qA5OwdJrkbdeLWEGUWZT1oBvzCtqxzr3vSXqe1JDp/Iv2TVTwQroAD YG2hDKfWMjTOqQDyTbXnsks780VqkccmI/KEqzILRx8O145ZZ2A/iHtJENmNl6aV 0zQx2GmLAihOWkV83wAFML/6SyHMfNZHw6T2vfhHpZsqB4jka1RIvBxDrgUfIjeM f+ogtjyi1tg0PZCS7dA6LDm76+sN2wsTLwJbgrj+YCu2F4i3SS2y3bF+0uZWjzaU NHs6ZgvnYJJVlKz2Ktg/1epxMu5xaz0bQNEbyp3H4i8Vpwvmot3GxPHk4NPpY/cW X4Voj18UHOzQqe49UIdC5vf4vuvoWFgk0VFPs8YA645QBV3I2wJKxUoAmCjimeVY 6rwE357PLurKYNtm+ktWJNW5WOc335iWWreJ7s0KGF5NQunb/hE= =LOf0 -----END PGP SIGNATURE----- --s2ubnhglproenvoz-- From owner-svn-src-all@freebsd.org Wed Feb 19 11:09:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BE1F0256258; Wed, 19 Feb 2020 11:09:36 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: from mail-yw1-f65.google.com (mail-yw1-f65.google.com [209.85.161.65]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Mw3N49Hmz4Pn6; Wed, 19 Feb 2020 11:09:36 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: by mail-yw1-f65.google.com with SMTP id 10so10876165ywv.5; Wed, 19 Feb 2020 03:09:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=k8h7iKHUyf3EPzOzzJe49vUtQXFtsAb72u4Y9Y0pKrA=; b=VJLkl7LGLGFWJlmltm41RSFcrWk7qIH6SjsomNuXJgzXAuc3wTfpbP7cnFWDf7Wvum D0MPzERjNmZkFQ+Rpg1IIWK/aYoSDFMibHOTNF/jb3rRB7p8viMOSoFTTUN6KhFwMIS/ kDxPEPbwJvaaKFkIAKtjptKUX6bZqBplPhCOPmAJwpzUYprMYqWMp7Io9gfuyXWfez+T 2t4ncCpf5VICqKa2LHX2mPaEweoESF+Cuodd/mJmsJ2dZF3jINR9/reTLwymOC85xUst SmDnoaw6kok5SUuHcuvc+yl82BqZmGodA50CRWj4tlHxNtQl17IbTbTa8jACJtklI1CK VvaQ== X-Gm-Message-State: APjAAAVKEAV9WQJH2WAF8EbiP1Daqjjc1VrbX5Tbv0YPfB0oAEe5vk7d 5Xq4WJFGIohXp+gES9DXtACtc3rLoKm6jjNy8Y4TDgfD X-Google-Smtp-Source: APXvYqxKGIecyZCWxPRdo2jWX39924/316oQasQBIqb8wYjTYdUp/T6AcSqlhg0qkPr1yeCqIi8J936AnnhP83HOewE= X-Received: by 2002:a81:23d1:: with SMTP id j200mr1453812ywj.385.1582110574625; Wed, 19 Feb 2020 03:09:34 -0800 (PST) MIME-Version: 1.0 References: <202002180811.01I8BqEq001150@repo.freebsd.org> In-Reply-To: From: Li-Wen Hsu Date: Wed, 19 Feb 2020 19:09:22 +0800 Message-ID: Subject: Re: svn commit: r358062 - in head: contrib/ncurses contrib/ncurses/doc contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/mis... To: Dimitry Andric Cc: Baptiste Daroussin , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48Mw3N49Hmz4Pn6 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 11:09:36 -0000 On Wed, Feb 19, 2020 at 5:04 PM Dimitry Andric wrote: > > On 2020-02-18 09:11, Baptiste Daroussin wrote: > > Author: bapt > > Date: Tue Feb 18 08:11:52 2020 > > New Revision: 358062 > > URL: https://svnweb.freebsd.org/changeset/base/358062 > > > > Log: > > Update ncurses to 20200118 > > Apparently this breaks the gcc builds, because it can't find the > function "box" anymore: > > --- all_subdir_usr.bin/clang/lldb --- > /usr/local/bin/x86_64-unknown-freebsd12.0-ld: > /tmp/obj/workspace/src/amd64.amd64/lib/clang/liblldb/liblldb.a(IOHandler.o): > in function `curses::Window::Box(unsigned int, unsigned int)': > /workspace/src/contrib/llvm-project/lldb/source/Core/IOHandler.cpp:926: > undefined reference to `box' > /usr/local/bin/x86_64-unknown-freebsd12.0-ld: > /workspace/src/contrib/llvm-project/lldb/source/Core/IOHandler.cpp:926: > undefined reference to `box' > collect2: error: ld returned 1 exit status > *** [lldb.full] Error code 1 > > See also: https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/13322/ For more information, currently the FreeBSD-head-amd64-gcc is using amd64-gcc package via amd64-xtoolchain-gcc, which is 6.4 A test build with amd64-gcc6, which is 6.5, just completed and it's fine. I haven't checked this failure is due to our code itself, gcc versions or the difference in the configuration of two gcc ports. I think I will create FreeBSD-head-amd64-gcc6 job uses newer and preferred external tool chain, then the experimental ones like FreeBSD-head-amd64-gcc9, 10 and llvm-devel. Best, Li-Wen From owner-svn-src-all@freebsd.org Wed Feb 19 12:45:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8DBE7239228; Wed, 19 Feb 2020 12:45:36 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48MyB70z70z3GPk; Wed, 19 Feb 2020 12:45:34 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id 01JCjRXI068506; Wed, 19 Feb 2020 04:45:27 -0800 (PST) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 01JCjRf6068505; Wed, 19 Feb 2020 04:45:27 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202002191245.01JCjRf6068505@gndrsh.dnsmgr.net> Subject: Re: svn commit: r358062 - in head: contrib/ncurses contrib/ncurses/doc contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/mis... In-Reply-To: To: Yuri Pankov Date: Wed, 19 Feb 2020 04:45:27 -0800 (PST) CC: Baptiste Daroussin , 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-Rspamd-Queue-Id: 48MyB70z70z3GPk X-Spamd-Bar: + Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of freebsd@gndrsh.dnsmgr.net has no SPF policy when checking 69.59.192.140) smtp.mailfrom=freebsd@gndrsh.dnsmgr.net X-Spamd-Result: default: False [1.59 / 15.00]; ARC_NA(0.00)[]; HAS_REPLYTO(0.00)[rgrimes@freebsd.org]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[dnsmgr.net]; AUTH_NA(1.00)[]; RCPT_COUNT_FIVE(0.00)[5]; NEURAL_SPAM_MEDIUM(0.41)[0.407,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_SPAM_LONG(0.24)[0.245,0]; REPLYTO_DOM_NEQ_FROM_DOM(0.00)[]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:13868, ipnet:69.59.192.0/19, country:US]; MID_RHS_MATCH_FROM(0.00)[]; IP_SCORE(0.03)[ip: (0.13), ipnet: 69.59.192.0/19(0.07), asn: 13868(0.03), country: US(-0.05)]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 12:45:36 -0000 > On 18 Feb 2020, at 11:11, Baptiste Daroussin wrote: > > > > Author: bapt > > Date: Tue Feb 18 08:11:52 2020 > > New Revision: 358062 > > URL: https://svnweb.freebsd.org/changeset/base/358062 > > > > Log: > > Update ncurses to 20200118 > > > > Among the changes from before: > > - Add support for extended colors on widechar version > > - Enable ncurses extended functions > > - Enable version 2 of the extended mouse support > > - Enable SCREEN extensions > > > > Modification that differs from upstream: > > - _nc_delink_entries used to be exposed and was turn static, > > turn it back as dynamic to not break abi > > - Adapt our old termcap.c to modern ncurses > > > > MFC after: 3 weeks > > Somewhat confusingly, I had to rebuild e.g. dialog4ports after this change as it was displaying garbage. May be a brief headsup is in order (or am I the only one seeing it)? If this is infact found to cause those types of dependency breakage I would wonder about MFC: status. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Wed Feb 19 12:49:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 20E2E2393A4; Wed, 19 Feb 2020 12:49:51 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MyH2720Cz3NlP; Wed, 19 Feb 2020 12:49:50 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C74088F05; Wed, 19 Feb 2020 12:49:50 +0000 (UTC) (envelope-from carlavilla@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JCnoKc025542; Wed, 19 Feb 2020 12:49:50 GMT (envelope-from carlavilla@FreeBSD.org) Received: (from carlavilla@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JCnopJ025538; Wed, 19 Feb 2020 12:49:50 GMT (envelope-from carlavilla@FreeBSD.org) Message-Id: <202002191249.01JCnopJ025538@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: carlavilla set sender to carlavilla@FreeBSD.org using -f From: Sergio Carlavilla Delgado Date: Wed, 19 Feb 2020 12:49:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358099 - in head: lib/msun/man share/man/man7 usr.sbin/ac usr.sbin/sa X-SVN-Group: head X-SVN-Commit-Author: carlavilla X-SVN-Commit-Paths: in head: lib/msun/man share/man/man7 usr.sbin/ac usr.sbin/sa X-SVN-Commit-Revision: 358099 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 12:49:51 -0000 Author: carlavilla (doc committer) Date: Wed Feb 19 12:49:49 2020 New Revision: 358099 URL: https://svnweb.freebsd.org/changeset/base/358099 Log: Add some HISTORY sections to manpages environ(7) was in AT&T Version 7 ac(8): Add a HISTORY section sa(8): Add a HISTORY section sqrt(3): Add the actual sqrt function to the HISTORY section Obtained from: OpenBSD Submitted by: gbergling@gmail.com Approved by: bcr@(mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23693 Modified: head/lib/msun/man/sqrt.3 head/share/man/man7/environ.7 head/usr.sbin/ac/ac.8 head/usr.sbin/sa/sa.8 Modified: head/lib/msun/man/sqrt.3 ============================================================================== --- head/lib/msun/man/sqrt.3 Wed Feb 19 09:10:11 2020 (r358098) +++ head/lib/msun/man/sqrt.3 Wed Feb 19 12:49:49 2020 (r358099) @@ -28,7 +28,7 @@ .\" from: @(#)sqrt.3 6.4 (Berkeley) 5/6/91 .\" $FreeBSD$ .\" -.Dd March 5, 2011 +.Dd February 15, 2020 .Dt SQRT 3 .Os .Sh NAME @@ -113,6 +113,9 @@ The function appeared in .Bx 4.3 . The +.Fn sqrt +function appeared in +.At v2 . .Fn sqrtl function appeared in .Fx 8.0 . Modified: head/share/man/man7/environ.7 ============================================================================== --- head/share/man/man7/environ.7 Wed Feb 19 09:10:11 2020 (r358098) +++ head/share/man/man7/environ.7 Wed Feb 19 12:49:49 2020 (r358099) @@ -28,7 +28,7 @@ .\" @(#)environ.7 8.3 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd April 12, 2003 +.Dd February 14, 2020 .Dt ENVIRON 7 .Os .Sh NAME @@ -261,4 +261,4 @@ built-in command in The .Nm manual page appeared in -.Bx 4.2 . +.At v7 . Modified: head/usr.sbin/ac/ac.8 ============================================================================== --- head/usr.sbin/ac/ac.8 Wed Feb 19 09:10:11 2020 (r358098) +++ head/usr.sbin/ac/ac.8 Wed Feb 19 12:49:49 2020 (r358099) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 21, 2010 +.Dd February 14, 2020 .Dt AC 8 .Os .Sh NAME @@ -126,6 +126,16 @@ ac -p -t "!ttyd*" > other .Xr getutxent 3 , .Xr init 8 , .Xr sa 8 +.Sh HISTORY +An +.Nm +command appeared in +.At v5 . +This version of +.Nm +was written for +.Nx 0.9a +from the specification provided by various systems' manual pages. .\" .Sh NOTES .\" If COMPAT_SUNOS is defined .\" .Nm ac Modified: head/usr.sbin/sa/sa.8 ============================================================================== --- head/usr.sbin/sa/sa.8 Wed Feb 19 09:10:11 2020 (r358098) +++ head/usr.sbin/sa/sa.8 Wed Feb 19 12:49:49 2020 (r358099) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 18, 2007 +.Dd February 14, 2020 .Dt SA 8 .Os .Sh NAME @@ -234,6 +234,14 @@ per-user accounting summary database .Xr acct 5 , .Xr ac 8 , .Xr accton 8 +.Sh HISTORY +.Nm +first appeared in +.At v5 . +.Nm +was rewritten for +.Nx 0.9a +from the specification provided by various systems' manual pages. .Sh AUTHORS .An Chris G. Demetriou Aq Mt cgd@postgres.berkeley.edu .Sh CAVEATS From owner-svn-src-all@freebsd.org Wed Feb 19 14:02:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4897923B04B; Wed, 19 Feb 2020 14:02:58 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48MzvQ1KL8z4TnF; Wed, 19 Feb 2020 14:02:58 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from ivaldir.etoilebsd.net (etoilebsd.net [178.32.217.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: bapt) by smtp.freebsd.org (Postfix) with ESMTPSA id 10F0E3DA4; Wed, 19 Feb 2020 14:02:58 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: by ivaldir.etoilebsd.net (Postfix, from userid 1001) id C019EE6EE1; Wed, 19 Feb 2020 15:02:54 +0100 (CET) Date: Wed, 19 Feb 2020 15:02:54 +0100 From: Baptiste Daroussin To: rgrimes@freebsd.org Cc: Yuri Pankov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r358062 - in head: contrib/ncurses contrib/ncurses/doc contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/mis... Message-ID: <20200219140254.k5qnaz5bpm3zwacd@ivaldir.net> References: <202002191245.01JCjRf6068505@gndrsh.dnsmgr.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="6p5gm5e3wukehgdy" Content-Disposition: inline In-Reply-To: <202002191245.01JCjRf6068505@gndrsh.dnsmgr.net> X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:02:58 -0000 --6p5gm5e3wukehgdy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Feb 19, 2020 at 04:45:27AM -0800, Rodney W. Grimes wrote: > > On 18 Feb 2020, at 11:11, Baptiste Daroussin wrote: > > >=20 > > > Author: bapt > > > Date: Tue Feb 18 08:11:52 2020 > > > New Revision: 358062 > > > URL: https://svnweb.freebsd.org/changeset/base/358062 > > >=20 > > > Log: > > > Update ncurses to 20200118 > > >=20 > > > Among the changes from before: > > > - Add support for extended colors on widechar version > > > - Enable ncurses extended functions > > > - Enable version 2 of the extended mouse support > > > - Enable SCREEN extensions > > >=20 > > > Modification that differs from upstream: > > > - _nc_delink_entries used to be exposed and was turn static, > > > turn it back as dynamic to not break abi > > > - Adapt our old termcap.c to modern ncurses > > >=20 > > > MFC after: 3 weeks > >=20 > > Somewhat confusingly, I had to rebuild e.g. dialog4ports after this cha= nge as it was displaying garbage. May be a brief headsup is in order (or a= m I the only one seeing it)? >=20 > If this is infact found to cause those types of dependency breakage I wou= ld wonder about MFC: status. >=20 Yes I don't plan to MFC without a fix on this, if any. Best regards, Bapt --6p5gm5e3wukehgdy Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAl5NQAwACgkQY4mL3PG3 PlrSaA/+MaZnVO6QLirN4m9i/SdSYgM+cB1FMT3VdMFfCXs5yM3kw3uvJcy9so7f rn/Un7VW+8/JQNlVSIxoLb9VplZ3XGIsIEk48Qtsy/T7VCDEpXddycsRPPwxKSI6 9qvZdjUNRdX9GWLqReSp/45wMt88tMaXRr44lWYozst38ygT7l7uQP9FAvnD5r7P b0p3bhAZH02uZbkTI76Qh7YjwC1uIrRnKLF8cLYlp5YIspE3alsXq8eD180krcZa MFg9pfCoYhUlB4dIrqpbTtjoqXQrH0Ucrec4cV1z8lNcVAFi7jMGsWPZlEuSfZ8n 3qngULUTS/zyRHdyJ1crlnZc17pecT4ADV6MlVcTaJg/Gx1ZdtVBjRtmsQYLXM0E Cr9bnvOQsbyyyQr1H5VKBG4Z48rbnl8pVGUviA5A7XLHm646vNIrEHiv3xCBXz2v BPV/mya2CTjUgXk7bUCYh3uU8FGq9KPnqpOEczWoaFqoliKojCYyYEpaPzyeHugt ifShgaJbPAzm/HOxfm6iI+WzJvbz5hV+WUO70PAVSgnKclm5G+S6x5C+IEEGX7Vo cqNIl8llqzQeQJLm+wp1STrMVc0bsVleID8QYF+chkPJecVpuS6prwMuemO/Nbkm KSIyspImro/rtyvZ2PMD3Aq9D3baBbwsE6x3zhAYDm2QZdqVYHI= =GkfG -----END PGP SIGNATURE----- --6p5gm5e3wukehgdy-- From owner-svn-src-all@freebsd.org Wed Feb 19 14:09:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 47E4E23B13F; Wed, 19 Feb 2020 14:09:16 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N02h1D8gz4bcd; Wed, 19 Feb 2020 14:09:16 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 204329D95; Wed, 19 Feb 2020 14:09:16 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JE9FKe073377; Wed, 19 Feb 2020 14:09:15 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JE9FHo073376; Wed, 19 Feb 2020 14:09:15 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191409.01JE9FHo073376@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 14:09:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358100 - head/lib/ncurses/ncurses X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: head/lib/ncurses/ncurses X-SVN-Commit-Revision: 358100 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:09:16 -0000 Author: bapt Date: Wed Feb 19 14:09:15 2020 New Revision: 358100 URL: https://svnweb.freebsd.org/changeset/base/358100 Log: lib_gen.c now also depends on ncurses_dll.h specify it to prevent some breakage if ncurses_dll.h is already present in base while building Modified: head/lib/ncurses/ncurses/Makefile Modified: head/lib/ncurses/ncurses/Makefile ============================================================================== --- head/lib/ncurses/ncurses/Makefile Wed Feb 19 12:49:49 2020 (r358099) +++ head/lib/ncurses/ncurses/Makefile Wed Feb 19 14:09:15 2020 (r358100) @@ -345,7 +345,7 @@ names.c: MKnames.awk codes.c: MKcodes.awk ${AWK} -f ${NCURSES_DIR}/ncurses/tinfo/MKcodes.awk bigstrings=${USE_BIG_STRINGS} ${NCURSES_DIR}/include/Caps > codes.c -lib_gen.c: MKlib_gen.sh curses.h +lib_gen.c: MKlib_gen.sh curses.h ncurses_dll.h LC_ALL=C sh ${NCURSES_DIR}/ncurses/base/MKlib_gen.sh "${CPP:N${CCACHE_BIN}} ${CPPFLAGS}" \ "${AWK}" generated < curses.h >$@ From owner-svn-src-all@freebsd.org Wed Feb 19 14:13:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0781A23B391; Wed, 19 Feb 2020 14:13:00 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N06z5qv3z3Drp; Wed, 19 Feb 2020 14:12:59 +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 AFE519F56; Wed, 19 Feb 2020 14:12:59 +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 01JECx8m079605; Wed, 19 Feb 2020 14:12:59 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JECx2p079604; Wed, 19 Feb 2020 14:12:59 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202002191412.01JECx2p079604@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 19 Feb 2020 14:12:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358101 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 358101 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:13:00 -0000 Author: emaste Date: Wed Feb 19 14:12:59 2020 New Revision: 358101 URL: https://svnweb.freebsd.org/changeset/base/358101 Log: Move GCOV option to default NO GNU gcov will be removed along with GCC 4.2.1 at the end of the month. Change the default to NO in preparation. Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Wed Feb 19 14:09:15 2020 (r358100) +++ head/share/mk/src.opts.mk Wed Feb 19 14:12:59 2020 (r358101) @@ -102,7 +102,6 @@ __DEFAULT_YES_OPTIONS = \ FREEBSD_UPDATE \ FTP \ GAMES \ - GCOV \ GDB \ GNU_DIFF \ GNU_GREP \ @@ -201,6 +200,7 @@ __DEFAULT_NO_OPTIONS = \ EXPERIMENTAL \ GCC \ GCC_BOOTSTRAP \ + GCOV \ GNUCXX \ GNU_GREP_COMPAT \ GPL_DTC \ From owner-svn-src-all@freebsd.org Wed Feb 19 14:16:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E77AD23B458; Wed, 19 Feb 2020 14:16:48 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0CN5wwkz3LPP; Wed, 19 Feb 2020 14:16:48 +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 C6E9E9F5B; Wed, 19 Feb 2020 14:16:48 +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 01JEGm2q079840; Wed, 19 Feb 2020 14:16:48 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEGmHL079839; Wed, 19 Feb 2020 14:16:48 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202002191416.01JEGmHL079839@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 19 Feb 2020 14:16:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358102 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 358102 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:16:49 -0000 Author: emaste Date: Wed Feb 19 14:16:48 2020 New Revision: 358102 URL: https://svnweb.freebsd.org/changeset/base/358102 Log: src.conf.5: regen after r358101, WITHOUT_GCOV default Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Wed Feb 19 14:12:59 2020 (r358101) +++ head/share/man/man5/src.conf.5 Wed Feb 19 14:16:48 2020 (r358102) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd February 6, 2020 +.Dd February 19, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -705,8 +705,8 @@ This option is deprecated and will be removed before Set to build gcc and g++ as part of the bootstrap process. This option is deprecated and will be removed before .Fx 13 . -.It Va WITHOUT_GCOV -Set to not build the +.It Va WITH_GCOV +Build and install the GNU .Xr gcov 1 tool. .It Va WITHOUT_GDB @@ -747,6 +747,17 @@ Set to neither build nor install .Lb libgmock , .Lb libgtest , and dependent tests. +.Pp +This is a default setting on +mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf and mips/mips64hf. +.It Va WITH_GOOGLETEST +Set to build and install +.Lb libgmock , +.Lb libgtest , +and dependent tests. +.Pp +This is a default setting on +amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_GPIO Set to not build .Xr gpioctl 8 From owner-svn-src-all@freebsd.org Wed Feb 19 14:18:18 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7B09323B558; Wed, 19 Feb 2020 14:18:18 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0F62lWtz3NTL; Wed, 19 Feb 2020 14:18:18 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 59BEA9F60; Wed, 19 Feb 2020 14:18:18 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JEII6U079954; Wed, 19 Feb 2020 14:18:18 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEIInV079953; Wed, 19 Feb 2020 14:18:18 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191418.01JEIInV079953@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 14:18:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358103 - head X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 358103 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:18:18 -0000 Author: bapt Date: Wed Feb 19 14:18:17 2020 New Revision: 358103 URL: https://svnweb.freebsd.org/changeset/base/358103 Log: Add a note about some fallouts due to the ncurses update Modified: head/UPDATING Modified: head/UPDATING ============================================================================== --- head/UPDATING Wed Feb 19 14:16:48 2020 (r358102) +++ head/UPDATING Wed Feb 19 14:18:17 2020 (r358103) @@ -26,6 +26,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20200218: + ncurses has been updated to a newer version (6.1-20200118). After an + update some applications using ncurses may results have some rendering + problems and would need to be rebuilt. + 20200217: The size of struct vnet and the magic cookie have changed. Users need to recompile libkvm and all modules using VIMAGE From owner-svn-src-all@freebsd.org Wed Feb 19 14:24:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7EF7323B7DF; Wed, 19 Feb 2020 14:24:06 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0Mp2JGpz43pQ; Wed, 19 Feb 2020 14:24:06 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3E536A137; Wed, 19 Feb 2020 14:24:06 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JEO6bS085505; Wed, 19 Feb 2020 14:24:06 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEO64h085504; Wed, 19 Feb 2020 14:24:06 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191424.01JEO64h085504@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 14:24:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358104 - stable/12/tools/build/mk X-SVN-Group: stable-12 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: stable/12/tools/build/mk X-SVN-Commit-Revision: 358104 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:24:06 -0000 Author: bapt Date: Wed Feb 19 14:24:05 2020 New Revision: 358104 URL: https://svnweb.freebsd.org/changeset/base/358104 Log: MFC r353100: Do not remove the locale directory when building a system without locales This directory is actually needed during make installworld and will prevent to reinstall a system after make delete-old is done. PR: 226137 Reported by: rakuco Modified: stable/12/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/12/ (props changed) Modified: stable/12/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- stable/12/tools/build/mk/OptionalObsoleteFiles.inc Wed Feb 19 14:18:17 2020 (r358103) +++ stable/12/tools/build/mk/OptionalObsoleteFiles.inc Wed Feb 19 14:24:05 2020 (r358104) @@ -4849,7 +4849,6 @@ OLD_FILES+=usr/share/man/man1/lldb.1.gz .endif .if ${MK_LOCALES} == no -OLD_DIRS+=usr/share/locale OLD_DIRS+=usr/share/locale/af_ZA.ISO8859-15 OLD_FILES+=usr/share/locale/af_ZA.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/af_ZA.ISO8859-15/LC_CTYPE From owner-svn-src-all@freebsd.org Wed Feb 19 14:26:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 608E223B8B2; Wed, 19 Feb 2020 14:26:28 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0QX1YHWz47dQ; Wed, 19 Feb 2020 14:26:28 +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 23723A145; Wed, 19 Feb 2020 14:26:28 +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 01JEQSOO085715; Wed, 19 Feb 2020 14:26:28 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEQRXg085714; Wed, 19 Feb 2020 14:26:27 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202002191426.01JEQRXg085714@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 19 Feb 2020 14:26:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358105 - head/tools/tools/nanobsd/embedded X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/tools/tools/nanobsd/embedded X-SVN-Commit-Revision: 358105 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:26:28 -0000 Author: emaste Date: Wed Feb 19 14:26:27 2020 New Revision: 358105 URL: https://svnweb.freebsd.org/changeset/base/358105 Log: nanobsd: add WITHOUT_LLVM_COV, akin to WITHOUT_GCOV Modified: head/tools/tools/nanobsd/embedded/common Modified: head/tools/tools/nanobsd/embedded/common ============================================================================== --- head/tools/tools/nanobsd/embedded/common Wed Feb 19 14:24:05 2020 (r358104) +++ head/tools/tools/nanobsd/embedded/common Wed Feb 19 14:26:27 2020 (r358105) @@ -142,6 +142,7 @@ WITHOUT_GAMES=true WITHOUT_GCOV=true WITHOUT_HTML=true WITHOUT_IPFILTER=true +WITHOUT_LLVM_COV=true WITHOUT_LOCALES=true WITHOUT_LPR=true WITHOUT_MAN=true From owner-svn-src-all@freebsd.org Wed Feb 19 14:26:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 775D723B8B3; Wed, 19 Feb 2020 14:26:28 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0QX29RZz47db; Wed, 19 Feb 2020 14:26:28 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3D9A3A146; Wed, 19 Feb 2020 14:26:28 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JEQScq085719; Wed, 19 Feb 2020 14:26:28 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEQS3R085718; Wed, 19 Feb 2020 14:26:28 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191426.01JEQS3R085718@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 14:26:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358106 - stable/12/share/man/man7 X-SVN-Group: stable-12 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: stable/12/share/man/man7 X-SVN-Commit-Revision: 358106 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:26:28 -0000 Author: bapt Date: Wed Feb 19 14:26:27 2020 New Revision: 358106 URL: https://svnweb.freebsd.org/changeset/base/358106 Log: MFC r356918: The ports tree now accepts /usr/local/share/man as a directory for manpage and will slowly transition from /usr/local/man to it. To reflect this remove the documentation of the manpages being an exception in the layout of /usr/local Reported by: Dan Nelson (via IRC) Modified: stable/12/share/man/man7/hier.7 Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man7/hier.7 ============================================================================== --- stable/12/share/man/man7/hier.7 Wed Feb 19 14:26:27 2020 (r358105) +++ stable/12/share/man/man7/hier.7 Wed Feb 19 14:26:27 2020 (r358106) @@ -28,7 +28,7 @@ .\" @(#)hier.7 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd September 10, 2019 +.Dd January 20, 2020 .Dt HIER 7 .Os .Sh NAME @@ -414,12 +414,6 @@ for .Pa /usr should be used. Exceptions are the -.Pa man -directory -.Po directly under -.Pa local/ -rather than under -.Pa local/share/ Ns Pc , ports documentation .Po in .Pa share/doc// Ns Pc , From owner-svn-src-all@freebsd.org Wed Feb 19 14:27:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A4F6D23B9A5; Wed, 19 Feb 2020 14:27:22 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0RZ3ld0z491N; Wed, 19 Feb 2020 14:27:22 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 726A5A147; Wed, 19 Feb 2020 14:27:22 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JERMa6085814; Wed, 19 Feb 2020 14:27:22 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JERMv2085813; Wed, 19 Feb 2020 14:27:22 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191427.01JERMv2085813@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 14:27:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358107 - stable/11/share/man/man7 X-SVN-Group: stable-11 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: stable/11/share/man/man7 X-SVN-Commit-Revision: 358107 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:27:22 -0000 Author: bapt Date: Wed Feb 19 14:27:22 2020 New Revision: 358107 URL: https://svnweb.freebsd.org/changeset/base/358107 Log: MFC r356918: The ports tree now accepts /usr/local/share/man as a directory for manpage and will slowly transition from /usr/local/man to it. To reflect this remove the documentation of the manpages being an exception in the layout of /usr/local Reported by: Dan Nelson (via IRC) Modified: stable/11/share/man/man7/hier.7 Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man7/hier.7 ============================================================================== --- stable/11/share/man/man7/hier.7 Wed Feb 19 14:26:27 2020 (r358106) +++ stable/11/share/man/man7/hier.7 Wed Feb 19 14:27:22 2020 (r358107) @@ -28,7 +28,7 @@ .\" @(#)hier.7 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd September 10, 2019 +.Dd January 20, 2020 .Dt HIER 7 .Os .Sh NAME @@ -435,12 +435,6 @@ for .Pa /usr should be used. Exceptions are the -.Pa man -directory -.Po directly under -.Pa local/ -rather than under -.Pa local/share/ Ns Pc , ports documentation .Po in .Pa share/doc// Ns Pc , From owner-svn-src-all@freebsd.org Wed Feb 19 14:29:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C23D123BA56; Wed, 19 Feb 2020 14:29:49 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0VP1bs1z4DM9; Wed, 19 Feb 2020 14:29:49 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 18EECA148; Wed, 19 Feb 2020 14:29:49 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JETmMi085964; Wed, 19 Feb 2020 14:29:48 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JETmRe085959; Wed, 19 Feb 2020 14:29:48 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191429.01JETmRe085959@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 14:29:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358108 - stable/12/tools/tools/locale/tools X-SVN-Group: stable-12 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: stable/12/tools/tools/locale/tools X-SVN-Commit-Revision: 358108 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:29:49 -0000 Author: bapt Date: Wed Feb 19 14:29:47 2020 New Revision: 358108 URL: https://svnweb.freebsd.org/changeset/base/358108 Log: MFC r352274: Insert proper copyright/license headers Those scripts are without copyright and license assignement since their creation After grabbing information from The various authors and contributors assign proper license header and copyrights. This has been reported by yuripv in his work on integrating those in Illumos! Reported by: yuripv Discussed with: marino, edwin Modified: stable/12/tools/tools/locale/tools/charmaps.pm stable/12/tools/tools/locale/tools/cldr2def.pl stable/12/tools/tools/locale/tools/extract-colldef.awk stable/12/tools/tools/locale/tools/finalize stable/12/tools/tools/locale/tools/utf8-rollup.pl Directory Properties: stable/12/ (props changed) Modified: stable/12/tools/tools/locale/tools/charmaps.pm ============================================================================== --- stable/12/tools/tools/locale/tools/charmaps.pm Wed Feb 19 14:27:22 2020 (r358107) +++ stable/12/tools/tools/locale/tools/charmaps.pm Wed Feb 19 14:29:47 2020 (r358108) @@ -1,5 +1,29 @@ #!/usr/local/bin/perl -w +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright 2009 Edwin Groothuis +# +# 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$ # Modified: stable/12/tools/tools/locale/tools/cldr2def.pl ============================================================================== --- stable/12/tools/tools/locale/tools/cldr2def.pl Wed Feb 19 14:27:22 2020 (r358107) +++ stable/12/tools/tools/locale/tools/cldr2def.pl Wed Feb 19 14:29:47 2020 (r358108) @@ -1,4 +1,31 @@ #!/usr/local/bin/perl -wC + +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright 2009 Edwin Groothuis +# Copyright 2015 John Marino +# +# 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$ use strict; Modified: stable/12/tools/tools/locale/tools/extract-colldef.awk ============================================================================== --- stable/12/tools/tools/locale/tools/extract-colldef.awk Wed Feb 19 14:27:22 2020 (r358107) +++ stable/12/tools/tools/locale/tools/extract-colldef.awk Wed Feb 19 14:29:47 2020 (r358108) @@ -1,3 +1,29 @@ +# +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright 2016 Baptiste Daroussin +# +# 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$ BEGIN { Modified: stable/12/tools/tools/locale/tools/finalize ============================================================================== --- stable/12/tools/tools/locale/tools/finalize Wed Feb 19 14:27:22 2020 (r358107) +++ stable/12/tools/tools/locale/tools/finalize Wed Feb 19 14:29:47 2020 (r358108) @@ -1,5 +1,30 @@ #!/bin/sh # +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright 2015 John Marino +# +# 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$ # # This is a helper script for the Makefile in the parent directory. Modified: stable/12/tools/tools/locale/tools/utf8-rollup.pl ============================================================================== --- stable/12/tools/tools/locale/tools/utf8-rollup.pl Wed Feb 19 14:27:22 2020 (r358107) +++ stable/12/tools/tools/locale/tools/utf8-rollup.pl Wed Feb 19 14:29:47 2020 (r358108) @@ -1,4 +1,31 @@ #!/usr/local/bin/perl -wC + +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright 2009 Edwin Groothuis +# Copyright 2015 John Marino +# +# 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$ use strict; From owner-svn-src-all@freebsd.org Wed Feb 19 14:32:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 183EE23C015; Wed, 19 Feb 2020 14:32:57 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0Z02M8Fz4HlX; Wed, 19 Feb 2020 14:32:55 +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 CC765A307; Wed, 19 Feb 2020 14:32:55 +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 01JEWtLI091412; Wed, 19 Feb 2020 14:32:55 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEWttF091411; Wed, 19 Feb 2020 14:32:55 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002191432.01JEWttF091411@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 19 Feb 2020 14:32:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358109 - head/usr.bin/kdump X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.bin/kdump X-SVN-Commit-Revision: 358109 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:32:57 -0000 Author: kevans Date: Wed Feb 19 14:32:55 2020 New Revision: 358109 URL: https://svnweb.freebsd.org/changeset/base/358109 Log: kdump: decode SHM_ANON as first arg to legacy shm_open(2) The first argument to shm_open(2) as well as shm_open2(2) may be a path or SHM_ANON. Decode SHM_ANON, at least- paths will show up as namei results in kdump output, which may be sufficient; in those cases, we'll have printed an address. Future commits will add support for shm_open2() to libsysdecode/truss/kdump. Reported by: kaktus MFC after: 3 days Modified: head/usr.bin/kdump/kdump.c Modified: head/usr.bin/kdump/kdump.c ============================================================================== --- head/usr.bin/kdump/kdump.c Wed Feb 19 14:29:47 2020 (r358108) +++ head/usr.bin/kdump/kdump.c Wed Feb 19 14:32:55 2020 (r358109) @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1248,7 +1249,12 @@ ktrsyscall(struct ktr_syscall *ktr, u_int sv_flags) break; #ifdef SYS_freebsd12_shm_open case SYS_freebsd12_shm_open: - print_number(ip, narg, c); + if (ip[0] == (uintptr_t)SHM_ANON) { + printf("(SHM_ANON"); + ip++; + } else { + print_number(ip, narg, c); + } putchar(','); print_mask_arg(sysdecode_open_flags, ip[0]); putchar(','); From owner-svn-src-all@freebsd.org Wed Feb 19 14:37:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EE7A023C30E; Wed, 19 Feb 2020 14:37:57 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0gn56tpz4NBH; Wed, 19 Feb 2020 14:37:57 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6AD75A30D; Wed, 19 Feb 2020 14:37:57 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JEbv8A091738; Wed, 19 Feb 2020 14:37:57 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEbuDY091732; Wed, 19 Feb 2020 14:37:56 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191437.01JEbuDY091732@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 14:37:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358110 - in stable/12/usr.sbin/ntp: libntp ntpdc ntpq X-SVN-Group: stable-12 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: in stable/12/usr.sbin/ntp: libntp ntpdc ntpq X-SVN-Commit-Revision: 358110 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:37:58 -0000 Author: bapt Date: Wed Feb 19 14:37:56 2020 New Revision: 358110 URL: https://svnweb.freebsd.org/changeset/base/358110 Log: MFC r352247-r352248 r352247: Remove useless extra definition of libedit flags Note that all the line editor part is done in the libntp r352248: Get the readline header from the installed header instead of the from the source location. With newer import of libedit, the path to be able to access readline/readline.h will also include header which name will conflict with some expected by ntp in another path and end up breaking the build. Modified: stable/12/usr.sbin/ntp/libntp/Makefile stable/12/usr.sbin/ntp/ntpdc/Makefile stable/12/usr.sbin/ntp/ntpq/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/ntp/libntp/Makefile ============================================================================== --- stable/12/usr.sbin/ntp/libntp/Makefile Wed Feb 19 14:32:55 2020 (r358109) +++ stable/12/usr.sbin/ntp/libntp/Makefile Wed Feb 19 14:37:56 2020 (r358110) @@ -79,7 +79,7 @@ CFLAGS+= -I${SRCTOP}/contrib/ntp/include \ -I${SRCTOP}/contrib/ntp/lib/isc/pthreads/include \ -I${SRCTOP}/contrib/ntp/sntp/libopts \ -I${SRCTOP}/lib/libc/${MACHINE_ARCH} \ - -I${SRCTOP}/lib/libedit/edit \ + -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/edit \ -I${.CURDIR:H} \ -I${.CURDIR}/ Modified: stable/12/usr.sbin/ntp/ntpdc/Makefile ============================================================================== --- stable/12/usr.sbin/ntp/ntpdc/Makefile Wed Feb 19 14:32:55 2020 (r358109) +++ stable/12/usr.sbin/ntp/ntpdc/Makefile Wed Feb 19 14:37:56 2020 (r358110) @@ -18,8 +18,6 @@ CFLAGS+= -I${SRCTOP}/contrib/ntp/include \ -I${.CURDIR:H} -I${.CURDIR} LIBADD= edit ntp m opts pthread -CFLAGS+= -DHAVE_LIBEDIT -DHAVE_READLINE_READLINE_H \ - -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/edit .if ${MK_OPENSSL} != "no" LIBADD+= crypto Modified: stable/12/usr.sbin/ntp/ntpq/Makefile ============================================================================== --- stable/12/usr.sbin/ntp/ntpq/Makefile Wed Feb 19 14:32:55 2020 (r358109) +++ stable/12/usr.sbin/ntp/ntpq/Makefile Wed Feb 19 14:37:56 2020 (r358110) @@ -28,9 +28,6 @@ LIBADD+= crypto LIBADD+= md .endif -CFLAGS+= -DHAVE_LIBEDIT -DHAVE_READLINE_READLINE_H \ - -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/edit - CLEANFILES+= .version version.c version.c: From owner-svn-src-all@freebsd.org Wed Feb 19 14:40:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1E9D323C579; Wed, 19 Feb 2020 14:40:55 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0lB29XRz4S7H; Wed, 19 Feb 2020 14:40:54 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 45BDFA32E; Wed, 19 Feb 2020 14:40:54 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JEesGG094172; Wed, 19 Feb 2020 14:40:54 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEeshe094171; Wed, 19 Feb 2020 14:40:54 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202002191440.01JEeshe094171@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 19 Feb 2020 14:40:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358111 - head/usr.bin/whereis X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/usr.bin/whereis X-SVN-Commit-Revision: 358111 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:40:55 -0000 Author: emaste Date: Wed Feb 19 14:40:53 2020 New Revision: 358111 URL: https://svnweb.freebsd.org/changeset/base/358111 Log: whereis: remove gnu/libexec from source search paths The last subdirectory of gnu/libexec was removed in r85742. Modified: head/usr.bin/whereis/pathnames.h Modified: head/usr.bin/whereis/pathnames.h ============================================================================== --- head/usr.bin/whereis/pathnames.h Wed Feb 19 14:37:56 2020 (r358110) +++ head/usr.bin/whereis/pathnames.h Wed Feb 19 14:40:53 2020 (r358111) @@ -36,7 +36,7 @@ "/usr/src/usr.sbin:/usr/src/libexec:" \ "/usr/src/gnu/bin:/usr/src/gnu/usr.bin:" \ "/usr/src/gnu/sbin:/usr/src/gnu/usr.sbin:" \ -"/usr/src/gnu/libexec:/usr/src/contrib:" \ +"/usr/src/contrib:" \ "/usr/src/secure/bin:/usr/src/secure/usr.bin:" \ "/usr/src/secure/sbin:/usr/src/secure/usr.sbin:" \ "/usr/src/secure/libexec:/usr/src/crypto:" \ From owner-svn-src-all@freebsd.org Wed Feb 19 14:42:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 65DF323C63D; Wed, 19 Feb 2020 14:42:23 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0mv1ssTz4Vcv; Wed, 19 Feb 2020 14:42:23 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 378E5A4C1; Wed, 19 Feb 2020 14:42:23 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JEgN7f097490; Wed, 19 Feb 2020 14:42:23 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEgLM9097482; Wed, 19 Feb 2020 14:42:21 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191442.01JEgLM9097482@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 14:42:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358112 - in stable/12: contrib/gdb/gdb contrib/gdb/gdb/cli gnu/usr.bin/gdb gnu/usr.bin/gdb/kgdb X-SVN-Group: stable-12 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: in stable/12: contrib/gdb/gdb contrib/gdb/gdb/cli gnu/usr.bin/gdb gnu/usr.bin/gdb/kgdb X-SVN-Commit-Revision: 358112 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:42:23 -0000 Author: bapt Date: Wed Feb 19 14:42:21 2020 New Revision: 358112 URL: https://svnweb.freebsd.org/changeset/base/358112 Log: MFC r352242, r352249 r352242: Remove usesless readline compat includes which will reinclude readline.h itself. This simplifies the upcoming update to newer libedit. r352249: Get the readline header from the installed header instead of the from the source location. Modified: stable/12/contrib/gdb/gdb/cli/cli-cmds.c stable/12/contrib/gdb/gdb/cli/cli-setshow.c stable/12/contrib/gdb/gdb/event-top.c stable/12/contrib/gdb/gdb/top.c stable/12/contrib/gdb/gdb/tracepoint.c stable/12/gnu/usr.bin/gdb/Makefile.inc stable/12/gnu/usr.bin/gdb/kgdb/trgt.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/gdb/gdb/cli/cli-cmds.c ============================================================================== --- stable/12/contrib/gdb/gdb/cli/cli-cmds.c Wed Feb 19 14:40:53 2020 (r358111) +++ stable/12/contrib/gdb/gdb/cli/cli-cmds.c Wed Feb 19 14:42:21 2020 (r358112) @@ -21,7 +21,6 @@ #include "defs.h" #include "readline/readline.h" -#include "readline/tilde.h" #include "completer.h" #include "target.h" /* For baud_rate, remote_debug and remote_timeout */ #include "gdb_wait.h" /* For shell escape implementation */ Modified: stable/12/contrib/gdb/gdb/cli/cli-setshow.c ============================================================================== --- stable/12/contrib/gdb/gdb/cli/cli-setshow.c Wed Feb 19 14:40:53 2020 (r358111) +++ stable/12/contrib/gdb/gdb/cli/cli-setshow.c Wed Feb 19 14:42:21 2020 (r358112) @@ -18,7 +18,6 @@ Boston, MA 02111-1307, USA. */ #include "defs.h" -#include "readline/tilde.h" #include "value.h" #include #include "gdb_string.h" Modified: stable/12/contrib/gdb/gdb/event-top.c ============================================================================== --- stable/12/contrib/gdb/gdb/event-top.c Wed Feb 19 14:40:53 2020 (r358111) +++ stable/12/contrib/gdb/gdb/event-top.c Wed Feb 19 14:42:21 2020 (r358112) @@ -34,7 +34,6 @@ /* readline include files */ #include "readline/readline.h" -#include "readline/history.h" /* readline defines this. */ #undef savestring Modified: stable/12/contrib/gdb/gdb/top.c ============================================================================== --- stable/12/contrib/gdb/gdb/top.c Wed Feb 19 14:40:53 2020 (r358111) +++ stable/12/contrib/gdb/gdb/top.c Wed Feb 19 14:42:21 2020 (r358112) @@ -48,7 +48,6 @@ /* readline include files */ #include "readline/readline.h" -#include "readline/history.h" /* readline defines this. */ #undef savestring Modified: stable/12/contrib/gdb/gdb/tracepoint.c ============================================================================== --- stable/12/contrib/gdb/gdb/tracepoint.c Wed Feb 19 14:40:53 2020 (r358111) +++ stable/12/contrib/gdb/gdb/tracepoint.c Wed Feb 19 14:42:21 2020 (r358112) @@ -45,7 +45,6 @@ /* readline include files */ #include "readline/readline.h" -#include "readline/history.h" /* readline defines this. */ #undef savestring Modified: stable/12/gnu/usr.bin/gdb/Makefile.inc ============================================================================== --- stable/12/gnu/usr.bin/gdb/Makefile.inc Wed Feb 19 14:40:53 2020 (r358111) +++ stable/12/gnu/usr.bin/gdb/Makefile.inc Wed Feb 19 14:42:21 2020 (r358112) @@ -45,7 +45,7 @@ CFLAGS+= -I${CNTRB_GDB}/gdb/config CFLAGS+= -I${CNTRB_BU}/include CFLAGS+= -I${CNTRB_GDB}/include CFLAGS+= -I${CNTRB_BU}/bfd -CFLAGS+= -I${SRCTOP}/lib/libedit/edit +CFLAGS+= -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/edit GENSRCS+= nm.h tm.h Modified: stable/12/gnu/usr.bin/gdb/kgdb/trgt.c ============================================================================== --- stable/12/gnu/usr.bin/gdb/kgdb/trgt.c Wed Feb 19 14:40:53 2020 (r358111) +++ stable/12/gnu/usr.bin/gdb/kgdb/trgt.c Wed Feb 19 14:42:21 2020 (r358112) @@ -37,7 +37,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include #include From owner-svn-src-all@freebsd.org Wed Feb 19 14:49:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6E4AD23C955; Wed, 19 Feb 2020 14:49:34 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0xB1qwpz3FqD; Wed, 19 Feb 2020 14:49:34 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 35BC9A4D1; Wed, 19 Feb 2020 14:49:34 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JEnYMl097941; Wed, 19 Feb 2020 14:49:34 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEnXOa097936; Wed, 19 Feb 2020 14:49:33 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191449.01JEnXOa097936@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 14:49:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358113 - in stable/12: contrib/libedit lib/libedit lib/libedit/TEST lib/libedit/edit lib/libedit/readline X-SVN-Group: stable-12 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: in stable/12: contrib/libedit lib/libedit lib/libedit/TEST lib/libedit/edit lib/libedit/readline X-SVN-Commit-Revision: 358113 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:49:34 -0000 Author: bapt Date: Wed Feb 19 14:49:32 2020 New Revision: 358113 URL: https://svnweb.freebsd.org/changeset/base/358113 Log: MFC r352136, r352204, r352275, r352341 r352136: Import libedit 2019-09-10 Compared to current version in base: - great improvements on the Unicode support - full support for filename completion including quoting which means we do not need anymore our custom addition) - Improved readline compatiblity Upgrading libedit has been a pain in the past, because somehow we never managed to properly cleanup the tree in lib/libedit and each merge has always been very painful. After years of fighting give up and refresh a merge from scrarch properly in contrib. Note that the switch to this version will be done in another commit. r352204: Readd _el_fn_sh_complete for backward compatibility This function is not needed anymore, it allows old sh binary to continue to run and avoid breaking backward compatibility. Note that is now just calls the regular _el_fn_complete which does a proper job at quoting. Discussed with: jilles r352275: Update libedit to a snapshot from 2019-09-10 This version bring many fixes regarding unicode support It also adds proper support for filename completion (we do not need our custom patches anymore) Improves the libreadline compatibility Note that the same work was done by Yuichiro Naito in https://reviews.freebsd.org/D21196 the main difference is in this case we have reimported libedit in contrib to fix a long standing mess in the previous merges which prevented a proper update workflow. (discussed long ago with pfg@) The only difference with upstream libedit is we have added a compatibility shim for the _elf_fn_sh_complete function which we previously added to support quoting in filename completion and is not needed anymore. This was added to continue supported old /bin/sh binaries and not break backward compatibility (as discussed with jilles@) Reviewed by: Yuichiro Naito Differential Revision: https://reviews.freebsd.org/D21584 r352341: Fix arm and aarch64 builds of libedit after r352275 On arm and arm64, where chars are unsigned by default, buildworld dies with: --- terminal.o --- /usr/src/contrib/libedit/terminal.c:569:41: error: comparison of integers of different signs: 'wint_t' (aka 'int') and 'wchar_t' (aka 'unsigned int') [-Werror,-Wsign-compare] el->el_cursor.v][where & 0370] != ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ /usr/src/contrib/libedit/terminal.c:659:28: error: comparison of integers of different signs: 'wint_t' (aka 'int') and 'wchar_t' (aka 'unsigned int') [-Werror,-Wsign-compare] [el->el_cursor.h] == MB_FILL_CHAR) ~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~ Fix this by making MB_FILL_CHAR a wint_t, so no casting is needed. Note that in https://reviews.freebsd.org/D21584 this was also proposed by Yuichiro Naito . Reviewed by: bapt Subscribers: naito.yuichiro_gmail.com, ml_vishwin.info X-MFC-With: r352275 Differential Revision: https://reviews.freebsd.org/D21657 Added: stable/12/contrib/libedit/ - copied from r352136, head/contrib/libedit/ stable/12/lib/libedit/readline/ - copied from r352275, head/lib/libedit/readline/ Deleted: stable/12/lib/libedit/Makefile.depend stable/12/lib/libedit/TEST/ stable/12/lib/libedit/chared.c stable/12/lib/libedit/chared.h stable/12/lib/libedit/chartype.c stable/12/lib/libedit/chartype.h stable/12/lib/libedit/common.c stable/12/lib/libedit/config.h stable/12/lib/libedit/edit/ stable/12/lib/libedit/editline.3 stable/12/lib/libedit/editrc.5 stable/12/lib/libedit/el.c stable/12/lib/libedit/el.h stable/12/lib/libedit/eln.c stable/12/lib/libedit/emacs.c stable/12/lib/libedit/filecomplete.c stable/12/lib/libedit/filecomplete.h stable/12/lib/libedit/hist.c stable/12/lib/libedit/hist.h stable/12/lib/libedit/histedit.h stable/12/lib/libedit/history.c stable/12/lib/libedit/keymacro.c stable/12/lib/libedit/keymacro.h stable/12/lib/libedit/makelist stable/12/lib/libedit/map.c stable/12/lib/libedit/map.h stable/12/lib/libedit/parse.c stable/12/lib/libedit/parse.h stable/12/lib/libedit/prompt.c stable/12/lib/libedit/prompt.h stable/12/lib/libedit/read.c stable/12/lib/libedit/read.h stable/12/lib/libedit/readline.c stable/12/lib/libedit/refresh.c stable/12/lib/libedit/refresh.h stable/12/lib/libedit/search.c stable/12/lib/libedit/search.h stable/12/lib/libedit/sig.c stable/12/lib/libedit/sig.h stable/12/lib/libedit/sys.h stable/12/lib/libedit/terminal.c stable/12/lib/libedit/terminal.h stable/12/lib/libedit/tokenizer.c stable/12/lib/libedit/tty.c stable/12/lib/libedit/tty.h stable/12/lib/libedit/vi.c Modified: stable/12/contrib/libedit/chartype.h stable/12/contrib/libedit/filecomplete.c stable/12/contrib/libedit/histedit.h stable/12/contrib/libedit/terminal.c stable/12/lib/libedit/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/libedit/chartype.h ============================================================================== --- head/contrib/libedit/chartype.h Tue Sep 10 14:30:10 2019 (r352136) +++ stable/12/contrib/libedit/chartype.h Wed Feb 19 14:49:32 2020 (r358113) @@ -87,7 +87,7 @@ libedit_private size_t ct_enc_width(wchar_t); /* The terminal is thought of in terms of X columns by Y lines. In the cases * where a wide character takes up more than one column, the adjacent * occupied column entries will contain this faux character. */ -#define MB_FILL_CHAR ((wchar_t)-1) +#define MB_FILL_CHAR ((wint_t)-1) /* Visual width of character c, taking into account ^? , \0177 and \U+nnnnn * style visual expansions. */ Modified: stable/12/contrib/libedit/filecomplete.c ============================================================================== --- head/contrib/libedit/filecomplete.c Tue Sep 10 14:30:10 2019 (r352136) +++ stable/12/contrib/libedit/filecomplete.c Wed Feb 19 14:49:32 2020 (r358113) @@ -823,3 +823,13 @@ _el_fn_complete(EditLine *el, int ch __attribute__((__ break_chars, NULL, NULL, (size_t)100, NULL, NULL, NULL, NULL); } + +/* + * el-compatible wrapper around rl_complete; needed for key binding + */ +/* ARGSUSED */ +unsigned char +_el_fn_sh_complete(EditLine *el, int ch) +{ + return _el_fn_complete(el, ch); +} Modified: stable/12/contrib/libedit/histedit.h ============================================================================== --- head/contrib/libedit/histedit.h Tue Sep 10 14:30:10 2019 (r352136) +++ stable/12/contrib/libedit/histedit.h Wed Feb 19 14:49:32 2020 (r358113) @@ -113,6 +113,7 @@ int el_parse(EditLine *, int, const char **); int el_set(EditLine *, int, ...); int el_get(EditLine *, int, ...); unsigned char _el_fn_complete(EditLine *, int); +unsigned char _el_fn_sh_complete(EditLine *, int); /* * el_set/el_get parameters Modified: stable/12/contrib/libedit/terminal.c ============================================================================== --- head/contrib/libedit/terminal.c Tue Sep 10 14:30:10 2019 (r352136) +++ stable/12/contrib/libedit/terminal.c Wed Feb 19 14:49:32 2020 (r358113) @@ -1224,7 +1224,7 @@ terminal__putc(EditLine *el, wint_t c) { char buf[MB_LEN_MAX +1]; ssize_t i; - if (c == (wint_t)MB_FILL_CHAR) + if (c == MB_FILL_CHAR) return 0; if (c & EL_LITERAL) return fputs(literal_get(el, c), el->el_outfile); Modified: stable/12/lib/libedit/Makefile ============================================================================== --- stable/12/lib/libedit/Makefile Wed Feb 19 14:42:21 2020 (r358112) +++ stable/12/lib/libedit/Makefile Wed Feb 19 14:49:32 2020 (r358113) @@ -4,6 +4,9 @@ PACKAGE=clibs +EDITDIR= ${SRCTOP}/contrib/libedit +.PATH: ${EDITDIR} + SHLIB_MAJOR= 7 SHLIBDIR?= /lib @@ -12,75 +15,83 @@ LIB= edit LIBADD= ncursesw -OSRCS= chared.c common.c el.c eln.c emacs.c fcns.c filecomplete.c help.c \ - hist.c keymacro.c map.c chartype.c \ - parse.c prompt.c read.c refresh.c search.c sig.c terminal.c tty.c vi.c +SRCS= chared.c chartype.c common.c el.c eln.c emacs.c filecomplete.c \ + hist.c history.c historyn.c keymacro.c literal.c map.c \ + parse.c prompt.c read.c readline.c refresh.c search.c sig.c \ + terminal.c tokenizer.c tokenizern.c tty.c vi.c -MAN= editline.3 editrc.5 -MLINKS= editline.3 el_deletestr.3 editline.3 el_end.3 editline.3 el_init.3 \ - editline.3 el_get.3 editline.3 el_getc.3 editline.3 el_gets.3 \ - editline.3 history.3 editline.3 history_end.3 \ - editline.3 history_init.3 editline.3 el_insertstr.3 \ - editline.3 el_line.3 editline.3 el_parse.3 editline.3 el_push.3 \ - editline.3 el_reset.3 editline.3 el_resize.3 editline.3 el_set.3 \ +MAN= editline.3 editrc.5 editline.7 + +MLINKS= \ + editline.3 el_deletestr.3 \ + editline.3 el_end.3 \ + editline.3 el_get.3 \ + editline.3 el_getc.3 \ + editline.3 el_gets.3 \ + editline.3 el_init.3 \ + editline.3 el_init_fd.3 \ + editline.3 el_insertstr.3 \ + editline.3 el_line.3 \ + editline.3 el_parse.3 \ + editline.3 el_push.3 \ + editline.3 el_reset.3 \ + editline.3 el_resize.3 \ + editline.3 el_set.3 \ editline.3 el_source.3 \ - editline.3 tok_init.3 editline.3 tok_end.3 editline.3 tok_reset.3 \ - editline.3 tok_line.3 editline.3 tok_str.3 + editline.3 history.3 \ + editline.3 history_end.3 \ + editline.3 history_init.3 \ + editline.3 tok_end.3 \ + editline.3 tok_init.3 \ + editline.3 tok_line.3 \ + editline.3 tok_reset.3 \ + editline.3 tok_str.3 \ + editline.3 el_wdeletestr.3 \ + editline.3 el_wget.3 \ + editline.3 el_wgetc.3 \ + editline.3 el_wgets.3 \ + editline.3 el_winsertstr.3 \ + editline.3 el_wline.3 \ + editline.3 el_wparse.3 \ + editline.3 el_wpush.3 \ + editline.3 el_wset.3 \ + editline.3 history_w.3 \ + editline.3 history_wend.3 \ + editline.3 history_winit.3 \ + editline.3 tok_wend.3 \ + editline.3 tok_winit.3 \ + editline.3 tok_wline.3 \ + editline.3 tok_wreset.3 \ + editline.3 tok_wstr.3 -# For speed and debugging -#SRCS= ${OSRCS} readline.c tokenizer.c history.c -# For protection -SRCS= editline.c readline.c tokenizer.c history.c -SRCS+= common.h emacs.h fcns.h help.h vi.h - -# Widechar -SRCS+= tokenizern.c historyn.c -CLEANFILES+= tokenizern.c historyn.c - INCS= histedit.h -CLEANFILES+= common.h editline.c emacs.h fcns.c fcns.h help.c help.h vi.h -CFLAGS+= -I. -I${.CURDIR} -I${.CURDIR}/edit -DWIDECHAR -#CFLAGS+= -DDEBUG_TTY -DDEBUG_KEY -DDEBUG_READ -DDEBUG -DDEBUG_REFRESH -#CFLAGS+= -DDEBUG_PASTE -DDEBUG_EDIT +SRCS+= common.h emacs.h fcns.h func.h help.h vi.h +CLEANFILES+= common.h emacs.h fcns.h func.h help.h vi.h +CFLAGS+= -I. -I${EDITDIR} -I${EDITDIR}/readline + AHDR= vi.h emacs.h common.h -ASRC= ${.CURDIR}/vi.c ${.CURDIR}/emacs.c ${.CURDIR}/common.c +ASRC= ${EDITDIR}/vi.c ${EDITDIR}/emacs.c ${EDITDIR}/common.c -SUBDIR= edit/readline +SUBDIR= readline .for hdr in vi emacs common ${hdr}.h: ${hdr}.c makelist - sh ${.CURDIR}/makelist -h ${.CURDIR}/${hdr}.c > ${.TARGET} + sh ${EDITDIR}/makelist -h ${EDITDIR}/${hdr}.c > ${.TARGET} .endfor fcns.h: ${AHDR} makelist - sh ${.CURDIR}/makelist -fh ${AHDR} > ${.TARGET} + sh ${EDITDIR}/makelist -fh ${AHDR} > ${.TARGET} -fcns.c: ${AHDR} fcns.h makelist - sh ${.CURDIR}/makelist -fc ${AHDR} > ${.TARGET} +func.h: ${AHDR} makelist + sh ${EDITDIR}/makelist -fc ${AHDR} > ${.TARGET} -help.c: ${ASRC} makelist - sh ${.CURDIR}/makelist -bc ${ASRC} > ${.TARGET} - help.h: ${ASRC} makelist - sh ${.CURDIR}/makelist -bh ${ASRC} > ${.TARGET} + sh ${EDITDIR}/makelist -bh ${ASRC} > ${.TARGET} -editline.c: ${OSRCS} - sh ${.CURDIR}/makelist -e ${.ALLSRC:T} > ${.TARGET} - -tokenizern.c: makelist Makefile - sh ${.CURDIR}/makelist -n tokenizer.c > ${.TARGET} - -historyn.c: makelist Makefile - sh ${.CURDIR}/makelist -n history.c > ${.TARGET} - -# minimal dependency to make "make depend" optional -editline.o editline.po editline.pico editline.ln: \ - common.h emacs.h fcns.c fcns.h help.c help.h vi.h - -tc1.o: ${.CURDIR}/TEST/tc1.c +tc1.o: ${EDITDIR}/TEST/tc1.c test: tc1.o libedit.a ${DPADD} ${LIBTERMCAP} ${CC} ${CFLAGS} ${.ALLSRC} -o ${.TARGET} libedit.a ${LDADD} From owner-svn-src-all@freebsd.org Wed Feb 19 14:51:40 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EBD2423C9F9; Wed, 19 Feb 2020 14:51:40 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N0zc21gRz3Jg8; Wed, 19 Feb 2020 14:51:40 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3C345A65D; Wed, 19 Feb 2020 14:51:40 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JEpe2G002072; Wed, 19 Feb 2020 14:51:40 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEpeuW002071; Wed, 19 Feb 2020 14:51:40 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191451.01JEpeuW002071@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 14:51:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358114 - stable/12/bin/sh X-SVN-Group: stable-12 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: stable/12/bin/sh X-SVN-Commit-Revision: 358114 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:51:41 -0000 Author: bapt Date: Wed Feb 19 14:51:39 2020 New Revision: 358114 URL: https://svnweb.freebsd.org/changeset/base/358114 Log: MFC r352385: Do not use our custom completion function, it is not needed anymore Modified: stable/12/bin/sh/histedit.c Directory Properties: stable/12/ (props changed) Modified: stable/12/bin/sh/histedit.c ============================================================================== --- stable/12/bin/sh/histedit.c Wed Feb 19 14:49:32 2020 (r358113) +++ stable/12/bin/sh/histedit.c Wed Feb 19 14:51:39 2020 (r358114) @@ -124,7 +124,7 @@ histedit(void) el_set(el, EL_PROMPT, getprompt); el_set(el, EL_ADDFN, "sh-complete", "Filename completion", - _el_fn_sh_complete); + _el_fn_complete); } else { bad: out2fmt_flush("sh: can't initialize editing\n"); From owner-svn-src-all@freebsd.org Wed Feb 19 14:52:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 59B4023CC13; Wed, 19 Feb 2020 14:52:34 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N10d5cmgz3KvB; Wed, 19 Feb 2020 14:52:33 +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 88A87A6A9; Wed, 19 Feb 2020 14:52:33 +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 01JEqXZX004066; Wed, 19 Feb 2020 14:52:33 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEqXeM004064; Wed, 19 Feb 2020 14:52:33 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002191452.01JEqXeM004064@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 19 Feb 2020 14:52:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358115 - head/lib/libsysdecode X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/lib/libsysdecode X-SVN-Commit-Revision: 358115 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:52:34 -0000 Author: kevans Date: Wed Feb 19 14:52:32 2020 New Revision: 358115 URL: https://svnweb.freebsd.org/changeset/base/358115 Log: libsysdecode: grab shmflags from sys/mman.h, add decode method Any SHM_* flag here is (and likely will continue to be) a shmflag that may be passed to shm_open2(), with exception to SHM_ANON. This is a prereq to adding appropriate support to truss/kdump. Reviewed by: kaktus (slightly earlier version) Differential Revision: https://reviews.freebsd.org/D23733 Modified: head/lib/libsysdecode/flags.c head/lib/libsysdecode/mktables head/lib/libsysdecode/sysdecode.h Modified: head/lib/libsysdecode/flags.c ============================================================================== --- head/lib/libsysdecode/flags.c Wed Feb 19 14:51:39 2020 (r358114) +++ head/lib/libsysdecode/flags.c Wed Feb 19 14:52:32 2020 (r358115) @@ -1277,3 +1277,10 @@ sysdecode_sctp_sinfo_flags(FILE *fp, int sinfo_flags) } } } + +bool +sysdecode_shmflags(FILE *fp, int flags, int *rem) +{ + + return (print_mask_0(fp, shmflags, flags, rem)); +} Modified: head/lib/libsysdecode/mktables ============================================================================== --- head/lib/libsysdecode/mktables Wed Feb 19 14:51:39 2020 (r358114) +++ head/lib/libsysdecode/mktables Wed Feb 19 14:52:32 2020 (r358115) @@ -165,6 +165,7 @@ if [ -e "${include_dir}/x86/sysarch.h" ]; then else gen_table "sysarchnum" "[A-Z_]+[[:space:]]+[0-9]+" "machine/sysarch.h" fi +gen_table "shmflags" "SHM_[A-Z_]+[[:space:]]+0x[0-9]+" "sys/mman.h" "SHM_ANON" # Generate a .depend file for our output file if [ -n "$output_file" ]; then Modified: head/lib/libsysdecode/sysdecode.h ============================================================================== --- head/lib/libsysdecode/sysdecode.h Wed Feb 19 14:51:39 2020 (r358114) +++ head/lib/libsysdecode/sysdecode.h Wed Feb 19 14:52:32 2020 (r358115) @@ -128,5 +128,6 @@ const char *sysdecode_vmresult(int _result); bool sysdecode_wait4_options(FILE *_fp, int _options, int *_rem); bool sysdecode_wait6_options(FILE *_fp, int _options, int *_rem); const char *sysdecode_whence(int _whence); +bool sysdecode_shmflags(FILE *_fp, int _flags, int *_rem); #endif /* !__SYSDECODE_H__ */ From owner-svn-src-all@freebsd.org Wed Feb 19 14:54:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8EE1423CCB6; Wed, 19 Feb 2020 14:54:34 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N12y2XkJz3Nsx; Wed, 19 Feb 2020 14:54:34 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 39D13A6AE; Wed, 19 Feb 2020 14:54:34 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JEsYkO004208; Wed, 19 Feb 2020 14:54:34 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEsXgA004207; Wed, 19 Feb 2020 14:54:33 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002191454.01JEsXgA004207@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 19 Feb 2020 14:54:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358116 - head/usr.bin/truss X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.bin/truss X-SVN-Commit-Revision: 358116 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:54:34 -0000 Author: kevans Date: Wed Feb 19 14:54:33 2020 New Revision: 358116 URL: https://svnweb.freebsd.org/changeset/base/358116 Log: truss: decode shm_open2 shm_open2 is similar to shm_open, except it also takes shmflags and optional name to label the anonymous region for, e.g., debugging purposes. The appropriate support for decoding shmflags was added to libsysdecode in r358115. This is a part of D23733. Reviewed by: kaktus Modified: head/usr.bin/truss/syscall.h head/usr.bin/truss/syscalls.c Modified: head/usr.bin/truss/syscall.h ============================================================================== --- head/usr.bin/truss/syscall.h Wed Feb 19 14:52:32 2020 (r358115) +++ head/usr.bin/truss/syscall.h Wed Feb 19 14:54:33 2020 (r358116) @@ -122,6 +122,7 @@ enum Argtype { Rtpriofunc, RusageWho, Schedpolicy, + ShmFlags, Shutdown, Signal, Sigprocmask, Modified: head/usr.bin/truss/syscalls.c ============================================================================== --- head/usr.bin/truss/syscalls.c Wed Feb 19 14:52:32 2020 (r358115) +++ head/usr.bin/truss/syscalls.c Wed Feb 19 14:54:33 2020 (r358116) @@ -471,6 +471,9 @@ static struct syscall decoded_syscalls[] = { { Ptr | IN, 3 }, { Socklent, 4 } } }, { .name = "shm_open", .ret_type = 1, .nargs = 3, .args = { { ShmName | IN, 0 }, { Open, 1 }, { Octal, 2 } } }, + { .name = "shm_open2", .ret_type = 1, .nargs = 5, + .args = { { ShmName | IN, 0 }, { Open, 1 }, { Octal, 2 }, + { ShmFlags, 3 }, { BinString | IN, 4 } } }, { .name = "shm_rename", .ret_type = 1, .nargs = 3, .args = { { Name | IN, 0 }, { Name | IN, 1 }, { Hex, 2 } } }, { .name = "shm_unlink", .ret_type = 1, .nargs = 1, @@ -2008,6 +2011,9 @@ print_arg(struct syscall_args *sc, unsigned long *args break; case Whence: print_integer_arg(sysdecode_whence, fp, args[sc->offset]); + break; + case ShmFlags: + print_mask_arg(sysdecode_shmflags, fp, args[sc->offset]); break; case Sockdomain: print_integer_arg(sysdecode_socketdomain, fp, args[sc->offset]); From owner-svn-src-all@freebsd.org Wed Feb 19 14:56:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4068B23CD4D; Wed, 19 Feb 2020 14:56:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N14c00n2z3R1F; Wed, 19 Feb 2020 14:55:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E2AA2A6B1; Wed, 19 Feb 2020 14:55:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JEtxlR004378; Wed, 19 Feb 2020 14:55:59 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JEtx5Z004377; Wed, 19 Feb 2020 14:55:59 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002191455.01JEtx5Z004377@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 19 Feb 2020 14:55:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358117 - head/usr.bin/kdump X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.bin/kdump X-SVN-Commit-Revision: 358117 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 14:56:00 -0000 Author: kevans Date: Wed Feb 19 14:55:59 2020 New Revision: 358117 URL: https://svnweb.freebsd.org/changeset/base/358117 Log: kdump: decode shm_open2 This is the kdump counterpart of the truss support added in r358116, and also a part of D23733. shm_open2 is the successor to shm_open. Reviewed by: kaktus Modified: head/usr.bin/kdump/kdump.c Modified: head/usr.bin/kdump/kdump.c ============================================================================== --- head/usr.bin/kdump/kdump.c Wed Feb 19 14:54:33 2020 (r358116) +++ head/usr.bin/kdump/kdump.c Wed Feb 19 14:55:59 2020 (r358117) @@ -1263,6 +1263,22 @@ ktrsyscall(struct ktr_syscall *ktr, u_int sv_flags) narg -= 2; break; #endif + case SYS_shm_open2: + if (ip[0] == (uintptr_t)SHM_ANON) { + printf("(SHM_ANON"); + ip++; + } else { + print_number(ip, narg, c); + } + putchar(','); + print_mask_arg(sysdecode_open_flags, ip[0]); + putchar(','); + decode_filemode(ip[1]); + putchar(','); + print_mask_arg(sysdecode_shmflags, ip[2]); + ip += 3; + narg -= 3; + break; case SYS_minherit: print_number(ip, narg, c); print_number(ip, narg, c); From owner-svn-src-all@freebsd.org Wed Feb 19 15:12:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 916FA23D303; Wed, 19 Feb 2020 15:12:01 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N1R53QNDz4Jd3; Wed, 19 Feb 2020 15:12:01 +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 709E9AA17; Wed, 19 Feb 2020 15:12:01 +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 01JFC1Cj014282; Wed, 19 Feb 2020 15:12:01 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JFC1RE014281; Wed, 19 Feb 2020 15:12:01 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002191512.01JFC1RE014281@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 19 Feb 2020 15:12:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358118 - head/usr.bin/truss X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/usr.bin/truss X-SVN-Commit-Revision: 358118 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 15:12:01 -0000 Author: kevans Date: Wed Feb 19 15:12:01 2020 New Revision: 358118 URL: https://svnweb.freebsd.org/changeset/base/358118 Log: truss: fix shm_open2 oversight (BinString -> Name) BinString assumes a length in the next argument; Name is more appropriate for the final argument. Modified: head/usr.bin/truss/syscalls.c Modified: head/usr.bin/truss/syscalls.c ============================================================================== --- head/usr.bin/truss/syscalls.c Wed Feb 19 14:55:59 2020 (r358117) +++ head/usr.bin/truss/syscalls.c Wed Feb 19 15:12:01 2020 (r358118) @@ -473,7 +473,7 @@ static struct syscall decoded_syscalls[] = { .args = { { ShmName | IN, 0 }, { Open, 1 }, { Octal, 2 } } }, { .name = "shm_open2", .ret_type = 1, .nargs = 5, .args = { { ShmName | IN, 0 }, { Open, 1 }, { Octal, 2 }, - { ShmFlags, 3 }, { BinString | IN, 4 } } }, + { ShmFlags, 3 }, { Name | IN, 4 } } }, { .name = "shm_rename", .ret_type = 1, .nargs = 3, .args = { { Name | IN, 0 }, { Name | IN, 1 }, { Hex, 2 } } }, { .name = "shm_unlink", .ret_type = 1, .nargs = 1, From owner-svn-src-all@freebsd.org Wed Feb 19 15:18:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5CF3A23D4F5; Wed, 19 Feb 2020 15:18:35 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48N1Zf2mG4z4VJ7; Wed, 19 Feb 2020 15:18:34 +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 01JFIP4Q060000 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Wed, 19 Feb 2020 17:18:29 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 01JFIP4Q060000 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id 01JFIPte059999; Wed, 19 Feb 2020 17:18:25 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 19 Feb 2020 17:18:25 +0200 From: Konstantin Belousov To: Baptiste Daroussin Cc: Yuri Pankov , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r358062 - in head: contrib/ncurses contrib/ncurses/doc contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/mis... Message-ID: <20200219151825.GN29554@kib.kiev.ua> References: <202002180811.01I8BqEq001150@repo.freebsd.org> <20200219094127.6r3udslzbftcvnhr@ivaldir.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200219094127.6r3udslzbftcvnhr@ivaldir.net> X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on tom.home X-Rspamd-Queue-Id: 48N1Zf2mG4z4VJ7 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=gmail.com (policy=none); spf=softfail (mx1.freebsd.org: 2001:470:d5e7:1::1 is neither permitted nor denied by domain of kostikbel@gmail.com) smtp.mailfrom=kostikbel@gmail.com X-Spamd-Result: default: False [-2.00 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; R_SPF_SOFTFAIL(0.00)[~all]; RCPT_COUNT_FIVE(0.00)[5]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; IP_SCORE(0.00)[ip: (-3.19), ipnet: 2001:470::/32(-4.65), asn: 6939(-3.58), country: US(-0.05)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; FREEMAIL_ENVFROM(0.00)[gmail.com]; DMARC_POLICY_SOFTFAIL(0.10)[gmail.com : No valid SPF, No valid DKIM,none] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 15:18:35 -0000 On Wed, Feb 19, 2020 at 10:41:27AM +0100, Baptiste Daroussin wrote: > On Wed, Feb 19, 2020 at 11:02:11AM +0300, Yuri Pankov wrote: > > On 18 Feb 2020, at 11:11, Baptiste Daroussin wrote: > > > > > > Author: bapt > > > Date: Tue Feb 18 08:11:52 2020 > > > New Revision: 358062 > > > URL: https://svnweb.freebsd.org/changeset/base/358062 > > > > > > Log: > > > Update ncurses to 20200118 > > > > > > Among the changes from before: > > > - Add support for extended colors on widechar version > > > - Enable ncurses extended functions > > > - Enable version 2 of the extended mouse support > > > - Enable SCREEN extensions > > > > > > Modification that differs from upstream: > > > - _nc_delink_entries used to be exposed and was turn static, > > > turn it back as dynamic to not break abi > > > - Adapt our old termcap.c to modern ncurses > > > > > > MFC after: 3 weeks > > > > Somewhat confusingly, I had to rebuild e.g. dialog4ports after this change as it was displaying garbage. May be a brief headsup is in order (or am I the only one seeing it)? > > I will add a not in UPDATING Does this mean that the ABI of the libraries changed ? If yes, that means that the dso version bump is needed (curses seems to be not versioned). From owner-svn-src-all@freebsd.org Wed Feb 19 15:30:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C52BE23D839; Wed, 19 Feb 2020 15:30:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N1r64LtMz3N6q; Wed, 19 Feb 2020 15:30:14 +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 8ABB9AC11; Wed, 19 Feb 2020 15:30:14 +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 01JFUEDc022633; Wed, 19 Feb 2020 15:30:14 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JFUEsr022632; Wed, 19 Feb 2020 15:30:14 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <202002191530.01JFUEsr022632@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Wed, 19 Feb 2020 15:30:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r358119 - stable/10/release/doc/en_US.ISO8859-1/hardware X-SVN-Group: stable-10 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: stable/10/release/doc/en_US.ISO8859-1/hardware X-SVN-Commit-Revision: 358119 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 15:30:14 -0000 Author: gjb Date: Wed Feb 19 15:30:13 2020 New Revision: 358119 URL: https://svnweb.freebsd.org/changeset/base/358119 Log: Remove reference to the freebsd-mobile mailing list to fix the build. This is a direct commit to stable/10 as part of an ongoing investigation regarding transient and silent build failures. Sponsored by: Rubicon Communications, LLC (netgate.com) Modified: stable/10/release/doc/en_US.ISO8859-1/hardware/article.xml Modified: stable/10/release/doc/en_US.ISO8859-1/hardware/article.xml ============================================================================== --- stable/10/release/doc/en_US.ISO8859-1/hardware/article.xml Wed Feb 19 15:12:01 2020 (r358118) +++ stable/10/release/doc/en_US.ISO8859-1/hardware/article.xml Wed Feb 19 15:30:13 2020 (r358119) @@ -205,9 +205,7 @@ as sound, graphics, power management, and PCCARD expansion slots. These features tend to vary in idiosyncratic ways between machines, and frequently require special-case support - in &os; to work around hardware bugs or other oddities. When - in doubt, a search of the archives of the &a.mobile; may be - useful. + in &os; to work around hardware bugs or other oddities. Most modern laptops (as well as many desktops) use the Advanced Configuration and Power Management (ACPI) standard. From owner-svn-src-all@freebsd.org Wed Feb 19 15:37:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E74B023DBB0; Wed, 19 Feb 2020 15:37:31 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N20W5Ktfz4608; Wed, 19 Feb 2020 15:37:31 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from ivaldir.etoilebsd.net (etoilebsd.net [178.32.217.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: bapt) by smtp.freebsd.org (Postfix) with ESMTPSA id 86B414852; Wed, 19 Feb 2020 15:37:31 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: by ivaldir.etoilebsd.net (Postfix, from userid 1001) id 90CC9E6FCE; Wed, 19 Feb 2020 16:37:29 +0100 (CET) Date: Wed, 19 Feb 2020 16:37:29 +0100 From: Baptiste Daroussin To: Konstantin Belousov Cc: svn-src-head@freebsd.org, Yuri Pankov , src-committers@freebsd.org, svn-src-all@freebsd.org Subject: Re: svn commit: r358062 - in head: contrib/ncurses contrib/ncurses/doc contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/mis... Message-ID: <20200219153729.32dqgpuzlbleg2hl@ivaldir.net> References: <202002180811.01I8BqEq001150@repo.freebsd.org> <20200219094127.6r3udslzbftcvnhr@ivaldir.net> <20200219151825.GN29554@kib.kiev.ua> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="a4uth2reqcf6zbuv" Content-Disposition: inline In-Reply-To: <20200219151825.GN29554@kib.kiev.ua> X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 15:37:32 -0000 --a4uth2reqcf6zbuv Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Feb 19, 2020 at 05:18:25PM +0200, Konstantin Belousov wrote: > On Wed, Feb 19, 2020 at 10:41:27AM +0100, Baptiste Daroussin wrote: > > On Wed, Feb 19, 2020 at 11:02:11AM +0300, Yuri Pankov wrote: > > > On 18 Feb 2020, at 11:11, Baptiste Daroussin wrote: > > > >=20 > > > > Author: bapt > > > > Date: Tue Feb 18 08:11:52 2020 > > > > New Revision: 358062 > > > > URL: https://svnweb.freebsd.org/changeset/base/358062 > > > >=20 > > > > Log: > > > > Update ncurses to 20200118 > > > >=20 > > > > Among the changes from before: > > > > - Add support for extended colors on widechar version > > > > - Enable ncurses extended functions > > > > - Enable version 2 of the extended mouse support > > > > - Enable SCREEN extensions > > > >=20 > > > > Modification that differs from upstream: > > > > - _nc_delink_entries used to be exposed and was turn static, > > > > turn it back as dynamic to not break abi > > > > - Adapt our old termcap.c to modern ncurses > > > >=20 > > > > MFC after: 3 weeks > > >=20 > > > Somewhat confusingly, I had to rebuild e.g. dialog4ports after this c= hange as it was displaying garbage. May be a brief headsup is in order (or= am I the only one seeing it)? > >=20 > > I will add a not in UPDATING >=20 > Does this mean that the ABI of the libraries changed ? > If yes, that means that the dso version bump is needed (curses seems to be > not versioned). That is what I do not understand yet, according to abi lab, no it hasn't changed. but the reality if that some unicode caracters are not properly rendered when using that new library without having been rebuilt with it. Best regards, Bapt --a4uth2reqcf6zbuv Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAl5NVjcACgkQY4mL3PG3 PlryjA/6AipStkMOkwdTZO+CUXq4+SAgS2zft86ue/SRn1boMSZ7q35qQnd89c1z iGSKbVLLM7MrdsMuEeG1fGb6Jxw+Dy3B795E4cn/Kj2K/ouZCh89/Ebrg626f9AL iWuO+FcD6tKE7NNCrXwc9M5kioC4XWzoNmAJKbhuoWnPGTTNLDC9g1l34IRbOrYK xu0HWtwJTGLDjblmZ+pTuS/cOAVvBHP1cOH8RckyFRnhO7ioWEem69yQPqKqharP wDFsoCn8r5LzLU6ehMwY91vTQq/ehbfS4W05Xm8PgYyQ1TAwCvCfKbqgtti35aXi HkcJw+1/41cWt7DqSUwDIOgAupyIFLZ1ikRh9D+guOxMuv4hO8eE3IdYzmsWUPti Kl378NMuT1Pm2mfikPUyEf7g+JhYCAyUdO5IKfOGyzx7LHNlpbhjaO3jbuMZ7Tsv q6kZN2qg1gLjvaBitXA69YFE+MMXsHGJD9BGkoTKKdJbFJecuRjJIXtQwBnshbn5 j0UenK6K+EZNCw5MXYfK5beZPMyYqhWXEKFOp8BR0R5LsIBicWmNFeN96bvTxJ/O Q2nTmyITBgQehT7G6DPhFQ4+A/KxpVeF0weyDEkEl7PpK2hiSio8slnrLCWFIulQ dY95h/Hi1MsJGFx+C41EKnwzldgd/vctKsUfe6j+XnuJAOMrr10= =wKCD -----END PGP SIGNATURE----- --a4uth2reqcf6zbuv-- From owner-svn-src-all@freebsd.org Wed Feb 19 15:56:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 849EF23E504; Wed, 19 Feb 2020 15:56:41 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N2Qd13Flz4Vj3; Wed, 19 Feb 2020 15:56:40 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DFF8DB1A8; Wed, 19 Feb 2020 15:56:40 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JFuer4040004; Wed, 19 Feb 2020 15:56:40 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JFueZO040003; Wed, 19 Feb 2020 15:56:40 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202002191556.01JFueZO040003@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 19 Feb 2020 15:56:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358120 - head X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 358120 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 15:56:41 -0000 Author: emaste Date: Wed Feb 19 15:56:40 2020 New Revision: 358120 URL: https://svnweb.freebsd.org/changeset/base/358120 Log: Cirrus-CI: increase timeout to 120m For some reason build+package+test time went from about 1h10 to over 1h30 (killed due to timeout prior to completion). The reason for the increase still needs investigation. Modified: head/.cirrus.yml Modified: head/.cirrus.yml ============================================================================== --- head/.cirrus.yml Wed Feb 19 15:30:13 2020 (r358119) +++ head/.cirrus.yml Wed Feb 19 15:56:40 2020 (r358120) @@ -9,7 +9,7 @@ env: CIRRUS_CLONE_DEPTH: 1 task: - timeout_in: 90m + timeout_in: 120m install_script: - pkg install -y qemu-devel uefi-edk2-qemu-x86_64 script: From owner-svn-src-all@freebsd.org Wed Feb 19 16:17:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3578A23EA94; Wed, 19 Feb 2020 16:17:52 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N2v40kZpz42G5; Wed, 19 Feb 2020 16:17:52 +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 13BF1B553; Wed, 19 Feb 2020 16:17:52 +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 01JGHpHm052328; Wed, 19 Feb 2020 16:17:51 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JGHpfI052327; Wed, 19 Feb 2020 16:17:51 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202002191617.01JGHpfI052327@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 19 Feb 2020 16:17:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358121 - stable/12/lib/libc/rpc X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/lib/libc/rpc X-SVN-Commit-Revision: 358121 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 16:17:52 -0000 Author: markj Date: Wed Feb 19 16:17:51 2020 New Revision: 358121 URL: https://svnweb.freebsd.org/changeset/base/358121 Log: MFC r357576: Fix a use of an uninitialized pointer in xdr_rpcbs_rmtcalllist(). PR: 243759 Modified: stable/12/lib/libc/rpc/rpcb_st_xdr.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libc/rpc/rpcb_st_xdr.c ============================================================================== --- stable/12/lib/libc/rpc/rpcb_st_xdr.c Wed Feb 19 15:56:40 2020 (r358120) +++ stable/12/lib/libc/rpc/rpcb_st_xdr.c Wed Feb 19 16:17:51 2020 (r358121) @@ -54,29 +54,28 @@ xdr_rpcbs_addrlist(XDR *xdrs, rpcbs_addrlist *objp) { struct rpcbs_addrlist **pnext; - if (!xdr_rpcprog(xdrs, &objp->prog)) { + if (!xdr_rpcprog(xdrs, &objp->prog)) { return (FALSE); - } - if (!xdr_rpcvers(xdrs, &objp->vers)) { + } + if (!xdr_rpcvers(xdrs, &objp->vers)) { return (FALSE); - } - if (!xdr_int(xdrs, &objp->success)) { + } + if (!xdr_int(xdrs, &objp->success)) { return (FALSE); - } - if (!xdr_int(xdrs, &objp->failure)) { + } + if (!xdr_int(xdrs, &objp->failure)) { return (FALSE); - } - if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + } + if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { return (FALSE); - } + } - pnext = &objp->next; - - if (!xdr_pointer(xdrs, (char **) pnext, + pnext = &objp->next; + if (!xdr_pointer(xdrs, (char **) pnext, sizeof (rpcbs_addrlist), (xdrproc_t)xdr_rpcbs_addrlist)) { return (FALSE); - } + } return (TRUE); } @@ -86,86 +85,86 @@ xdr_rpcbs_addrlist(XDR *xdrs, rpcbs_addrlist *objp) bool_t xdr_rpcbs_rmtcalllist(XDR *xdrs, rpcbs_rmtcalllist *objp) { - int32_t *buf; struct rpcbs_rmtcalllist **pnext; + int32_t *buf; + pnext = &objp->next; if (xdrs->x_op == XDR_ENCODE) { - buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); - if (buf == NULL) { - if (!xdr_rpcprog(xdrs, &objp->prog)) { - return (FALSE); + buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_rpcprog(xdrs, &objp->prog)) { + return (FALSE); + } + if (!xdr_rpcvers(xdrs, &objp->vers)) { + return (FALSE); + } + if (!xdr_rpcproc(xdrs, &objp->proc)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->success)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->failure)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->indirect)) { + return (FALSE); + } + } else { + IXDR_PUT_U_INT32(buf, objp->prog); + IXDR_PUT_U_INT32(buf, objp->vers); + IXDR_PUT_U_INT32(buf, objp->proc); + IXDR_PUT_INT32(buf, objp->success); + IXDR_PUT_INT32(buf, objp->failure); + IXDR_PUT_INT32(buf, objp->indirect); } - if (!xdr_rpcvers(xdrs, &objp->vers)) { + if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { return (FALSE); } - if (!xdr_rpcproc(xdrs, &objp->proc)) { + if (!xdr_pointer(xdrs, (char **) pnext, + sizeof (rpcbs_rmtcalllist), + (xdrproc_t)xdr_rpcbs_rmtcalllist)) { return (FALSE); } - if (!xdr_int(xdrs, &objp->success)) { - return (FALSE); - } - if (!xdr_int(xdrs, &objp->failure)) { - return (FALSE); - } - if (!xdr_int(xdrs, &objp->indirect)) { - return (FALSE); - } - } else { - IXDR_PUT_U_INT32(buf, objp->prog); - IXDR_PUT_U_INT32(buf, objp->vers); - IXDR_PUT_U_INT32(buf, objp->proc); - IXDR_PUT_INT32(buf, objp->success); - IXDR_PUT_INT32(buf, objp->failure); - IXDR_PUT_INT32(buf, objp->indirect); - } - if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { - return (FALSE); - } - pnext = &objp->next; - if (!xdr_pointer(xdrs, (char **) pnext, - sizeof (rpcbs_rmtcalllist), - (xdrproc_t)xdr_rpcbs_rmtcalllist)) { - return (FALSE); - } - return (TRUE); + return (TRUE); } else if (xdrs->x_op == XDR_DECODE) { - buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); - if (buf == NULL) { - if (!xdr_rpcprog(xdrs, &objp->prog)) { - return (FALSE); + buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_rpcprog(xdrs, &objp->prog)) { + return (FALSE); + } + if (!xdr_rpcvers(xdrs, &objp->vers)) { + return (FALSE); + } + if (!xdr_rpcproc(xdrs, &objp->proc)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->success)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->failure)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->indirect)) { + return (FALSE); + } + } else { + objp->prog = (rpcprog_t)IXDR_GET_U_INT32(buf); + objp->vers = (rpcvers_t)IXDR_GET_U_INT32(buf); + objp->proc = (rpcproc_t)IXDR_GET_U_INT32(buf); + objp->success = (int)IXDR_GET_INT32(buf); + objp->failure = (int)IXDR_GET_INT32(buf); + objp->indirect = (int)IXDR_GET_INT32(buf); } - if (!xdr_rpcvers(xdrs, &objp->vers)) { + if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { return (FALSE); } - if (!xdr_rpcproc(xdrs, &objp->proc)) { + if (!xdr_pointer(xdrs, (char **) pnext, + sizeof (rpcbs_rmtcalllist), + (xdrproc_t)xdr_rpcbs_rmtcalllist)) { return (FALSE); } - if (!xdr_int(xdrs, &objp->success)) { - return (FALSE); - } - if (!xdr_int(xdrs, &objp->failure)) { - return (FALSE); - } - if (!xdr_int(xdrs, &objp->indirect)) { - return (FALSE); - } - } else { - objp->prog = (rpcprog_t)IXDR_GET_U_INT32(buf); - objp->vers = (rpcvers_t)IXDR_GET_U_INT32(buf); - objp->proc = (rpcproc_t)IXDR_GET_U_INT32(buf); - objp->success = (int)IXDR_GET_INT32(buf); - objp->failure = (int)IXDR_GET_INT32(buf); - objp->indirect = (int)IXDR_GET_INT32(buf); - } - if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { - return (FALSE); - } - if (!xdr_pointer(xdrs, (char **) pnext, - sizeof (rpcbs_rmtcalllist), - (xdrproc_t)xdr_rpcbs_rmtcalllist)) { - return (FALSE); - } - return (TRUE); + return (TRUE); } if (!xdr_rpcprog(xdrs, &objp->prog)) { return (FALSE); From owner-svn-src-all@freebsd.org Wed Feb 19 16:18:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CAE9123EB2B; Wed, 19 Feb 2020 16:18:27 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N2vl4ynFz43FC; Wed, 19 Feb 2020 16:18: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 9E572B555; Wed, 19 Feb 2020 16:18: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 01JGIREo052418; Wed, 19 Feb 2020 16:18:27 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JGIRcq052417; Wed, 19 Feb 2020 16:18:27 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202002191618.01JGIRcq052417@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 19 Feb 2020 16:18:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358122 - stable/11/lib/libc/rpc X-SVN-Group: stable-11 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/11/lib/libc/rpc X-SVN-Commit-Revision: 358122 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 16:18:27 -0000 Author: markj Date: Wed Feb 19 16:18:27 2020 New Revision: 358122 URL: https://svnweb.freebsd.org/changeset/base/358122 Log: MFC r357576: Fix a use of an uninitialized pointer in xdr_rpcbs_rmtcalllist(). PR: 243759 Modified: stable/11/lib/libc/rpc/rpcb_st_xdr.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/rpc/rpcb_st_xdr.c ============================================================================== --- stable/11/lib/libc/rpc/rpcb_st_xdr.c Wed Feb 19 16:17:51 2020 (r358121) +++ stable/11/lib/libc/rpc/rpcb_st_xdr.c Wed Feb 19 16:18:27 2020 (r358122) @@ -52,29 +52,28 @@ xdr_rpcbs_addrlist(XDR *xdrs, rpcbs_addrlist *objp) { struct rpcbs_addrlist **pnext; - if (!xdr_rpcprog(xdrs, &objp->prog)) { + if (!xdr_rpcprog(xdrs, &objp->prog)) { return (FALSE); - } - if (!xdr_rpcvers(xdrs, &objp->vers)) { + } + if (!xdr_rpcvers(xdrs, &objp->vers)) { return (FALSE); - } - if (!xdr_int(xdrs, &objp->success)) { + } + if (!xdr_int(xdrs, &objp->success)) { return (FALSE); - } - if (!xdr_int(xdrs, &objp->failure)) { + } + if (!xdr_int(xdrs, &objp->failure)) { return (FALSE); - } - if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + } + if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { return (FALSE); - } + } - pnext = &objp->next; - - if (!xdr_pointer(xdrs, (char **) pnext, + pnext = &objp->next; + if (!xdr_pointer(xdrs, (char **) pnext, sizeof (rpcbs_addrlist), (xdrproc_t)xdr_rpcbs_addrlist)) { return (FALSE); - } + } return (TRUE); } @@ -84,86 +83,86 @@ xdr_rpcbs_addrlist(XDR *xdrs, rpcbs_addrlist *objp) bool_t xdr_rpcbs_rmtcalllist(XDR *xdrs, rpcbs_rmtcalllist *objp) { - int32_t *buf; struct rpcbs_rmtcalllist **pnext; + int32_t *buf; + pnext = &objp->next; if (xdrs->x_op == XDR_ENCODE) { - buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); - if (buf == NULL) { - if (!xdr_rpcprog(xdrs, &objp->prog)) { - return (FALSE); + buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_rpcprog(xdrs, &objp->prog)) { + return (FALSE); + } + if (!xdr_rpcvers(xdrs, &objp->vers)) { + return (FALSE); + } + if (!xdr_rpcproc(xdrs, &objp->proc)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->success)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->failure)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->indirect)) { + return (FALSE); + } + } else { + IXDR_PUT_U_INT32(buf, objp->prog); + IXDR_PUT_U_INT32(buf, objp->vers); + IXDR_PUT_U_INT32(buf, objp->proc); + IXDR_PUT_INT32(buf, objp->success); + IXDR_PUT_INT32(buf, objp->failure); + IXDR_PUT_INT32(buf, objp->indirect); } - if (!xdr_rpcvers(xdrs, &objp->vers)) { + if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { return (FALSE); } - if (!xdr_rpcproc(xdrs, &objp->proc)) { + if (!xdr_pointer(xdrs, (char **) pnext, + sizeof (rpcbs_rmtcalllist), + (xdrproc_t)xdr_rpcbs_rmtcalllist)) { return (FALSE); } - if (!xdr_int(xdrs, &objp->success)) { - return (FALSE); - } - if (!xdr_int(xdrs, &objp->failure)) { - return (FALSE); - } - if (!xdr_int(xdrs, &objp->indirect)) { - return (FALSE); - } - } else { - IXDR_PUT_U_INT32(buf, objp->prog); - IXDR_PUT_U_INT32(buf, objp->vers); - IXDR_PUT_U_INT32(buf, objp->proc); - IXDR_PUT_INT32(buf, objp->success); - IXDR_PUT_INT32(buf, objp->failure); - IXDR_PUT_INT32(buf, objp->indirect); - } - if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { - return (FALSE); - } - pnext = &objp->next; - if (!xdr_pointer(xdrs, (char **) pnext, - sizeof (rpcbs_rmtcalllist), - (xdrproc_t)xdr_rpcbs_rmtcalllist)) { - return (FALSE); - } - return (TRUE); + return (TRUE); } else if (xdrs->x_op == XDR_DECODE) { - buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); - if (buf == NULL) { - if (!xdr_rpcprog(xdrs, &objp->prog)) { - return (FALSE); + buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_rpcprog(xdrs, &objp->prog)) { + return (FALSE); + } + if (!xdr_rpcvers(xdrs, &objp->vers)) { + return (FALSE); + } + if (!xdr_rpcproc(xdrs, &objp->proc)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->success)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->failure)) { + return (FALSE); + } + if (!xdr_int(xdrs, &objp->indirect)) { + return (FALSE); + } + } else { + objp->prog = (rpcprog_t)IXDR_GET_U_INT32(buf); + objp->vers = (rpcvers_t)IXDR_GET_U_INT32(buf); + objp->proc = (rpcproc_t)IXDR_GET_U_INT32(buf); + objp->success = (int)IXDR_GET_INT32(buf); + objp->failure = (int)IXDR_GET_INT32(buf); + objp->indirect = (int)IXDR_GET_INT32(buf); } - if (!xdr_rpcvers(xdrs, &objp->vers)) { + if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { return (FALSE); } - if (!xdr_rpcproc(xdrs, &objp->proc)) { + if (!xdr_pointer(xdrs, (char **) pnext, + sizeof (rpcbs_rmtcalllist), + (xdrproc_t)xdr_rpcbs_rmtcalllist)) { return (FALSE); } - if (!xdr_int(xdrs, &objp->success)) { - return (FALSE); - } - if (!xdr_int(xdrs, &objp->failure)) { - return (FALSE); - } - if (!xdr_int(xdrs, &objp->indirect)) { - return (FALSE); - } - } else { - objp->prog = (rpcprog_t)IXDR_GET_U_INT32(buf); - objp->vers = (rpcvers_t)IXDR_GET_U_INT32(buf); - objp->proc = (rpcproc_t)IXDR_GET_U_INT32(buf); - objp->success = (int)IXDR_GET_INT32(buf); - objp->failure = (int)IXDR_GET_INT32(buf); - objp->indirect = (int)IXDR_GET_INT32(buf); - } - if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { - return (FALSE); - } - if (!xdr_pointer(xdrs, (char **) pnext, - sizeof (rpcbs_rmtcalllist), - (xdrproc_t)xdr_rpcbs_rmtcalllist)) { - return (FALSE); - } - return (TRUE); + return (TRUE); } if (!xdr_rpcprog(xdrs, &objp->prog)) { return (FALSE); From owner-svn-src-all@freebsd.org Wed Feb 19 16:23:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4866023ED96; Wed, 19 Feb 2020 16:23: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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N31P5B6Kz4CkR; Wed, 19 Feb 2020 16:23: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 9C54EB729; Wed, 19 Feb 2020 16:23: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 01JGNL8q057907; Wed, 19 Feb 2020 16:23:21 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JGNLxb057906; Wed, 19 Feb 2020 16:23:21 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202002191623.01JGNLxb057906@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 19 Feb 2020 16:23:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358123 - head/tools/tools/nanobsd/dhcpd X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/tools/tools/nanobsd/dhcpd X-SVN-Commit-Revision: 358123 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 16:23:22 -0000 Author: emaste Date: Wed Feb 19 16:23:21 2020 New Revision: 358123 URL: https://svnweb.freebsd.org/changeset/base/358123 Log: nanobsd: add WITHOUT_LLVM_COV, akin to WITHOUT_GCOV Another case, missed in r358105 Modified: head/tools/tools/nanobsd/dhcpd/common Modified: head/tools/tools/nanobsd/dhcpd/common ============================================================================== --- head/tools/tools/nanobsd/dhcpd/common Wed Feb 19 16:18:27 2020 (r358122) +++ head/tools/tools/nanobsd/dhcpd/common Wed Feb 19 16:23:21 2020 (r358123) @@ -111,6 +111,7 @@ WITHOUT_GAMES=true WITHOUT_GCOV=true WITHOUT_HTML=true WITHOUT_IPFILTER=true +WITHOUT_LLVM_COV=true WITHOUT_LOCALES=true WITHOUT_LPR=true WITHOUT_MAN=true From owner-svn-src-all@freebsd.org Wed Feb 19 16:44:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6536F23FB5C; Wed, 19 Feb 2020 16:44:17 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N3TY1pSgz3Q8V; Wed, 19 Feb 2020 16:44:17 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 345FABCCB; Wed, 19 Feb 2020 16:44:17 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JGiHD9070211; Wed, 19 Feb 2020 16:44:17 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JGiHN7070210; Wed, 19 Feb 2020 16:44:17 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202002191644.01JGiHN7070210@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Wed, 19 Feb 2020 16:44:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358124 - head/tests/sys/net X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/tests/sys/net X-SVN-Commit-Revision: 358124 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 16:44:17 -0000 Author: kp Date: Wed Feb 19 16:44:16 2020 New Revision: 358124 URL: https://svnweb.freebsd.org/changeset/base/358124 Log: bridge tests: Remove unneeded 'All rights reserved.' The FreeBSD foundation no longer requires this, as per https://lists.freebsd.org/pipermail/svn-src-all/2019-February/177215.html and private communications. Sponsored by: The FreeBSD Foundation Modified: head/tests/sys/net/if_bridge_test.sh Modified: head/tests/sys/net/if_bridge_test.sh ============================================================================== --- head/tests/sys/net/if_bridge_test.sh Wed Feb 19 16:23:21 2020 (r358123) +++ head/tests/sys/net/if_bridge_test.sh Wed Feb 19 16:44:16 2020 (r358124) @@ -3,7 +3,6 @@ # SPDX-License-Identifier: BSD-2-Clause-FreeBSD # # Copyright (c) 2020 The FreeBSD Foundation -# All rights reserved. # # This software was developed by Kristof Provost under sponsorship # from the FreeBSD Foundation. From owner-svn-src-all@freebsd.org Wed Feb 19 16:58:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6342B24006A; Wed, 19 Feb 2020 16:58:09 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N3nX2Wycz4F45; Wed, 19 Feb 2020 16:58:08 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EF5ADBE88; Wed, 19 Feb 2020 16:58:07 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JGw74f076138; Wed, 19 Feb 2020 16:58:07 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JGw7IP076136; Wed, 19 Feb 2020 16:58:07 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191658.01JGw7IP076136@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 16:58:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r358125 - in vendor/ncurses/dist: . Ada95 Ada95/doc Ada95/gen Ada95/include Ada95/samples Ada95/src c++ doc/html doc/html/ada doc/html/ada/funcs doc/html/man form include man menu misc ... X-SVN-Group: vendor X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: in vendor/ncurses/dist: . Ada95 Ada95/doc Ada95/gen Ada95/include Ada95/samples Ada95/src c++ doc/html doc/html/ada doc/html/ada/funcs doc/html/man form include man menu misc ncurses ncurses/base ncur... X-SVN-Commit-Revision: 358125 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 16:58:09 -0000 Author: bapt Date: Wed Feb 19 16:58:06 2020 New Revision: 358125 URL: https://svnweb.freebsd.org/changeset/base/358125 Log: import ncurses 6.2-20200215 Added: vendor/ncurses/dist/Ada95/samples/split-path.awk (contents, props changed) Modified: vendor/ncurses/dist/ANNOUNCE vendor/ncurses/dist/AUTHORS vendor/ncurses/dist/Ada95/Makefile.in vendor/ncurses/dist/Ada95/README vendor/ncurses/dist/Ada95/TODO vendor/ncurses/dist/Ada95/aclocal.m4 vendor/ncurses/dist/Ada95/configure vendor/ncurses/dist/Ada95/configure.in vendor/ncurses/dist/Ada95/doc/Makefile.in vendor/ncurses/dist/Ada95/gen/Makefile.in vendor/ncurses/dist/Ada95/gen/adacurses-config.in vendor/ncurses/dist/Ada95/gen/gen.c vendor/ncurses/dist/Ada95/gen/html.m4 vendor/ncurses/dist/Ada95/gen/normal.m4 vendor/ncurses/dist/Ada95/gen/table.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-aux.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-forms.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-menus.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-mouse.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-panels.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-trace.ads.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses.adb.m4 vendor/ncurses/dist/Ada95/gen/terminal_interface-curses.ads.m4 vendor/ncurses/dist/Ada95/include/MKncurses_def.sh vendor/ncurses/dist/Ada95/include/Makefile.in vendor/ncurses/dist/Ada95/include/ncurses_cfg.hin vendor/ncurses/dist/Ada95/include/ncurses_defs vendor/ncurses/dist/Ada95/make-tar.sh vendor/ncurses/dist/Ada95/mk-1st.awk vendor/ncurses/dist/Ada95/samples/Makefile.in vendor/ncurses/dist/Ada95/samples/README vendor/ncurses/dist/Ada95/samples/ncurses.adb vendor/ncurses/dist/Ada95/samples/ncurses2-acs_and_scroll.adb vendor/ncurses/dist/Ada95/samples/ncurses2-acs_and_scroll.ads vendor/ncurses/dist/Ada95/samples/ncurses2-acs_display.adb vendor/ncurses/dist/Ada95/samples/ncurses2-acs_display.ads vendor/ncurses/dist/Ada95/samples/ncurses2-attr_test.adb vendor/ncurses/dist/Ada95/samples/ncurses2-attr_test.ads vendor/ncurses/dist/Ada95/samples/ncurses2-color_edit.adb vendor/ncurses/dist/Ada95/samples/ncurses2-color_edit.ads vendor/ncurses/dist/Ada95/samples/ncurses2-color_test.adb vendor/ncurses/dist/Ada95/samples/ncurses2-color_test.ads vendor/ncurses/dist/Ada95/samples/ncurses2-demo_forms.adb vendor/ncurses/dist/Ada95/samples/ncurses2-demo_forms.ads vendor/ncurses/dist/Ada95/samples/ncurses2-demo_pad.adb vendor/ncurses/dist/Ada95/samples/ncurses2-demo_pad.ads vendor/ncurses/dist/Ada95/samples/ncurses2-demo_panels.adb vendor/ncurses/dist/Ada95/samples/ncurses2-demo_panels.ads vendor/ncurses/dist/Ada95/samples/ncurses2-flushinp_test.adb vendor/ncurses/dist/Ada95/samples/ncurses2-flushinp_test.ads vendor/ncurses/dist/Ada95/samples/ncurses2-genericputs.adb vendor/ncurses/dist/Ada95/samples/ncurses2-genericputs.ads vendor/ncurses/dist/Ada95/samples/ncurses2-getch.ads vendor/ncurses/dist/Ada95/samples/ncurses2-getch_test.adb vendor/ncurses/dist/Ada95/samples/ncurses2-getch_test.ads vendor/ncurses/dist/Ada95/samples/ncurses2-getopt.adb vendor/ncurses/dist/Ada95/samples/ncurses2-getopt.ads vendor/ncurses/dist/Ada95/samples/ncurses2-m.adb vendor/ncurses/dist/Ada95/samples/ncurses2-m.ads vendor/ncurses/dist/Ada95/samples/ncurses2-menu_test.adb vendor/ncurses/dist/Ada95/samples/ncurses2-menu_test.ads vendor/ncurses/dist/Ada95/samples/ncurses2-overlap_test.adb vendor/ncurses/dist/Ada95/samples/ncurses2-overlap_test.ads vendor/ncurses/dist/Ada95/samples/ncurses2-slk_test.adb vendor/ncurses/dist/Ada95/samples/ncurses2-slk_test.ads vendor/ncurses/dist/Ada95/samples/ncurses2-test_sgr_attributes.adb vendor/ncurses/dist/Ada95/samples/ncurses2-test_sgr_attributes.ads vendor/ncurses/dist/Ada95/samples/ncurses2-trace_set.adb vendor/ncurses/dist/Ada95/samples/ncurses2-trace_set.ads vendor/ncurses/dist/Ada95/samples/ncurses2-util.adb vendor/ncurses/dist/Ada95/samples/ncurses2-util.ads vendor/ncurses/dist/Ada95/samples/ncurses2.ads vendor/ncurses/dist/Ada95/samples/rain.adb vendor/ncurses/dist/Ada95/samples/rain.ads vendor/ncurses/dist/Ada95/samples/sample-curses_demo-attributes.adb vendor/ncurses/dist/Ada95/samples/sample-curses_demo-attributes.ads vendor/ncurses/dist/Ada95/samples/sample-curses_demo-mouse.adb vendor/ncurses/dist/Ada95/samples/sample-curses_demo-mouse.ads vendor/ncurses/dist/Ada95/samples/sample-curses_demo.adb vendor/ncurses/dist/Ada95/samples/sample-curses_demo.ads vendor/ncurses/dist/Ada95/samples/sample-explanation.adb_p vendor/ncurses/dist/Ada95/samples/sample-explanation.ads vendor/ncurses/dist/Ada95/samples/sample-form_demo-aux.adb vendor/ncurses/dist/Ada95/samples/sample-form_demo-aux.ads vendor/ncurses/dist/Ada95/samples/sample-form_demo-handler.adb vendor/ncurses/dist/Ada95/samples/sample-form_demo-handler.ads vendor/ncurses/dist/Ada95/samples/sample-form_demo.adb vendor/ncurses/dist/Ada95/samples/sample-form_demo.ads vendor/ncurses/dist/Ada95/samples/sample-function_key_setting.adb vendor/ncurses/dist/Ada95/samples/sample-function_key_setting.ads vendor/ncurses/dist/Ada95/samples/sample-header_handler.adb vendor/ncurses/dist/Ada95/samples/sample-header_handler.ads vendor/ncurses/dist/Ada95/samples/sample-helpers.adb vendor/ncurses/dist/Ada95/samples/sample-helpers.ads vendor/ncurses/dist/Ada95/samples/sample-keyboard_handler.adb vendor/ncurses/dist/Ada95/samples/sample-keyboard_handler.ads vendor/ncurses/dist/Ada95/samples/sample-manifest.ads vendor/ncurses/dist/Ada95/samples/sample-menu_demo-aux.adb vendor/ncurses/dist/Ada95/samples/sample-menu_demo-aux.ads vendor/ncurses/dist/Ada95/samples/sample-menu_demo-handler.adb vendor/ncurses/dist/Ada95/samples/sample-menu_demo-handler.ads vendor/ncurses/dist/Ada95/samples/sample-menu_demo.adb vendor/ncurses/dist/Ada95/samples/sample-menu_demo.ads vendor/ncurses/dist/Ada95/samples/sample-my_field_type.adb vendor/ncurses/dist/Ada95/samples/sample-my_field_type.ads vendor/ncurses/dist/Ada95/samples/sample-text_io_demo.adb vendor/ncurses/dist/Ada95/samples/sample-text_io_demo.ads vendor/ncurses/dist/Ada95/samples/sample.adb vendor/ncurses/dist/Ada95/samples/sample.ads vendor/ncurses/dist/Ada95/samples/status.adb vendor/ncurses/dist/Ada95/samples/status.ads vendor/ncurses/dist/Ada95/samples/tour.adb vendor/ncurses/dist/Ada95/samples/tour.ads vendor/ncurses/dist/Ada95/src/Makefile.in vendor/ncurses/dist/Ada95/src/c_threaded_variables.c vendor/ncurses/dist/Ada95/src/c_threaded_variables.h vendor/ncurses/dist/Ada95/src/c_varargs_to_ada.c vendor/ncurses/dist/Ada95/src/c_varargs_to_ada.h vendor/ncurses/dist/Ada95/src/library-cfg.sh vendor/ncurses/dist/Ada95/src/library.gpr.in vendor/ncurses/dist/Ada95/src/modules vendor/ncurses/dist/Ada95/src/ncurses_compat.c vendor/ncurses/dist/Ada95/src/terminal_interface-curses-aux.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-user.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-user.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_user_data.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-form_user_data.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-menus-item_user_data.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-menus.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-mouse.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-panels-user_data.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-panels.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-putwin.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-putwin.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-termcap.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-termcap.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-terminfo.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-terminfo.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-aux.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-aux.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-complex_io.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-complex_io.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-float_io.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-float_io.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-integer_io.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-integer_io.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-modular_io.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-modular_io.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io.adb vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io.ads vendor/ncurses/dist/Ada95/src/terminal_interface-curses-trace.adb_p vendor/ncurses/dist/Ada95/src/terminal_interface.ads vendor/ncurses/dist/COPYING vendor/ncurses/dist/INSTALL vendor/ncurses/dist/MANIFEST vendor/ncurses/dist/Makefile.in vendor/ncurses/dist/Makefile.os2 vendor/ncurses/dist/NEWS vendor/ncurses/dist/README vendor/ncurses/dist/README.MinGW vendor/ncurses/dist/README.emx vendor/ncurses/dist/TO-DO vendor/ncurses/dist/VERSION vendor/ncurses/dist/aclocal.m4 vendor/ncurses/dist/announce.html.in vendor/ncurses/dist/c++/Makefile.in vendor/ncurses/dist/c++/NEWS vendor/ncurses/dist/c++/PROBLEMS vendor/ncurses/dist/c++/README-first vendor/ncurses/dist/c++/cursesapp.cc vendor/ncurses/dist/c++/cursesapp.h vendor/ncurses/dist/c++/cursesf.cc vendor/ncurses/dist/c++/cursesf.h vendor/ncurses/dist/c++/cursesm.cc vendor/ncurses/dist/c++/cursesm.h vendor/ncurses/dist/c++/cursesmain.cc vendor/ncurses/dist/c++/cursesp.cc vendor/ncurses/dist/c++/cursesp.h vendor/ncurses/dist/c++/cursespad.cc vendor/ncurses/dist/c++/cursesw.cc vendor/ncurses/dist/c++/cursesw.h vendor/ncurses/dist/c++/cursslk.cc vendor/ncurses/dist/c++/cursslk.h vendor/ncurses/dist/c++/demo.cc vendor/ncurses/dist/c++/edit_cfg.sh vendor/ncurses/dist/c++/etip.h.in vendor/ncurses/dist/c++/headers vendor/ncurses/dist/c++/internal.h vendor/ncurses/dist/c++/modules vendor/ncurses/dist/configure vendor/ncurses/dist/configure.in vendor/ncurses/dist/convert_configure.pl vendor/ncurses/dist/dist.mk vendor/ncurses/dist/doc/html/Ada95.html vendor/ncurses/dist/doc/html/ada/funcs/A.htm vendor/ncurses/dist/doc/html/ada/funcs/B.htm vendor/ncurses/dist/doc/html/ada/funcs/C.htm vendor/ncurses/dist/doc/html/ada/funcs/D.htm vendor/ncurses/dist/doc/html/ada/funcs/E.htm vendor/ncurses/dist/doc/html/ada/funcs/F.htm vendor/ncurses/dist/doc/html/ada/funcs/G.htm vendor/ncurses/dist/doc/html/ada/funcs/H.htm vendor/ncurses/dist/doc/html/ada/funcs/I.htm vendor/ncurses/dist/doc/html/ada/funcs/K.htm vendor/ncurses/dist/doc/html/ada/funcs/L.htm vendor/ncurses/dist/doc/html/ada/funcs/M.htm vendor/ncurses/dist/doc/html/ada/funcs/N.htm vendor/ncurses/dist/doc/html/ada/funcs/O.htm vendor/ncurses/dist/doc/html/ada/funcs/P.htm vendor/ncurses/dist/doc/html/ada/funcs/Q.htm vendor/ncurses/dist/doc/html/ada/funcs/R.htm vendor/ncurses/dist/doc/html/ada/funcs/S.htm vendor/ncurses/dist/doc/html/ada/funcs/T.htm vendor/ncurses/dist/doc/html/ada/funcs/U.htm vendor/ncurses/dist/doc/html/ada/funcs/V.htm vendor/ncurses/dist/doc/html/ada/funcs/W.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-aux__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-aux__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-mouse__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-mouse__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-panels__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-panels__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-putwin__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-putwin__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-termcap__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-termcap__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-terminfo__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-terminfo__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-trace__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-trace__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses__adb.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface-curses_constants__ads.htm vendor/ncurses/dist/doc/html/ada/terminal_interface__ads.htm vendor/ncurses/dist/doc/html/announce.html vendor/ncurses/dist/doc/html/hackguide.html vendor/ncurses/dist/doc/html/index.html vendor/ncurses/dist/doc/html/man/adacurses6-config.1.html vendor/ncurses/dist/doc/html/man/captoinfo.1m.html vendor/ncurses/dist/doc/html/man/clear.1.html vendor/ncurses/dist/doc/html/man/curs_add_wch.3x.html vendor/ncurses/dist/doc/html/man/curs_add_wchstr.3x.html vendor/ncurses/dist/doc/html/man/curs_addch.3x.html vendor/ncurses/dist/doc/html/man/curs_addchstr.3x.html vendor/ncurses/dist/doc/html/man/curs_addstr.3x.html vendor/ncurses/dist/doc/html/man/curs_addwstr.3x.html vendor/ncurses/dist/doc/html/man/curs_attr.3x.html vendor/ncurses/dist/doc/html/man/curs_beep.3x.html vendor/ncurses/dist/doc/html/man/curs_bkgd.3x.html vendor/ncurses/dist/doc/html/man/curs_bkgrnd.3x.html vendor/ncurses/dist/doc/html/man/curs_border.3x.html vendor/ncurses/dist/doc/html/man/curs_border_set.3x.html vendor/ncurses/dist/doc/html/man/curs_clear.3x.html vendor/ncurses/dist/doc/html/man/curs_color.3x.html vendor/ncurses/dist/doc/html/man/curs_delch.3x.html vendor/ncurses/dist/doc/html/man/curs_deleteln.3x.html vendor/ncurses/dist/doc/html/man/curs_extend.3x.html vendor/ncurses/dist/doc/html/man/curs_get_wch.3x.html vendor/ncurses/dist/doc/html/man/curs_get_wstr.3x.html vendor/ncurses/dist/doc/html/man/curs_getcchar.3x.html vendor/ncurses/dist/doc/html/man/curs_getch.3x.html vendor/ncurses/dist/doc/html/man/curs_getstr.3x.html vendor/ncurses/dist/doc/html/man/curs_getyx.3x.html vendor/ncurses/dist/doc/html/man/curs_in_wch.3x.html vendor/ncurses/dist/doc/html/man/curs_in_wchstr.3x.html vendor/ncurses/dist/doc/html/man/curs_inch.3x.html vendor/ncurses/dist/doc/html/man/curs_inchstr.3x.html vendor/ncurses/dist/doc/html/man/curs_initscr.3x.html vendor/ncurses/dist/doc/html/man/curs_inopts.3x.html vendor/ncurses/dist/doc/html/man/curs_ins_wch.3x.html vendor/ncurses/dist/doc/html/man/curs_ins_wstr.3x.html vendor/ncurses/dist/doc/html/man/curs_insch.3x.html vendor/ncurses/dist/doc/html/man/curs_insstr.3x.html vendor/ncurses/dist/doc/html/man/curs_instr.3x.html vendor/ncurses/dist/doc/html/man/curs_inwstr.3x.html vendor/ncurses/dist/doc/html/man/curs_kernel.3x.html vendor/ncurses/dist/doc/html/man/curs_legacy.3x.html vendor/ncurses/dist/doc/html/man/curs_memleaks.3x.html vendor/ncurses/dist/doc/html/man/curs_mouse.3x.html vendor/ncurses/dist/doc/html/man/curs_move.3x.html vendor/ncurses/dist/doc/html/man/curs_opaque.3x.html vendor/ncurses/dist/doc/html/man/curs_outopts.3x.html vendor/ncurses/dist/doc/html/man/curs_overlay.3x.html vendor/ncurses/dist/doc/html/man/curs_pad.3x.html vendor/ncurses/dist/doc/html/man/curs_print.3x.html vendor/ncurses/dist/doc/html/man/curs_printw.3x.html vendor/ncurses/dist/doc/html/man/curs_refresh.3x.html vendor/ncurses/dist/doc/html/man/curs_scanw.3x.html vendor/ncurses/dist/doc/html/man/curs_scr_dump.3x.html vendor/ncurses/dist/doc/html/man/curs_scroll.3x.html vendor/ncurses/dist/doc/html/man/curs_slk.3x.html vendor/ncurses/dist/doc/html/man/curs_sp_funcs.3x.html vendor/ncurses/dist/doc/html/man/curs_termattrs.3x.html vendor/ncurses/dist/doc/html/man/curs_termcap.3x.html vendor/ncurses/dist/doc/html/man/curs_terminfo.3x.html vendor/ncurses/dist/doc/html/man/curs_threads.3x.html vendor/ncurses/dist/doc/html/man/curs_touch.3x.html vendor/ncurses/dist/doc/html/man/curs_trace.3x.html vendor/ncurses/dist/doc/html/man/curs_util.3x.html vendor/ncurses/dist/doc/html/man/curs_variables.3x.html vendor/ncurses/dist/doc/html/man/curs_window.3x.html vendor/ncurses/dist/doc/html/man/default_colors.3x.html vendor/ncurses/dist/doc/html/man/define_key.3x.html vendor/ncurses/dist/doc/html/man/form.3x.html vendor/ncurses/dist/doc/html/man/form_cursor.3x.html vendor/ncurses/dist/doc/html/man/form_data.3x.html vendor/ncurses/dist/doc/html/man/form_driver.3x.html vendor/ncurses/dist/doc/html/man/form_field.3x.html vendor/ncurses/dist/doc/html/man/form_field_attributes.3x.html vendor/ncurses/dist/doc/html/man/form_field_buffer.3x.html vendor/ncurses/dist/doc/html/man/form_field_info.3x.html vendor/ncurses/dist/doc/html/man/form_field_just.3x.html vendor/ncurses/dist/doc/html/man/form_field_new.3x.html vendor/ncurses/dist/doc/html/man/form_field_opts.3x.html vendor/ncurses/dist/doc/html/man/form_field_userptr.3x.html vendor/ncurses/dist/doc/html/man/form_field_validation.3x.html vendor/ncurses/dist/doc/html/man/form_fieldtype.3x.html vendor/ncurses/dist/doc/html/man/form_hook.3x.html vendor/ncurses/dist/doc/html/man/form_new.3x.html vendor/ncurses/dist/doc/html/man/form_new_page.3x.html vendor/ncurses/dist/doc/html/man/form_opts.3x.html vendor/ncurses/dist/doc/html/man/form_page.3x.html vendor/ncurses/dist/doc/html/man/form_post.3x.html vendor/ncurses/dist/doc/html/man/form_requestname.3x.html vendor/ncurses/dist/doc/html/man/form_userptr.3x.html vendor/ncurses/dist/doc/html/man/form_variables.3x.html vendor/ncurses/dist/doc/html/man/form_win.3x.html vendor/ncurses/dist/doc/html/man/index.html vendor/ncurses/dist/doc/html/man/infocmp.1m.html vendor/ncurses/dist/doc/html/man/infotocap.1m.html vendor/ncurses/dist/doc/html/man/key_defined.3x.html vendor/ncurses/dist/doc/html/man/keybound.3x.html vendor/ncurses/dist/doc/html/man/keyok.3x.html vendor/ncurses/dist/doc/html/man/legacy_coding.3x.html vendor/ncurses/dist/doc/html/man/menu.3x.html vendor/ncurses/dist/doc/html/man/menu_attributes.3x.html vendor/ncurses/dist/doc/html/man/menu_cursor.3x.html vendor/ncurses/dist/doc/html/man/menu_driver.3x.html vendor/ncurses/dist/doc/html/man/menu_format.3x.html vendor/ncurses/dist/doc/html/man/menu_hook.3x.html vendor/ncurses/dist/doc/html/man/menu_items.3x.html vendor/ncurses/dist/doc/html/man/menu_mark.3x.html vendor/ncurses/dist/doc/html/man/menu_new.3x.html vendor/ncurses/dist/doc/html/man/menu_opts.3x.html vendor/ncurses/dist/doc/html/man/menu_pattern.3x.html vendor/ncurses/dist/doc/html/man/menu_post.3x.html vendor/ncurses/dist/doc/html/man/menu_requestname.3x.html vendor/ncurses/dist/doc/html/man/menu_spacing.3x.html vendor/ncurses/dist/doc/html/man/menu_userptr.3x.html vendor/ncurses/dist/doc/html/man/menu_win.3x.html vendor/ncurses/dist/doc/html/man/mitem_current.3x.html vendor/ncurses/dist/doc/html/man/mitem_name.3x.html vendor/ncurses/dist/doc/html/man/mitem_new.3x.html vendor/ncurses/dist/doc/html/man/mitem_opts.3x.html vendor/ncurses/dist/doc/html/man/mitem_userptr.3x.html vendor/ncurses/dist/doc/html/man/mitem_value.3x.html vendor/ncurses/dist/doc/html/man/mitem_visible.3x.html vendor/ncurses/dist/doc/html/man/ncurses.3x.html vendor/ncurses/dist/doc/html/man/ncurses6-config.1.html vendor/ncurses/dist/doc/html/man/new_pair.3x.html vendor/ncurses/dist/doc/html/man/panel.3x.html vendor/ncurses/dist/doc/html/man/resizeterm.3x.html vendor/ncurses/dist/doc/html/man/scr_dump.5.html vendor/ncurses/dist/doc/html/man/tabs.1.html vendor/ncurses/dist/doc/html/man/term.5.html vendor/ncurses/dist/doc/html/man/term.7.html vendor/ncurses/dist/doc/html/man/term_variables.3x.html vendor/ncurses/dist/doc/html/man/terminfo.5.html vendor/ncurses/dist/doc/html/man/tic.1m.html vendor/ncurses/dist/doc/html/man/toe.1m.html vendor/ncurses/dist/doc/html/man/tput.1.html vendor/ncurses/dist/doc/html/man/tset.1.html vendor/ncurses/dist/doc/html/man/user_caps.5.html vendor/ncurses/dist/doc/html/man/wresize.3x.html vendor/ncurses/dist/doc/html/ncurses-intro.html vendor/ncurses/dist/form/Makefile.in vendor/ncurses/dist/form/READ.ME vendor/ncurses/dist/form/f_trace.c vendor/ncurses/dist/form/fld_arg.c vendor/ncurses/dist/form/fld_attr.c vendor/ncurses/dist/form/fld_current.c vendor/ncurses/dist/form/fld_def.c vendor/ncurses/dist/form/fld_dup.c vendor/ncurses/dist/form/fld_ftchoice.c vendor/ncurses/dist/form/fld_ftlink.c vendor/ncurses/dist/form/fld_info.c vendor/ncurses/dist/form/fld_just.c vendor/ncurses/dist/form/fld_link.c vendor/ncurses/dist/form/fld_max.c vendor/ncurses/dist/form/fld_move.c vendor/ncurses/dist/form/fld_newftyp.c vendor/ncurses/dist/form/fld_opts.c vendor/ncurses/dist/form/fld_pad.c vendor/ncurses/dist/form/fld_page.c vendor/ncurses/dist/form/fld_stat.c vendor/ncurses/dist/form/fld_type.c vendor/ncurses/dist/form/fld_user.c vendor/ncurses/dist/form/form.h vendor/ncurses/dist/form/form.priv.h vendor/ncurses/dist/form/frm_cursor.c vendor/ncurses/dist/form/frm_data.c vendor/ncurses/dist/form/frm_def.c vendor/ncurses/dist/form/frm_driver.c vendor/ncurses/dist/form/frm_hook.c vendor/ncurses/dist/form/frm_opts.c vendor/ncurses/dist/form/frm_page.c vendor/ncurses/dist/form/frm_post.c vendor/ncurses/dist/form/frm_req_name.c vendor/ncurses/dist/form/frm_scale.c vendor/ncurses/dist/form/frm_sub.c vendor/ncurses/dist/form/frm_user.c vendor/ncurses/dist/form/frm_win.c vendor/ncurses/dist/form/fty_alnum.c vendor/ncurses/dist/form/fty_alpha.c vendor/ncurses/dist/form/fty_enum.c vendor/ncurses/dist/form/fty_generic.c vendor/ncurses/dist/form/fty_int.c vendor/ncurses/dist/form/fty_ipv4.c vendor/ncurses/dist/form/fty_num.c vendor/ncurses/dist/form/fty_regex.c vendor/ncurses/dist/form/headers vendor/ncurses/dist/form/llib-lform vendor/ncurses/dist/form/llib-lformt vendor/ncurses/dist/form/llib-lformtw vendor/ncurses/dist/form/llib-lformw vendor/ncurses/dist/form/modules vendor/ncurses/dist/include/Caps vendor/ncurses/dist/include/Caps-ncurses vendor/ncurses/dist/include/Caps.aix4 vendor/ncurses/dist/include/Caps.hpux11 vendor/ncurses/dist/include/Caps.keys vendor/ncurses/dist/include/Caps.osf1r5 vendor/ncurses/dist/include/Caps.uwin vendor/ncurses/dist/include/MKhashsize.sh vendor/ncurses/dist/include/MKkey_defs.sh vendor/ncurses/dist/include/MKncurses_def.sh vendor/ncurses/dist/include/MKparametrized.sh vendor/ncurses/dist/include/MKterm.h.awk.in vendor/ncurses/dist/include/Makefile.in vendor/ncurses/dist/include/capdefaults.c vendor/ncurses/dist/include/curses.h.in vendor/ncurses/dist/include/edit_cfg.sh vendor/ncurses/dist/include/hashed_db.h vendor/ncurses/dist/include/headers vendor/ncurses/dist/include/nc_alloc.h vendor/ncurses/dist/include/nc_mingw.h vendor/ncurses/dist/include/nc_panel.h vendor/ncurses/dist/include/nc_string.h vendor/ncurses/dist/include/nc_termios.h vendor/ncurses/dist/include/nc_tparm.h vendor/ncurses/dist/include/ncurses_cfg.hin vendor/ncurses/dist/include/ncurses_defs vendor/ncurses/dist/include/ncurses_dll.h.in vendor/ncurses/dist/include/ncurses_mingw.h vendor/ncurses/dist/include/term_entry.h vendor/ncurses/dist/include/termcap.h.in vendor/ncurses/dist/include/tic.h vendor/ncurses/dist/include/unctrl.h.in vendor/ncurses/dist/man/MKada_config.in vendor/ncurses/dist/man/MKncu_config.in vendor/ncurses/dist/man/MKterminfo.sh vendor/ncurses/dist/man/Makefile.in vendor/ncurses/dist/man/captoinfo.1m vendor/ncurses/dist/man/clear.1 vendor/ncurses/dist/man/curs_add_wch.3x vendor/ncurses/dist/man/curs_add_wchstr.3x vendor/ncurses/dist/man/curs_addch.3x vendor/ncurses/dist/man/curs_addchstr.3x vendor/ncurses/dist/man/curs_addstr.3x vendor/ncurses/dist/man/curs_addwstr.3x vendor/ncurses/dist/man/curs_attr.3x vendor/ncurses/dist/man/curs_beep.3x vendor/ncurses/dist/man/curs_bkgd.3x vendor/ncurses/dist/man/curs_bkgrnd.3x vendor/ncurses/dist/man/curs_border.3x vendor/ncurses/dist/man/curs_border_set.3x vendor/ncurses/dist/man/curs_clear.3x vendor/ncurses/dist/man/curs_color.3x vendor/ncurses/dist/man/curs_delch.3x vendor/ncurses/dist/man/curs_deleteln.3x vendor/ncurses/dist/man/curs_extend.3x vendor/ncurses/dist/man/curs_get_wch.3x vendor/ncurses/dist/man/curs_get_wstr.3x vendor/ncurses/dist/man/curs_getcchar.3x vendor/ncurses/dist/man/curs_getch.3x vendor/ncurses/dist/man/curs_getstr.3x vendor/ncurses/dist/man/curs_getyx.3x vendor/ncurses/dist/man/curs_in_wch.3x vendor/ncurses/dist/man/curs_in_wchstr.3x vendor/ncurses/dist/man/curs_inch.3x vendor/ncurses/dist/man/curs_inchstr.3x vendor/ncurses/dist/man/curs_initscr.3x vendor/ncurses/dist/man/curs_inopts.3x vendor/ncurses/dist/man/curs_ins_wch.3x vendor/ncurses/dist/man/curs_ins_wstr.3x vendor/ncurses/dist/man/curs_insch.3x vendor/ncurses/dist/man/curs_insstr.3x vendor/ncurses/dist/man/curs_instr.3x vendor/ncurses/dist/man/curs_inwstr.3x vendor/ncurses/dist/man/curs_kernel.3x vendor/ncurses/dist/man/curs_legacy.3x vendor/ncurses/dist/man/curs_memleaks.3x vendor/ncurses/dist/man/curs_mouse.3x vendor/ncurses/dist/man/curs_move.3x vendor/ncurses/dist/man/curs_opaque.3x vendor/ncurses/dist/man/curs_outopts.3x vendor/ncurses/dist/man/curs_overlay.3x vendor/ncurses/dist/man/curs_pad.3x vendor/ncurses/dist/man/curs_print.3x vendor/ncurses/dist/man/curs_printw.3x vendor/ncurses/dist/man/curs_refresh.3x vendor/ncurses/dist/man/curs_scanw.3x vendor/ncurses/dist/man/curs_scr_dump.3x vendor/ncurses/dist/man/curs_scroll.3x vendor/ncurses/dist/man/curs_slk.3x vendor/ncurses/dist/man/curs_sp_funcs.3x vendor/ncurses/dist/man/curs_termattrs.3x vendor/ncurses/dist/man/curs_termcap.3x vendor/ncurses/dist/man/curs_terminfo.3x vendor/ncurses/dist/man/curs_threads.3x vendor/ncurses/dist/man/curs_touch.3x vendor/ncurses/dist/man/curs_trace.3x vendor/ncurses/dist/man/curs_util.3x vendor/ncurses/dist/man/curs_variables.3x vendor/ncurses/dist/man/curs_window.3x vendor/ncurses/dist/man/default_colors.3x vendor/ncurses/dist/man/define_key.3x vendor/ncurses/dist/man/form.3x vendor/ncurses/dist/man/form_cursor.3x vendor/ncurses/dist/man/form_data.3x vendor/ncurses/dist/man/form_driver.3x vendor/ncurses/dist/man/form_field.3x vendor/ncurses/dist/man/form_field_attributes.3x vendor/ncurses/dist/man/form_field_buffer.3x vendor/ncurses/dist/man/form_field_info.3x vendor/ncurses/dist/man/form_field_just.3x vendor/ncurses/dist/man/form_field_new.3x vendor/ncurses/dist/man/form_field_opts.3x vendor/ncurses/dist/man/form_field_userptr.3x vendor/ncurses/dist/man/form_field_validation.3x vendor/ncurses/dist/man/form_fieldtype.3x vendor/ncurses/dist/man/form_hook.3x vendor/ncurses/dist/man/form_new.3x vendor/ncurses/dist/man/form_new_page.3x vendor/ncurses/dist/man/form_opts.3x vendor/ncurses/dist/man/form_page.3x vendor/ncurses/dist/man/form_post.3x vendor/ncurses/dist/man/form_requestname.3x vendor/ncurses/dist/man/form_userptr.3x vendor/ncurses/dist/man/form_variables.3x vendor/ncurses/dist/man/form_win.3x vendor/ncurses/dist/man/infocmp.1m vendor/ncurses/dist/man/infotocap.1m vendor/ncurses/dist/man/key_defined.3x vendor/ncurses/dist/man/keybound.3x vendor/ncurses/dist/man/keyok.3x vendor/ncurses/dist/man/legacy_coding.3x vendor/ncurses/dist/man/make_sed.sh vendor/ncurses/dist/man/man_db.renames vendor/ncurses/dist/man/manhtml.aliases vendor/ncurses/dist/man/manhtml.externs vendor/ncurses/dist/man/manlinks.sed vendor/ncurses/dist/man/menu.3x vendor/ncurses/dist/man/menu_attributes.3x vendor/ncurses/dist/man/menu_cursor.3x vendor/ncurses/dist/man/menu_driver.3x vendor/ncurses/dist/man/menu_format.3x vendor/ncurses/dist/man/menu_hook.3x vendor/ncurses/dist/man/menu_items.3x vendor/ncurses/dist/man/menu_mark.3x vendor/ncurses/dist/man/menu_new.3x vendor/ncurses/dist/man/menu_opts.3x vendor/ncurses/dist/man/menu_pattern.3x vendor/ncurses/dist/man/menu_post.3x vendor/ncurses/dist/man/menu_requestname.3x vendor/ncurses/dist/man/menu_spacing.3x vendor/ncurses/dist/man/menu_userptr.3x vendor/ncurses/dist/man/menu_win.3x vendor/ncurses/dist/man/mitem_current.3x vendor/ncurses/dist/man/mitem_name.3x vendor/ncurses/dist/man/mitem_new.3x vendor/ncurses/dist/man/mitem_opts.3x vendor/ncurses/dist/man/mitem_userptr.3x vendor/ncurses/dist/man/mitem_value.3x vendor/ncurses/dist/man/mitem_visible.3x vendor/ncurses/dist/man/ncurses.3x vendor/ncurses/dist/man/new_pair.3x vendor/ncurses/dist/man/panel.3x vendor/ncurses/dist/man/resizeterm.3x vendor/ncurses/dist/man/scr_dump.5 vendor/ncurses/dist/man/tabs.1 vendor/ncurses/dist/man/term.5 vendor/ncurses/dist/man/term.7 vendor/ncurses/dist/man/term_variables.3x vendor/ncurses/dist/man/terminfo.head vendor/ncurses/dist/man/terminfo.tail vendor/ncurses/dist/man/tic.1m vendor/ncurses/dist/man/toe.1m vendor/ncurses/dist/man/tput.1 vendor/ncurses/dist/man/tset.1 vendor/ncurses/dist/man/user_caps.5 vendor/ncurses/dist/man/wresize.3x vendor/ncurses/dist/menu/Makefile.in vendor/ncurses/dist/menu/READ.ME vendor/ncurses/dist/menu/eti.h vendor/ncurses/dist/menu/headers vendor/ncurses/dist/menu/llib-lmenu vendor/ncurses/dist/menu/llib-lmenut vendor/ncurses/dist/menu/llib-lmenutw vendor/ncurses/dist/menu/llib-lmenuw vendor/ncurses/dist/menu/m_attribs.c vendor/ncurses/dist/menu/m_cursor.c vendor/ncurses/dist/menu/m_driver.c vendor/ncurses/dist/menu/m_format.c vendor/ncurses/dist/menu/m_global.c vendor/ncurses/dist/menu/m_hook.c vendor/ncurses/dist/menu/m_item_cur.c vendor/ncurses/dist/menu/m_item_nam.c vendor/ncurses/dist/menu/m_item_new.c vendor/ncurses/dist/menu/m_item_opt.c vendor/ncurses/dist/menu/m_item_top.c vendor/ncurses/dist/menu/m_item_use.c vendor/ncurses/dist/menu/m_item_val.c vendor/ncurses/dist/menu/m_item_vis.c vendor/ncurses/dist/menu/m_items.c vendor/ncurses/dist/menu/m_new.c vendor/ncurses/dist/menu/m_opts.c vendor/ncurses/dist/menu/m_pad.c vendor/ncurses/dist/menu/m_pattern.c vendor/ncurses/dist/menu/m_post.c vendor/ncurses/dist/menu/m_req_name.c vendor/ncurses/dist/menu/m_scale.c vendor/ncurses/dist/menu/m_spacing.c vendor/ncurses/dist/menu/m_sub.c vendor/ncurses/dist/menu/m_trace.c vendor/ncurses/dist/menu/m_userptr.c vendor/ncurses/dist/menu/m_win.c vendor/ncurses/dist/menu/menu.h vendor/ncurses/dist/menu/menu.priv.h vendor/ncurses/dist/menu/mf_common.h vendor/ncurses/dist/menu/modules vendor/ncurses/dist/misc/Makefile.in vendor/ncurses/dist/misc/chkdef.cmd vendor/ncurses/dist/misc/cleantic.cmd vendor/ncurses/dist/misc/cmpdef.cmd vendor/ncurses/dist/misc/csort vendor/ncurses/dist/misc/emx.src vendor/ncurses/dist/misc/gen-pkgconfig.in vendor/ncurses/dist/misc/gen_edit.sh vendor/ncurses/dist/misc/magic vendor/ncurses/dist/misc/makedef.cmd vendor/ncurses/dist/misc/makellib vendor/ncurses/dist/misc/ncurses-config.in vendor/ncurses/dist/misc/ncurses.supp vendor/ncurses/dist/misc/run_tic.in vendor/ncurses/dist/misc/shlib vendor/ncurses/dist/misc/tdlint vendor/ncurses/dist/mk-0th.awk vendor/ncurses/dist/mk-1st.awk vendor/ncurses/dist/mk-2nd.awk vendor/ncurses/dist/mk-hdr.awk vendor/ncurses/dist/ncurses/Makefile.in vendor/ncurses/dist/ncurses/README vendor/ncurses/dist/ncurses/README.IZ vendor/ncurses/dist/ncurses/SigAction.h vendor/ncurses/dist/ncurses/base/MKkeyname.awk vendor/ncurses/dist/ncurses/base/MKlib_gen.sh vendor/ncurses/dist/ncurses/base/MKunctrl.awk vendor/ncurses/dist/ncurses/base/README vendor/ncurses/dist/ncurses/base/define_key.c vendor/ncurses/dist/ncurses/base/key_defined.c vendor/ncurses/dist/ncurses/base/keybound.c vendor/ncurses/dist/ncurses/base/keyok.c vendor/ncurses/dist/ncurses/base/legacy_coding.c vendor/ncurses/dist/ncurses/base/lib_addch.c vendor/ncurses/dist/ncurses/base/lib_addstr.c vendor/ncurses/dist/ncurses/base/lib_beep.c vendor/ncurses/dist/ncurses/base/lib_bkgd.c vendor/ncurses/dist/ncurses/base/lib_box.c vendor/ncurses/dist/ncurses/base/lib_chgat.c vendor/ncurses/dist/ncurses/base/lib_clear.c vendor/ncurses/dist/ncurses/base/lib_clearok.c vendor/ncurses/dist/ncurses/base/lib_clrbot.c vendor/ncurses/dist/ncurses/base/lib_clreol.c vendor/ncurses/dist/ncurses/base/lib_color.c vendor/ncurses/dist/ncurses/base/lib_colorset.c vendor/ncurses/dist/ncurses/base/lib_delch.c vendor/ncurses/dist/ncurses/base/lib_delwin.c vendor/ncurses/dist/ncurses/base/lib_dft_fgbg.c vendor/ncurses/dist/ncurses/base/lib_driver.c vendor/ncurses/dist/ncurses/base/lib_echo.c vendor/ncurses/dist/ncurses/base/lib_endwin.c vendor/ncurses/dist/ncurses/base/lib_erase.c vendor/ncurses/dist/ncurses/base/lib_flash.c vendor/ncurses/dist/ncurses/base/lib_freeall.c vendor/ncurses/dist/ncurses/base/lib_getch.c vendor/ncurses/dist/ncurses/base/lib_getstr.c vendor/ncurses/dist/ncurses/base/lib_hline.c vendor/ncurses/dist/ncurses/base/lib_immedok.c vendor/ncurses/dist/ncurses/base/lib_inchstr.c vendor/ncurses/dist/ncurses/base/lib_initscr.c vendor/ncurses/dist/ncurses/base/lib_insch.c vendor/ncurses/dist/ncurses/base/lib_insdel.c vendor/ncurses/dist/ncurses/base/lib_insnstr.c vendor/ncurses/dist/ncurses/base/lib_instr.c vendor/ncurses/dist/ncurses/base/lib_isendwin.c vendor/ncurses/dist/ncurses/base/lib_leaveok.c vendor/ncurses/dist/ncurses/base/lib_mouse.c vendor/ncurses/dist/ncurses/base/lib_move.c vendor/ncurses/dist/ncurses/base/lib_mvwin.c vendor/ncurses/dist/ncurses/base/lib_newterm.c vendor/ncurses/dist/ncurses/base/lib_newwin.c vendor/ncurses/dist/ncurses/base/lib_nl.c vendor/ncurses/dist/ncurses/base/lib_overlay.c vendor/ncurses/dist/ncurses/base/lib_pad.c vendor/ncurses/dist/ncurses/base/lib_printw.c vendor/ncurses/dist/ncurses/base/lib_redrawln.c vendor/ncurses/dist/ncurses/base/lib_refresh.c vendor/ncurses/dist/ncurses/base/lib_restart.c vendor/ncurses/dist/ncurses/base/lib_scanw.c vendor/ncurses/dist/ncurses/base/lib_screen.c vendor/ncurses/dist/ncurses/base/lib_scroll.c vendor/ncurses/dist/ncurses/base/lib_scrollok.c vendor/ncurses/dist/ncurses/base/lib_scrreg.c vendor/ncurses/dist/ncurses/base/lib_set_term.c vendor/ncurses/dist/ncurses/base/lib_slk.c vendor/ncurses/dist/ncurses/base/lib_slkatr_set.c vendor/ncurses/dist/ncurses/base/lib_slkatrof.c vendor/ncurses/dist/ncurses/base/lib_slkatron.c vendor/ncurses/dist/ncurses/base/lib_slkatrset.c vendor/ncurses/dist/ncurses/base/lib_slkattr.c vendor/ncurses/dist/ncurses/base/lib_slkclear.c vendor/ncurses/dist/ncurses/base/lib_slkcolor.c vendor/ncurses/dist/ncurses/base/lib_slkinit.c vendor/ncurses/dist/ncurses/base/lib_slklab.c vendor/ncurses/dist/ncurses/base/lib_slkrefr.c vendor/ncurses/dist/ncurses/base/lib_slkset.c vendor/ncurses/dist/ncurses/base/lib_slktouch.c vendor/ncurses/dist/ncurses/base/lib_touch.c vendor/ncurses/dist/ncurses/base/lib_ungetch.c vendor/ncurses/dist/ncurses/base/lib_vline.c vendor/ncurses/dist/ncurses/base/lib_wattroff.c vendor/ncurses/dist/ncurses/base/lib_wattron.c vendor/ncurses/dist/ncurses/base/lib_winch.c vendor/ncurses/dist/ncurses/base/lib_window.c vendor/ncurses/dist/ncurses/base/nc_panel.c vendor/ncurses/dist/ncurses/base/new_pair.c vendor/ncurses/dist/ncurses/base/resizeterm.c vendor/ncurses/dist/ncurses/base/safe_sprintf.c vendor/ncurses/dist/ncurses/base/sigaction.c vendor/ncurses/dist/ncurses/base/tries.c vendor/ncurses/dist/ncurses/base/use_window.c vendor/ncurses/dist/ncurses/base/version.c vendor/ncurses/dist/ncurses/base/vsscanf.c vendor/ncurses/dist/ncurses/base/wresize.c vendor/ncurses/dist/ncurses/build.priv.h vendor/ncurses/dist/ncurses/curses.priv.h vendor/ncurses/dist/ncurses/fifo_defs.h vendor/ncurses/dist/ncurses/llib-lncurses vendor/ncurses/dist/ncurses/llib-lncursest vendor/ncurses/dist/ncurses/llib-lncursestw vendor/ncurses/dist/ncurses/llib-lncursesw vendor/ncurses/dist/ncurses/llib-ltic vendor/ncurses/dist/ncurses/llib-ltict vendor/ncurses/dist/ncurses/llib-ltictw vendor/ncurses/dist/ncurses/llib-lticw vendor/ncurses/dist/ncurses/llib-ltinfo vendor/ncurses/dist/ncurses/llib-ltinfot vendor/ncurses/dist/ncurses/llib-ltinfotw vendor/ncurses/dist/ncurses/llib-ltinfow vendor/ncurses/dist/ncurses/modules vendor/ncurses/dist/ncurses/new_pair.h vendor/ncurses/dist/ncurses/report_offsets.c vendor/ncurses/dist/ncurses/tinfo/MKcaptab.awk vendor/ncurses/dist/ncurses/tinfo/MKcaptab.sh vendor/ncurses/dist/ncurses/tinfo/MKcodes.awk vendor/ncurses/dist/ncurses/tinfo/MKfallback.sh vendor/ncurses/dist/ncurses/tinfo/MKkeys_list.sh vendor/ncurses/dist/ncurses/tinfo/MKnames.awk vendor/ncurses/dist/ncurses/tinfo/MKuserdefs.sh vendor/ncurses/dist/ncurses/tinfo/README vendor/ncurses/dist/ncurses/tinfo/access.c vendor/ncurses/dist/ncurses/tinfo/add_tries.c vendor/ncurses/dist/ncurses/tinfo/alloc_entry.c vendor/ncurses/dist/ncurses/tinfo/alloc_ttype.c vendor/ncurses/dist/ncurses/tinfo/captoinfo.c vendor/ncurses/dist/ncurses/tinfo/comp_error.c vendor/ncurses/dist/ncurses/tinfo/comp_expand.c vendor/ncurses/dist/ncurses/tinfo/comp_hash.c vendor/ncurses/dist/ncurses/tinfo/comp_parse.c vendor/ncurses/dist/ncurses/tinfo/comp_scan.c vendor/ncurses/dist/ncurses/tinfo/db_iterator.c vendor/ncurses/dist/ncurses/tinfo/doalloc.c vendor/ncurses/dist/ncurses/tinfo/entries.c vendor/ncurses/dist/ncurses/tinfo/free_ttype.c vendor/ncurses/dist/ncurses/tinfo/getenv_num.c vendor/ncurses/dist/ncurses/tinfo/hashed_db.c vendor/ncurses/dist/ncurses/tinfo/home_terminfo.c vendor/ncurses/dist/ncurses/tinfo/init_keytry.c vendor/ncurses/dist/ncurses/tinfo/lib_acs.c vendor/ncurses/dist/ncurses/tinfo/lib_baudrate.c vendor/ncurses/dist/ncurses/tinfo/lib_cur_term.c vendor/ncurses/dist/ncurses/tinfo/lib_data.c vendor/ncurses/dist/ncurses/tinfo/lib_has_cap.c vendor/ncurses/dist/ncurses/tinfo/lib_kernel.c vendor/ncurses/dist/ncurses/tinfo/lib_longname.c vendor/ncurses/dist/ncurses/tinfo/lib_napms.c vendor/ncurses/dist/ncurses/tinfo/lib_options.c vendor/ncurses/dist/ncurses/tinfo/lib_print.c vendor/ncurses/dist/ncurses/tinfo/lib_raw.c vendor/ncurses/dist/ncurses/tinfo/lib_setup.c vendor/ncurses/dist/ncurses/tinfo/lib_termcap.c vendor/ncurses/dist/ncurses/tinfo/lib_termname.c vendor/ncurses/dist/ncurses/tinfo/lib_tgoto.c vendor/ncurses/dist/ncurses/tinfo/lib_ti.c vendor/ncurses/dist/ncurses/tinfo/lib_tparm.c vendor/ncurses/dist/ncurses/tinfo/lib_tputs.c vendor/ncurses/dist/ncurses/tinfo/lib_ttyflags.c vendor/ncurses/dist/ncurses/tinfo/make_hash.c vendor/ncurses/dist/ncurses/tinfo/make_keys.c vendor/ncurses/dist/ncurses/tinfo/name_match.c vendor/ncurses/dist/ncurses/tinfo/obsolete.c vendor/ncurses/dist/ncurses/tinfo/parse_entry.c vendor/ncurses/dist/ncurses/tinfo/read_entry.c vendor/ncurses/dist/ncurses/tinfo/read_termcap.c vendor/ncurses/dist/ncurses/tinfo/strings.c vendor/ncurses/dist/ncurses/tinfo/tinfo_driver.c vendor/ncurses/dist/ncurses/tinfo/trim_sgr0.c vendor/ncurses/dist/ncurses/tinfo/use_screen.c vendor/ncurses/dist/ncurses/tinfo/write_entry.c vendor/ncurses/dist/ncurses/trace/README vendor/ncurses/dist/ncurses/trace/lib_trace.c vendor/ncurses/dist/ncurses/trace/lib_traceatr.c vendor/ncurses/dist/ncurses/trace/lib_tracebits.c vendor/ncurses/dist/ncurses/trace/lib_tracechr.c vendor/ncurses/dist/ncurses/trace/lib_tracedmp.c vendor/ncurses/dist/ncurses/trace/lib_tracemse.c vendor/ncurses/dist/ncurses/trace/trace_buf.c vendor/ncurses/dist/ncurses/trace/trace_tries.c vendor/ncurses/dist/ncurses/trace/trace_xnames.c vendor/ncurses/dist/ncurses/trace/varargs.c vendor/ncurses/dist/ncurses/trace/visbuf.c vendor/ncurses/dist/ncurses/tty/MKexpanded.sh vendor/ncurses/dist/ncurses/tty/hardscroll.c vendor/ncurses/dist/ncurses/tty/hashmap.c vendor/ncurses/dist/ncurses/tty/lib_mvcur.c vendor/ncurses/dist/ncurses/tty/lib_tstp.c vendor/ncurses/dist/ncurses/tty/lib_twait.c vendor/ncurses/dist/ncurses/tty/lib_vidattr.c vendor/ncurses/dist/ncurses/tty/tty_update.c vendor/ncurses/dist/ncurses/widechar/charable.c vendor/ncurses/dist/ncurses/widechar/lib_add_wch.c vendor/ncurses/dist/ncurses/widechar/lib_box_set.c vendor/ncurses/dist/ncurses/widechar/lib_cchar.c vendor/ncurses/dist/ncurses/widechar/lib_erasewchar.c vendor/ncurses/dist/ncurses/widechar/lib_get_wch.c vendor/ncurses/dist/ncurses/widechar/lib_get_wstr.c vendor/ncurses/dist/ncurses/widechar/lib_hline_set.c vendor/ncurses/dist/ncurses/widechar/lib_in_wch.c vendor/ncurses/dist/ncurses/widechar/lib_in_wchnstr.c vendor/ncurses/dist/ncurses/widechar/lib_ins_wch.c vendor/ncurses/dist/ncurses/widechar/lib_inwstr.c vendor/ncurses/dist/ncurses/widechar/lib_key_name.c vendor/ncurses/dist/ncurses/widechar/lib_pecho_wchar.c vendor/ncurses/dist/ncurses/widechar/lib_slk_wset.c vendor/ncurses/dist/ncurses/widechar/lib_unget_wch.c vendor/ncurses/dist/ncurses/widechar/lib_vid_attr.c vendor/ncurses/dist/ncurses/widechar/lib_vline_set.c vendor/ncurses/dist/ncurses/widechar/lib_wacs.c vendor/ncurses/dist/ncurses/widechar/lib_wunctrl.c vendor/ncurses/dist/ncurses/widechar/widechars.c vendor/ncurses/dist/ncurses/win32con/gettimeofday.c vendor/ncurses/dist/ncurses/win32con/wcwidth.c vendor/ncurses/dist/ncurses/win32con/win_driver.c vendor/ncurses/dist/package/debian-mingw/changelog vendor/ncurses/dist/package/debian-mingw64/changelog vendor/ncurses/dist/package/debian/changelog vendor/ncurses/dist/package/mingw-ncurses.nsi vendor/ncurses/dist/package/mingw-ncurses.spec vendor/ncurses/dist/package/ncurses.map vendor/ncurses/dist/package/ncurses.spec vendor/ncurses/dist/package/ncursest.map vendor/ncurses/dist/package/ncursest.spec vendor/ncurses/dist/package/ncursestw.map vendor/ncurses/dist/package/ncursesw.map vendor/ncurses/dist/panel/Makefile.in vendor/ncurses/dist/panel/headers vendor/ncurses/dist/panel/llib-lpanel vendor/ncurses/dist/panel/llib-lpanelt vendor/ncurses/dist/panel/llib-lpaneltw vendor/ncurses/dist/panel/llib-lpanelw vendor/ncurses/dist/panel/modules vendor/ncurses/dist/panel/p_above.c vendor/ncurses/dist/panel/p_below.c vendor/ncurses/dist/panel/p_bottom.c vendor/ncurses/dist/panel/p_delete.c vendor/ncurses/dist/panel/p_hidden.c vendor/ncurses/dist/panel/p_hide.c vendor/ncurses/dist/panel/p_move.c vendor/ncurses/dist/panel/p_new.c vendor/ncurses/dist/panel/p_replace.c vendor/ncurses/dist/panel/p_show.c vendor/ncurses/dist/panel/p_top.c vendor/ncurses/dist/panel/p_update.c vendor/ncurses/dist/panel/p_user.c vendor/ncurses/dist/panel/p_win.c vendor/ncurses/dist/panel/panel.c vendor/ncurses/dist/panel/panel.h vendor/ncurses/dist/panel/panel.priv.h vendor/ncurses/dist/progs/MKtermsort.sh vendor/ncurses/dist/progs/Makefile.in vendor/ncurses/dist/progs/capconvert vendor/ncurses/dist/progs/clear.c vendor/ncurses/dist/progs/clear.sh vendor/ncurses/dist/progs/clear_cmd.c vendor/ncurses/dist/progs/clear_cmd.h vendor/ncurses/dist/progs/dump_entry.c vendor/ncurses/dist/progs/dump_entry.h vendor/ncurses/dist/progs/infocmp.c vendor/ncurses/dist/progs/modules vendor/ncurses/dist/progs/progs.priv.h vendor/ncurses/dist/progs/reset_cmd.c vendor/ncurses/dist/progs/reset_cmd.h vendor/ncurses/dist/progs/tabs.c vendor/ncurses/dist/progs/tic.c vendor/ncurses/dist/progs/toe.c vendor/ncurses/dist/progs/tparm_type.c vendor/ncurses/dist/progs/tparm_type.h vendor/ncurses/dist/progs/tput.c vendor/ncurses/dist/progs/transform.c vendor/ncurses/dist/progs/tset.c vendor/ncurses/dist/progs/tty_settings.c vendor/ncurses/dist/progs/tty_settings.h vendor/ncurses/dist/test/Makefile.in vendor/ncurses/dist/test/README vendor/ncurses/dist/test/aclocal.m4 vendor/ncurses/dist/test/background.c vendor/ncurses/dist/test/blue.c vendor/ncurses/dist/test/bs.6 vendor/ncurses/dist/test/bs.c vendor/ncurses/dist/test/cardfile.c vendor/ncurses/dist/test/chgat.c vendor/ncurses/dist/test/clip_printw.c vendor/ncurses/dist/test/color_content.c vendor/ncurses/dist/test/color_name.h vendor/ncurses/dist/test/color_set.c vendor/ncurses/dist/test/configure vendor/ncurses/dist/test/configure.in vendor/ncurses/dist/test/demo_altkeys.c vendor/ncurses/dist/test/demo_defkey.c vendor/ncurses/dist/test/demo_forms.c vendor/ncurses/dist/test/demo_keyok.c vendor/ncurses/dist/test/demo_menus.c vendor/ncurses/dist/test/demo_new_pair.c vendor/ncurses/dist/test/demo_panels.c vendor/ncurses/dist/test/demo_tabs.c vendor/ncurses/dist/test/demo_termcap.c vendor/ncurses/dist/test/demo_terminfo.c vendor/ncurses/dist/test/ditto.c vendor/ncurses/dist/test/dots.c vendor/ncurses/dist/test/dots_curses.c vendor/ncurses/dist/test/dots_mvcur.c vendor/ncurses/dist/test/dots_termcap.c vendor/ncurses/dist/test/dots_xcurses.c vendor/ncurses/dist/test/dump_window.c vendor/ncurses/dist/test/dump_window.h vendor/ncurses/dist/test/echochar.c vendor/ncurses/dist/test/edit_field.c vendor/ncurses/dist/test/edit_field.h vendor/ncurses/dist/test/extended_color.c vendor/ncurses/dist/test/filter.c vendor/ncurses/dist/test/firework.c vendor/ncurses/dist/test/firstlast.c vendor/ncurses/dist/test/foldkeys.c vendor/ncurses/dist/test/form_driver_w.c vendor/ncurses/dist/test/gdc.6 vendor/ncurses/dist/test/gdc.c vendor/ncurses/dist/test/hanoi.c vendor/ncurses/dist/test/hashtest.c vendor/ncurses/dist/test/inch_wide.c vendor/ncurses/dist/test/inchs.c vendor/ncurses/dist/test/ins_wide.c vendor/ncurses/dist/test/insdelln.c vendor/ncurses/dist/test/inserts.c vendor/ncurses/dist/test/key_names.c vendor/ncurses/dist/test/keynames.c vendor/ncurses/dist/test/knight.c vendor/ncurses/dist/test/linedata.h vendor/ncurses/dist/test/linux-color.dat vendor/ncurses/dist/test/list_keys.c vendor/ncurses/dist/test/listused.sh vendor/ncurses/dist/test/lrtest.c vendor/ncurses/dist/test/make-tar.sh vendor/ncurses/dist/test/mk-test.awk vendor/ncurses/dist/test/modules vendor/ncurses/dist/test/movewindow.c vendor/ncurses/dist/test/ncurses.c vendor/ncurses/dist/test/ncurses_tst.hin vendor/ncurses/dist/test/padview.c vendor/ncurses/dist/test/pair_content.c vendor/ncurses/dist/test/parse_rgb.h vendor/ncurses/dist/test/picsmap.c vendor/ncurses/dist/test/picsmap.h vendor/ncurses/dist/test/popup_msg.c vendor/ncurses/dist/test/popup_msg.h vendor/ncurses/dist/test/programs vendor/ncurses/dist/test/railroad.c vendor/ncurses/dist/test/rain.c vendor/ncurses/dist/test/redraw.c vendor/ncurses/dist/test/savescreen.c vendor/ncurses/dist/test/savescreen.sh vendor/ncurses/dist/test/sp_tinfo.c vendor/ncurses/dist/test/test.priv.h vendor/ncurses/dist/test/test_add_wchstr.c vendor/ncurses/dist/test/test_addchstr.c vendor/ncurses/dist/test/test_addstr.c vendor/ncurses/dist/test/test_addwstr.c vendor/ncurses/dist/test/test_arrays.c vendor/ncurses/dist/test/test_get_wstr.c vendor/ncurses/dist/test/test_getstr.c vendor/ncurses/dist/test/test_instr.c vendor/ncurses/dist/test/test_inwstr.c vendor/ncurses/dist/test/test_opaque.c vendor/ncurses/dist/test/test_setupterm.c vendor/ncurses/dist/test/test_sgr.c vendor/ncurses/dist/test/test_termattrs.c vendor/ncurses/dist/test/test_vid_puts.c vendor/ncurses/dist/test/test_vidputs.c vendor/ncurses/dist/test/testaddch.c vendor/ncurses/dist/test/testscanw.c vendor/ncurses/dist/test/tput-colorcube vendor/ncurses/dist/test/tput-initc vendor/ncurses/dist/test/tracemunch vendor/ncurses/dist/test/view.c vendor/ncurses/dist/test/widechars.h vendor/ncurses/dist/test/worm.c vendor/ncurses/dist/test/xterm-16color.dat vendor/ncurses/dist/test/xterm-256color.dat vendor/ncurses/dist/test/xterm-88color.dat Modified: vendor/ncurses/dist/ANNOUNCE ============================================================================== --- vendor/ncurses/dist/ANNOUNCE Wed Feb 19 16:44:16 2020 (r358124) +++ vendor/ncurses/dist/ANNOUNCE Wed Feb 19 16:58:06 2020 (r358125) @@ -1,4 +1,4 @@ - Announcing ncurses 6.1 + Announcing ncurses 6.2 Overview @@ -17,7 +17,7 @@ Overview * It is used in almost every system based on the Linux kernel (aside from some embedded applications). * It is used as the system curses library on OpenBSD, FreeBSD and - OSX. + MacOS. * It is used in environments such as Cygwin and MinGW. The first of these was EMX on OS/2 Warp. * It is used (though usually not as the system curses) on all of the @@ -26,611 +26,374 @@ Overview * It should work readily on any ANSI/POSIX-conforming unix. The distribution includes the library and support utilities, including - * [1]captoinfo, a termcap conversion tool - * [2]clear, utility for clearing the screen - * [3]infocmp, the terminfo decompiler - * [4]tabs, set tabs on a terminal - * [5]tic, the terminfo compiler - * [6]toe, list (table of) terminfo entries - * [7]tput, utility for retrieving terminal capabilities in shell + * captoinfo, a termcap conversion tool + * clear, utility for clearing the screen + * infocmp, the terminfo decompiler + * tabs, set tabs on a terminal + * tic, the terminfo compiler + * toe, list (table of) terminfo entries + * tput, utility for retrieving terminal capabilities in shell scripts - * [8]tset, to initialize the terminal + * tset, to initialize the terminal Full manual pages are provided for the library and tools. - The ncurses distribution is available at ncurses' [9]homepage: + The ncurses distribution is available at ncurses' homepage: - [10]ftp://ftp.invisible-island.net/ncurses/ or - [11]https://invisible-mirror.net/archives/ncurses/ . + ftp://ftp.invisible-island.net/ncurses/ or + https://invisible-mirror.net/archives/ncurses/ . It is also available via anonymous FTP at the GNU distribution site - [12]ftp://ftp.gnu.org/gnu/ncurses/ . + ftp://ftp.gnu.org/gnu/ncurses/ . Release Notes - These notes are for ncurses 6.1, released January 27, 2018. + These notes are for ncurses 6.2, released February 12, 2020. This release is designed to be source-compatible with ncurses 5.0 - through 6.0; providing extensions to the application binary interface + through 6.1; providing extensions to the application binary interface (ABI). Although the source can still be configured to support the - ncurses 5 ABI, the intent of the release is to provide extensions to - the ncurses 6 ABI: - * improve integration of tput and tset - * provide support for extended numeric capabilities. + ncurses 5 ABI, the reason for the release is to reflect improvements + to the ncurses 6 ABI and the supporting utility programs. There are, of course, numerous other improvements, listed in this announcement. - The release notes also mention some bug-fixes, but are focused on new - features and improvements to existing features since ncurses 6.0 - release. + The most important bug-fixes/improvements dealt with user-defined + capabilities in terminal descriptions. The release notes also mention + some other bug-fixes, but are focused on new features and improvements + to existing features since ncurses 6.1 release. Library improvements New features - The improved integration of tput and tset made only small changes to - the libraries. However, supporting extended numeric capabilities - required a few changes: - * The TERMINAL structure in is now opaque. Doing that - allowed making the structure larger, to hold the extended numeric - data. - A few applications required changes during development of - ncurses 6.1 because those applications misused the members of that - structure, e.g., directly modifying it rather than using - [13]def_prog_mode. - * Having made TERMINAL opaque (and because none of the library - functions use anything except a pointer to TERMINAL), it was - possible to increase the size of the structure, adding to the end. - Existing applications which were linked to the ncurses 6.0 - high-level (ncurses, ncursesw) and low-level (tinfo, tinfo) - libraries should not require re-linking since the binary interface - did not change, nor did the structure offsets with TERMINAL - change. - A few applications use the inner TERMTYPE structure's offsets to - refer to terminfo capabilities within that structure. Again, those - do not require modification because their offsets within TERMINAL - did not change. - * When configured for wide-characters, i.e., "ncursesw" the TERMINAL - structure is extended. - The new data in TERMINAL holds the same information as TERMTYPE, - but with larger numbers ("int" versus "short"). It is named - TERMTYPE2. - The library uses this structure internally in preference to - TERMTYPE, referring to TERMTYPE only to initialize it for - applications that use the capabilities defined in - * When configured for 8-bit (narrow) characters, the TERMTYPE2 - structure is not used. - * The updated application binary interface is 6.1.20171230 (used for - new [14]versioned symbols), although the interface changes were - developed several months previously. + There are several new features: + * O_EDGE_INSERT_STAY tells the form library to optionally delay + cursor movement on a field edge/boundary + * O_INPUT_FIELD extension to form library allows a dynamic field to + shrink if the new limit is smaller than the current field size. + * added exit_curses and exit_terminfo to replace internal symbols + for leak-checking. + * added curses_trace, to replace trace(). - The motivation for making this extension came from noticing that - [15]termcap applications could (though not [16]realistically) use - larger numbers than would fit in 16-bits, and the fact that the number - of color pairs for a 256-color xterm could not be expressed in - terminfo (i.e., 32767 versus 65536). Also, a few terminals support - direct-colors, which could use the extension. - - Generally speaking, applications that use internal details of a - library are unsupported. There was exactly one exception for ncurses: - the tack program used the internal details of TERMINAL, because it - provides an ncurses-specific feature for interactively modifying a - terminfo description and writing the updated description to a - text-file. It was possible to not only separate tack from these - [17]internal details of ncurses, but to generalize it so that the - program works with Unix curses (omitting the ncurses-specific - feature). That was released as [18]tack 1.08 in July 2017. - - While making changes to tack to eliminate its dependency upon ncurses - internals, the publicly-visible details of those internals were - reviewed, and some symbols were moved to private header files, while - others were marked explicitly as ncurses internals. Future releases of - ncurses may eliminate some of those symbols (such as those used by - tack 1.07) because they are neither part of the API or the ABI. - - Using the TERMTYPE2 extended numeric capabilities, it is possible to - support both color pair values and color values past 32767. Taking - compatibility into account, developers readily understand that neither - function signatures nor structure offsets change. Also, existing - functions have to operate with the extended numbers. Most of that work - is internal to the library. For the external interfaces, a hybrid - approach was used: - * X/Open Curses defined function prototypes such as wattr_set with - an unused parameter, for "future" use. After 25 years, the future - is here: ncurses uses the parameter to augment color pair values - as described in the [19]manual page. - * Other functions such as those defining color pairs did not have a - corresponding reserved parameter. For those, ncurses defines - extended versions such as init_extended_pair (versus init_pair), - init_extended_color (versus init_color). - Additionally, to improve performance other changes (and extensions) are provided in this release: - * Several new functions simplify management of large sets of color - pairs: reset_color_pairs, alloc_pair, find_pair and free_pair. - * New "RGB" extension capability for direct-color support is used to - improve performance of color_content. - * The internal colorpair_t is now a struct, eliminating an internal - 8-bit limit on colors - * Allocation for SCREEN's color-pair table starts small, grows on - demand up to the limit given in the terminal description. - * setcchar and getcchar now treat a negative color-pair as an error. + * mouse decoding now handles shift/control/alt logic when decoding + xterm's 1006 mode + * ncurses now defines a limit for wgetnstr, wgetn_wstr when length + is negative or "too large". + * reordered loop-limit checks in winsnstr in case the string has no + terminating null and only the number of characters is used. + * there is now no buffer-size limit when reading the $TERMCAP + variable. + * the $TERMCAP variable may be interpreted as a fallback to a + terminfo entry + * mvcur now decides whether to use hard-tabs, using xt, tbc and hts + as clues. + * extended colors are improved by modifying an internal call to + vid_puts to pass extended color pairs e.g., from tty_update.c and + lib_mvcur.c + * the initialization functions now avoid relying upon persistent + data for the result from getenv + * scrolling is improved: + + a limit check in newline_forces_scroll handles the case where + the row is inside scroll-margins, but not at the end. + + improved loop limits in _nc_scroll_window handle a case where + the scrolled data is a pad which is taller than the window. Other improvements - These are new or revised features: - * modify c++/etip.h.in to accommodate deprecation of throw and - throws in c++17 - * add new function unfocus_current_field - * add option to preserve leading whitespace in form fields - * add a macro for is_linetouched and adjust the function's return - value to make it possible for most applications to check for an - error-return. - * add build-time utility report_offsets to help show when the - various configurations of tinfo library are compatible or not. + These are revised features: + * used "const" in some prototypes rather than NCURSES_CONST where + X/Open Curses was updated to do this, e.g., wscanw, newterm, the + terminfo interface. Also use "const" for consistency in the + termcap interface, which was withdrawn by X/Open Curses in Issue 5 + (2007). As of Issue 7, X/Open Curses still lacks "const" for + certain return values, e.g., keyname. + * modified wbkgd and wbkgrnd to improve compatibility with SVr4 + curses, changing the way the window rendition is updated when the + background character is modified + * improved terminfo write/read by modifying the fourth item of the + extended header to denote the number of valid strings in the + extended string table (see term(5)). + * modified the initialization checks for mouse so that the + xterm+sm+1006 block will work with terminal descriptions not + mentioning xterm. These were done to limit or ultimately deprecate features: - * drop two symbols obsoleted in 2004: _nc_check_termtype, and - _nc_resolve_uses - * move _nc_tracebits, _tracedump and _tracemouse to curses.priv.h, - since they are not part of the suggested ABI6. - * mark some structs in form/menu/panel libraries as potentially - opaque without modifying API/ABI. - * ifdef'd header-file definition of mouse_trafo with - NCURSES_NOMACROS - * remove initialization-check for calling napms in the term-driver - configuration; none is needed. - * modify trace to avoid overwriting existing file + * deprecated safe-sprintf, since the vsnprintf function, which does + what was needed, was standardized long ago. + * marked vwprintw and vwscanw as deprecated; recommend using + vw_printw and vw_scanw, respectively. + * added deprecation warnings for internal functions called by older + versions of tack. + * removed unused _nc_import_termtype2 function. These are improvements to existing features: - * modify make_hash to allow building with address-sanitizer, - assuming that --disable-leaks is configured. - * move SCREEN field for use_tioctl data before the ncursesw fields, - and limit that to the sp-funcs configuration to improve termlib - compatibility - * modify db-iterator: - + ignore zero-length files in db-iterator; these are useful for - instance to suppress $HOME/.terminfo when not wanted. - + modify update_getenv to ensure that environment variables - which are not initially set will be checked later if an - application happens to set them - * modify _nc_outc_wrapper to use the standard output if the screen - was not initialized, rather than returning an error. - * improve checks for low-level terminfo functions when the terminal - has not been initialized. - * modify set_curterm to update ttytype[] data used by longname/p> - * modify _nc_get_screensize to allow for use_env and use_tioctl - state to be per-screen when sp-funcs are configured, better - matching the behavior when using the term-driver configuration. - * remove an early-return from _nc_do_color, which can interfere with - data needed by bkgd when ncurses is configured with extended - colors - * incorporate A_COLOR mask into COLOR_PAIR, in case user application - provides an out-of-range pair number - * modify logic for endwin-state to be able to detect the case where - the screen was never initialized, using that to trigger a flush of - ncurses' buffer for mvcur, e.g., in the sample program dots_mvcur - for the term-driver configuration. + * check parameter of set_escdelay, return ERR if negative. + * check parameter of set_tabsize, return ERR if not greater than + zero + * correct a status-check in _nc_read_tic_entry() so that if reading + a hex/b64 $TERMINFO, and the $TERM does not match, fall-through to + the compiled-in search list. + * amend check for repeat_char to handle a case where setlocale() was + called after initscr + * move macro for is_linetouched inside NCURSES_NOMACROS ifndef. + * use _nc_copy_termtype2 rather than direct assignment in setupterm, + in case it is called repeatedly using fallback terminfo + descriptions + * improve workaround for Solaris wcwidth versus line-drawing + characters + * add checks in repair_subwindows to keep the current position and + scroll-margins inside the resized subwindow. + * correct a buffer-limit in write_entry.c for systems that use + caseless filenames. + * improved build-time utility report_offsets: + + add categories, e.g., "w" for wide-character, "t" for threads + to make the report more readable. Reorganized the structures + reported to make the categories more apparent. + + add NCURSES_GLOBALS and NCURSES_PRESCREEN to report to show + how similar the different libtinfo configurations are. + * modified some header files to ensure that those include necessary + files except for the previously-documented cases + * added some traces in initialization to show whether a fallback + entry is used. + * made minor optimization to reduce calls to _nc_reserve_pairs These are corrections to existing features: - * fixes for writing extended color pairs in putwin. - * modify no-leaks code for lib_cur_term.c to account for the tgetent - cache. - * amend handling of the repeat_char capability in EmitRange to avoid - scope creep: translate the character to the alternate character - set when the alternate character set is enabled, and do not use - repeat_char for characters past 255. - * improve wide-character implementation of myADDNSTR in - frm_driver.c, which was inconsistent with the normal - implementation. - * modify winnstr and winchnstr to return error if the output pointer - is null, as well as adding a null pointer check of the window - pointer for better compatibility with other implementations. - * modify setupterm to save original tty-modes so that erasechar - works as expected. Also modify _nc_setupscreen to avoid redundant - calls to get original tty-modes. - * modify wattr_set and wattr_get to return ERR if win-parameter is - null, as documented. - * correct order of initialization for traces in use_env and - use_tioctl versus first _tracef calls. - * correct parameters for copywin call in _nc_Synchronize_Attributes - * flush the standard output in _nc_flush for the case where SP is - zero, e.g., when called via putp. This fixes a scenario where - "tput flash" did not work after changes in 20130112. - * amend internal use of tputs to consistently use the number of - lines affected, e.g., for insert/delete character operations. - While merging terminfo source early in 1995, several descriptions - used the "*" proportional delay for these operations, prompting a - change in doupdate. - * correct return-value of extended putwin. - * double-width multibyte characters were not counted properly in - winsnstr and wins_nwstr. - * amend fix for _nc_ripoffline from 20091031 to make test/ditto.c - work in threaded configuration. - * modify _nc_viscbuf2 and _tracecchar_t2 to trace wide-characters as - a whole rather than their multibyte equivalents. - * minor fix in wadd_wchnstr to ensure that each cell has nonzero - width. - * move PUTC_INIT calls next to wcrtomb calls, to avoid carry-over of - error status when processing Unicode values which are not mapped. - * add missing assignment in lib_getch.c to make notimeout work + * fix a special case in PutAttrChar where a cell is marked as + alternate-character set, but the terminal does not actually + support the given graphic character. This would happen in an older + terminal such as vt52, which lacks most line-drawing capability. + * corrected flag for "seq" method of db 1.8.5 interface, needed by + toe on some of the BSDs. + * modify comparison in make_hash.c to correct a special case in + collision handling for Caps-hpux11 + * add extended_slk_color{,_sp} symbols to the appropriate + package/*.{map,sym} files + * modify lib_setup to avoid calling pthread_self() without first + verifying that the address is valid, i.e., for weak symbols + * add a couple of broken-linker symbols to the list of versioned + symbols to help with link-time optimization versus weak symbols. Program improvements - While reviewing user feedback, it became apparent that the differences - between [20]reset (an alias for tset) and "tput reset" were confusing: - * one ([21]tset) updated the terminal modes, but used only part of - the terminfo capabilities for initialization, while - * the other ([22]tput) used all of the terminal capabilities while - neglecting the terminal modes. + Several improvements were made to the utility programs: - On further investigation, it turned out that the differences were - largely an accident due to the way those programs had evolved. + clear - This release eliminates the unnecessary differences, using the same - approach for tput's init (initialization), reset and clear operations - as the separate [23]reset and [24]clear programs. Doing this does not - change the command-line options; existing scripts are unaffected. + + improved logic for clearing with the E3 extension, in case + the terminal scrolls content onto its saved-lines before + actually clearing the display, by clearing the saved-lines + after clearing the display - These are the user-visible changes for the three programs (tput, tset - and clear): - * add the terminal-mode parts of "reset" (aka tset) to the "tput - reset" command, making the two almost the same except for - window-size. - * improve tput's check for being called as "init" or "reset" to - allow for transformed names. - * add "clear" as a possible link/alias to tput. - * amend changes for tput to reset tty modes to "sane" if the program - is run as "reset", like tset. Likewise, ensure that tset sends - either reset- or init-strings. - * add -x option to clear/tput to make the E3 extension optional - * add functionality of "tset -w" to tput, like the "-c" feature this - is not optional in tput. - * add options -T and -V to clear command for compatibility with - tput. - * drop long-obsolete "-n" option from tset. - * modify tset's assignment to TERM in its output to reflect the name - by which the terminal description is found, rather than the - primary name. That was an unnecessary part from the initial - conversion of tset from termcap to terminfo. The termcap library - in 4.3BSD did this to avoid using the short 2-character name - * remove a restriction in tput's support for termcap names which - omitted capabilities normally not shown in termcap translations - * add usage message to clear command - * improve usage messages for tset and tput. + infocmp - Other user-visible improvements and new features include: - * modify tic/infocmp display of numeric values to use hexadecimal - when they are "close" to a power of two, making the result more - readable. - * add "-W" option to tic/infocmp to force long strings to wrap. - + This is in addition to the "-w" option which attempts to fit - capabilities into a given line-length. - + If "-f" option splits line, do not further split it with - "-W". - + Begin a new line when adding "use=" after a wrapped line. - * add "-q" option to infocmp to suppress the "Reconstructed from" - comment from the header, and a corresponding option to tic to - suppress all comments from the "tic -I" output. - * Sorted options in usage message for infocmp, to make it simpler to - see unused letters. - * Updated usage message for tic, adding "-0" option. - * add infocmp/tic "-Q" option, which allows one to dump the compiled - form of the terminal entry, in hexadecimal or base64: - + A "b64:" prefix in the TERMINFO variable tells the terminfo - reader to use base64 according to RFC-3548 as well as - RFC-4648 url/filename-safe format. - + A "hex:" prefix tells the terminfo reader to accept - hexadecimal data as generated by "infocmp -0qQ1". + + omit filtering of "OTxx" names which are used for obsolete + capabilities, when the output is sorted by long-names. This + change helps when making a table of the short/long capability + names. - Other less-visible improvements and new features include: - * modify utility headers such as tic.h to make it clearer which are - externals that are used by tack. - * add "reset" to list of programs whose names might change in - manpages due to program-transformation configure options. - * modify "-T" option of clear and tput to call use_tioctl to obtain - the operating system's notion of the screensize if possible. - * add check in tput for init/reset operands to ensure those use a - terminal. - * modify programs clear, tabs, tput and tset to pass the actual tty - file descriptor to setupterm rather than the standard output or - error, making padding work. - * change tset's initialization to allow it to get settings from the - standard input as well as /dev/tty, to be more effective when - output or error are redirected. - * amend check in tput, tabs and clear to allow those to use the - database-only features in cron if a "-T" option gives a suitable - terminal name. - * improve error message from tset/reset when both stderr/stdout are - redirected to a file or pipe. + tic - Several of the less apparent features deal with translation of - terminfo to termcap (and the reverse), with corresponding checks by - tic: - * modify check in fmt_entry to handle a cancelled reset string. Make - similar fixes in other parts of dump_entry.c and tput.c - * correct read of terminfo entry in which all strings are absent or - explicitly cancelled. Before this fix, the result was that all - were treated as only absent. - * modify infocmp to suppress mixture of absent/cancelled - capabilities that would only show as "NULL, NULL", unless the "-q" - option is used, e.g., to show "-, @" or "@, -". - * correct a warning from tic about keys which are the same, to skip - over missing/cancelled values. - * add check in tic for use of bold, etc., video attributes in the - color capabilities, accounting whether the feature is listed in - ncv. - * add check in tic for unnecessary use of "2" to denote a shifted - special key. - * improve check in tic for delays by also warning about beep/flash - when a delay is not embedded, or if those use the VT100 reverse - video escape without using a delay. - * improve checks in trim_sgr0, comp_parse.c and parse_entry.c, for - cancelled string capabilities. - * add check in tic for some syntax errors of delays, as well as use - of proportional delays for non-line capabilities. - * add check in tic for conflict between ritm, rmso, rmul versus - sgr0. - * add check in _nc_parse_entry for invalid entry name, setting the - name to "invalid" to avoid problems storing entries. - * improve _nc_tparm_analyze, using that to extend the checks made by - tic for reporting inconsistencies between the expected number of - parameters for a capability and the actual. - * remove tic warning about "^?" in string capabilities, which was - marked as an extension; however all Unix implementations support - this and X/Open Curses does not address it. On the other hand, - [25]BSD termcap did not support this feature (until the - [26]mid-1990s). - in _nc_infotocap, added a check to ensure that terminfo "^?" is - not written to termcap. - * modify sscanf calls in _nc_infotocap for patterns "%{number}%+%c" - and "%'char'%+%c" to check that the final character is really "c", - avoiding a case in icl6404 which cannot be converted to termcap. - * in _nc_tic_expand and _nc_infotocap, improved string-length check - when deciding whether to use "^X" or "\xxx" format for control - characters, to make the output of tic/infocmp more predictable. - * limited termcap "%d" width to 2 digits on input, and use "%2" in - preference to "%02" on output. - * correct terminfo/termcap conversion of "%02" and "%03" into "%2" - and "%3"; the result repeated the last character. + + added check for consistent alternate character set + capabilities. + + added check for paired indn/rin. + + added check for terminals with parm_dch vs parm_ich. + + added check for the case where setf/setb are given using + different strings, but provide identical results to + setaf/setab. + + corrected check for ich1. + + changed a too-large terminal entry from a fatal error to a + warning. + toe + + + ignores any hex/b64 $TERMINFO value in the list of terminfo + databases. + + tset + + + replace check in reset command for obsolete "pt" capability + using tbc and hts capabilities as clues + + modify reset to allow for tabstops at intervals other than 8. + + change reset's behavior for margins to simply clear + soft-margins if possible, rather than clearing and then + setting them according to the terminal's width. + + tput + + + add "x" to getopt string so that "tput -x clear" works. + + Several changes were made to the generated ncurses*config scripts and + the analogous ".pc" files to reduce differences between the + configurations they report: + * modified the ncurse*-config and pc-files to more closely match for + the -I and -l options. + * filtered out linker-specs from the --libs report. + * amended the ncurses*-config and pc-files to take into account the + rpath hack which differed between those files. + * modified generated ncurses*config and ncurses.pc, ncursesw.pc, + etc., to list helper libraries such as gpm for static linking. + Examples - Along with the library and utilities, many improvements were made to - the [27]ncurses-examples. + Along with the library and utilities, improvements were made to the + ncurses-examples. Most of this activity aimed at improving the + test-packages. A few changes are more generally useful, e.g., for the + main ncurses test-program, and for analyzing traces using the + tracemunch script: + * improve recovery from error when reading command-character in + test/ncurses.c, showing the relevant error message and not exiting + on EINTR. + * improve tracemunch, by keeping track of TERMINAL* values, and if + tracing was first turned on after initialization, attempt to show + distinct screen, window and terminal names anyway. + * modify tracemunch to accept filename parameters in addition to use + as a pipe/filter. + * update tracemunch to work with perl 5.26.2, which changed the + rules for escaping regular expressions. + * add some checks in tracemunch for undefined variables. + * modify TurnOn/TurnOff macros (in lib_vidattr.c and lib_vid_attr.c) + to avoid expansion of "CUR" in trace. - These changes were made to demonstrate new extensions in ncurses: - * add demo_new_pair program, to demonstrate [28]alloc_pair, - [29]find_pair and [30]free_pair functions. - This program iterates over the possible color combinations, - allocating or initializing color pairs. For best results, choose - screen-width dividing evenly into the number of colors. e.g., + There are other new demo/test programs and reusable examples: - 32x64,32x128 256 colors - 24x44,24x88 88 colors - 32x64,24x128 16 colors + color_content + Demonstrate the color_content and extended_color_content + functions. - * add extended_color program, like the older color_set program, but - using the extended color functions, with and without the - SP-functions interface. - * add picsmap program to fill in some testing issues not met by - dots, using this as the third example in a comparison of the - [31]ncurses versus slang libraries. - The program can directly read X bitmap and pixmap files, - displaying a picture. It can read other image files using - ImageMagick's convert program to translate the image into text. - For 16-, 88- and 256-color terminal descriptions, picsmap can load - a palette file which tells it which color palette entries to use. - For direct-colors, the terminal descriptions use the RGB extension - capability. + demo_tabs + A simple demo of tabs in curses. - There are other new example programs and a few scripts: - * add dots_xcurses program to illustrate a different approach used - for extended colors which can be contrasted with dots_curses. - * add list_keys program show function keys for one or more terminal - descriptions. It uses ncurses's convention of modifiers for - special keys, based on xterm. - * add padview program, to compare pads with direct updates in the - view program. - * add sp_tinfo program to exercise the SP-functions extension of the - low-level terminfo library. - * add test-programs for termattrs and term_attrs functions. - * add test_sgr program to exercise all combinations of the sgr - capability. - * add tput-colorcube demo script, imitating xterm's 88- and - 256-color scripts using tput. - * add tput-initc script to demonstrate how tput may be used to - initialize a color palette from a data file. + dump_window + A portable curses screen-dump, used to compare ncurses screen + contents with Solaris. + pair_content + Demonstrate the pair_content and extended_pair_content + functions. + + report_hashing + Check hash-tables used for terminfo and termcap names. + + parse_rgb + Sample implementation of the ncurses RGB extension from + user_caps.5, used in picsmap and savescreen programs. + A variety of improvements were made to existing programs, both new features as well as options added to make the set of programs more consistent. + * add "-l" option to test/background, to dump screen contents in a + form that lets different curses implementations be compared. + * add "@" command to test/ncurses F-test, to allow rapid jump to + different character pages. + * added enum, regex examples to test/demo_forms + * amend Scaled256() macro in test/picsmap.c to cover the full range + 0..1000 + * corrected pathname used in Ada95 sample programs for explain.txt, + to work with test-packages, and used an awk script to split the + resulting pathname when it would be too long for a single line. + * ignore interrupted system-call in test/ncurses's command-line, + e.g., if the terminal were resized. + * improved ifdef's for TABSIZE variable, to help with AIX/HPUX + ports. - The ncurses program is the largest; a proportionately large number of - changes were made to it: - * modify a/A screens to make exiting on an escape character depend - on the start of keypad and timeout modes, to allow better testing - of function-keys. - add "t" toggle for notimeout function. - * modify layout of b/B screens to allow for additional annotation on - the right margin; some terminals with partial support did not - display well. - * modify c/C screens to allow for extended color pairs. - add z/Z zoom feature to make extended color pairs easier to test. - modify test-screens to take advantage of wide screens, reducing - the number of lines used for 88- and 256-colors. - * modify "d" edit-color screen to optionally read xterm color - palette directly from terminal, as well as handling KEY_RESIZE and - screen-repainting with control/L and control/R. - * add examples to "F" screen for WACS_D_PLUS and WACS_T_PLUS. - * improve "g" screen, correcting ifdef which made the legend not - reflect changes to keypad- and scroll-modes. Added check for - return-value of putwin. - * make "s" test easier to understand which subtests are available - add a corresponding "S" wide-character overlap test-screen. - * add "v" screen to show baudrate and other values. - - These changes were made to the other examples: - * modify blue program to use Unicode values for card-glyphs when - available, as well as improving the check for CP437 and CP850. - * improve demo_menus program, allowing mouse-click on the - menu-headers to switch the active menu. This requires a new - extension option O_MOUSE_MENU to tell the menu driver to put mouse - events which do not apply to the active menu back into the queue - so that the application can handle the event. - * correct logic in demo_terminfo program for "-f" option - * modify ditto program to allow $XTERM_PROG environment variable to - override "xterm" as the name of the program to run in the threaded - configuration. - * add several options to the "dots" test-programs. - * modify filter program: - + illustrate an alternative to getnstr, that polls for input - while updating a clock on the right margin as well as - responding to window size-changes. - + adapt logic used in [32]dialog [33]"--keep-tite" option for - filter program as the "-a" option. When set, filter attempts - to suppress the alternate screen. - * modify knight program to provide the "slow" solution for small - screens using "R", noting that Warnsdorf's method is easily done - with "a". - * modify the savescreen program to add test patterns that exercise - 88-, 256-, etc., colors. - * add options to test_arrays, for selecting termcap vs terminfo, - etc. - * modify the view program: - + expand tabs using the ncurses library rather than in the - test-program. - + eliminate the "-n" option by simply reading the whole file. - + implement page up/down commands. - + remove the very old SIGWINCH example; just use KEY_RESIZE. - * improve animation in xmas program by adding a time-delay in - blinkit. - * modify several test-programs which call use_default_colors to - consistently do this only if the "-d" option is given. - * modify the install-rule for ncurses-examples to put the data files - in the data directory, e.g., /usr/share/ncurses-examples. - * modify several test programs to use new popup_msgs function, - adapted from the help-screen used in the edit_field program. - * modify test data for xterm palettes to use the newer - color4/color12 values. - * improve the tracemunch script: - + show screenXX pointers and thread identifiers as names. - + chang address-parameters of add_wch, color_content and - pair_content to dummy parameters. - Terminal database There are several new terminal descriptions: - dumb-emacs-ansi, dvtm, dvtm-256color, fbterm, iterm2, linux-m1 - minitel entries, putty-noapp, viewdata, and vt100+4bsd - building-block. + alacritty, domterm, kitty, mintty, mintty-direct, ms-terminal, + n7900, nsterm-build309, nsterm-direct, screen5, ti703, ti707, + ti703-w, ti707-w vscode, vscode-direct, xterm-mono, xterm.js - xterm+noalt, xterm+titlestack, xterm+alt1049, xterm+alt+title - building blocks and xterm+direct, xterm+indirect, xterm-direct. - from [34]xterm patch #331. - - several other "-direct" descriptions to address the differences of - other terminal emulators versus xterm-direct. - There are many changes to existing terminal descriptions. Some were updates to several descriptions: - * use xterm+sm+1006 in several terminal descriptions which were - validated as supporting the extended mouse feature for their - respective terminal emulators. - * corrected sgr/sgr0 strings in a few cases reported by tic, making - those correspond to the non-sgr settings where they differ, but - otherwise use ECMA-48 consistently. - * add 0.1sec mandatory delay to flash capabilities using the VT100 - reverse-video control + * use ansi+rep in a dozen places + * add rs1 to konsole, mlterm + * improve several flash capabilities with trailing mandatory delays + * drop ich1 from rxvt-basic, Eterm and mlterm to improve + compatibility with old non-curses programs + * add/use xterm+keypad in xterm-new + * use xterm+sl-twm for consistency, nine places + * improve xm example in xterm+x11mouse and xterm+sm_1006. while others affected specific descriptions. These were retested, to - take into account new/undocumented changes by their developers: + take into account changes by their developers: - iterm, minitel, st, viewdata, nsterm + terminator, st - while these are specific fixes based on user reports, or warnings from - tic: + while these are specific fixes based on reviewing documentation, user + reports, or warnings from tic: - [35]ansi building blocks + adds200: - + restored rmir/smir in ansi+idc to better match original - ansiterm+idc, add alias ansiterm + + fix typo - [36]icl6402 + gnome-256color - + corrected missing comma-separator between string capabilities - in icl6402 and m2-nam + + base entry on "gnome", not "vte", for consistency - [37]interix + interix - + updated using tack and SFU with Windows 7 Ultimate. - + used ^? for kdch1 + + trim unnecessary setf/setb - [38]linux + linux-16color - + made linux3.0 entry the default linux entry - + modify linux2.6 entry to improve line-drawing so that the - linux3.0 entry can be used in non-UTF-8 mode - + omitted selection of ISO-8859-1 for G0 in enacs capability - from linux2.6 entry, to avoid conflict with the user-defined - mapping. The reset feature uses ISO-8859-1 in any case. - + modify flash capability for linux and wyse entries to put the - delay between the reverse/normal escapes rather than after - + modify linux-16color to not mask dim, standout or reverse - with the ncv capability + + accommodate Linux console driver incompatibility introduced + in early 2018 - [39]pccon entries + nsterm-256color: - + fixed some inconsistencies in the pccon* entries - + add bold to pccon+sgr+acs and pccon-base - + add keys f12-f124 to pccon+keys + + add nsterm-build309 to replace nsterm-256color, assigning the + latter as an alias of nsterm, to make mouse work with + nsterm-256color - [40]tmux + regent40: - + corrected sgr string, which used screen's "standout" code - rather than the standard code. - + add settings corresponding to xterm-keys option to reflect - upcoming change to make that option "on" by default - + uncanceled Ms + + renumber function-keys to match manual - [41]vt100 + regent60: - + modify vt100 rs2 string to reset vt52 mode and scrolling - regions - + corrected rs2 string for vt100-nam - + made minor fixes for vt100+4bsd, e.g., delay in sgr for - consistency + + add cd (clr_eos) + + corrected acsc + + add shifted function-keys - [42]vte + tvi950: - + moved SGR 24 and 27 from vte-2014 to vte-2012 - + add a few capabilities fixed in recent VTE development + + added function-key definitions to agree with Televideo 950 + manual + + corrected acsc + + remove bogus kf0 + + add bel - [43]xterm + tvi955: - + add rep to xterm-new, available since [44]late 1996. - + modify xterm+256color and xterm+256setaf to use correct - number of color pairs. - + modify rs1 for xterm-16color, xterm-88color and - xterm-256color to reset palette using oc string as in linux - entry. - + add rs1 capability to xterm-256color - + add oc capability to xterm+256color, allowing palette reset - for xterm - + add op to xterm+256setaf - + modify xterm-r5, xterm-r6 and xterm-xf86-v32 to use xterm+kbs - to match [45]xterm #272, reflecting packager's changes - + used ANSI reply for u8 in xterm-new, to reflect vt220-style - responses that could be returned. - + made xterm-pcolor sgr consistent with other capabilities + + fix typo + vi200: + + + add acsc string, including right/down-arrow + + wy50: + + + corrected acsc + + wy50 and wy60: + + + add shifted function-keys as kF1 to kF16 + + xterm+x11hilite: + + + eliminate unused p5 parameter. + A few entries use extensions (user-defined terminal capabilities): - * add rmxx/smxx ECMA-48 strikeout extension to tmux and xterm-basic - * used RGB capability in new *-direct entries to denote direct-color - feature. + * use xterm+sm+1006 (aka "SGR 1006 mouse") for konsole-base and + putty + * add Smol/Rmol user-defined capability to tmux and vte-2018 + * add Smulx user-defined capability to tmux, vte-2018 Documentation @@ -639,273 +402,279 @@ Release Notes * attempts to improve the description of features which users have found confusing * fills in overlooked descriptions of features which were described - in the [46]NEWS file but treated sketchily in manual pages. + in the NEWS file but treated sketchily in manual pages. - In particular, - * Since the underlying features for [47]tset, [48]tput, and - [49]clear have been better integrated, the documentation now - includes information on how those tools evolved. - In addition to explaining the improved integration of the tools, - the manual pages made it easier to see how the tools are similar - and how they are different. - * The addch manual page has additional information on - [50]portability and differences from other implementations. - * The discussion of color-pairs in the attributes manual page is - improved in its [51]history section. - * The documentation of the chtype, cchar_t types and the attribute - values which can be stored in those types, in particular the - [52]history and [53]portability sections of the attributes manual - page, has been improved. - * improve discussion of [54]portability in the mouse manual. - * The pad manual page has a section on the [55]origin and - portability of pads. - * Differences between SVr4 and X/Open Curses soft-keys are discussed - in a new section on [56]portability. - * There are updated/improved notes on portability in the - [57]resizeterm and [58]wresize manual pages. - In addition to providing background information to explain these features and show how they evolved, there are corrections, clarifications, etc.: - * add note in the [59]addch manual about line-drawing when it - depends upon UTF-8. - * improve discussion of line-drawing characters in the [60]add_wch - manual. - * explain in [61]clear's manual page that it writes to the standard - output. - * improve description of [62]endwin. - * improve discussion of field validation in the [63]form driver - manual page. - * clarify the use of wint_t vs wchar_t in [64]get_wstr manual page. - * clarify in the [65]getch manual that the keypad mode affects an - application's ability to read KEY_MOUSE codes, but does not affect - KEY_RESIZE. - trim some obsolete/incorrect wording about EINTR from the getch - manual page - improve manual pages for [66]getch and [67]get_wch to point out - that they might return user-defined values which have no - predefined names in - * improve description of the -R option in the [68]infocmp manual - page - * clarify in the [69]resizeterm manual page how KEY_RESIZE is pushed - onto the input stream. - * document return value of [70]use_extended_names - * document differences in [71]ESCDELAY versus AIX's implementation - in the variables manual page. - * The _nc_free_tinfo function is now documented in the - [72]memory-leaks manual page, because it could be used in tack for - memory-leak checking. - * add a note to the [73]tic manual page about -W versus -f options. - * improve terminfo manual description of [74]terminfo syntax. - improve terminfo manual page discussion of [75]control- and - graphics- characters. - improve [76]color-handling section in terminfo manual page - * clarify description in [77]tput manual page regarding support for - termcap names - update [78]tput manual page to reflect changes to manipulate - terminal modes by sharing functions with tset. - * clarify in manual pages that the optional verbose option level of - [79]tic and [80]infocmp is available only when ncurses is - configured for tracing. - * improve manual page description of [81]tset/reset versus - window-size. - * improve description of [82]tgoto parameters + * Corrections: + + correct error-returns listed in manual pages for a few form + functions + + corrected prototypes in several manpages using script to + extract those in compilable form. + + fix typo in term.5, improve explanation of format + * Clarify in manual pages that vwprintw and vwscanw are obsolete. + They have not been part of X/Open Curses since 2007. + * New/improved history and portability sections: + + curs_addch.3x gives some background for ACS symbols. + + curs_getcchar.3x explains a difference between ncurses and + X/Open Curses. + + curs_getstr.3x gives historical/portability background for + the length parameter of wgetnstr. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Feb 19 17:00:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9FE88240140; Wed, 19 Feb 2020 17:00:22 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N3r648vcz4GZ1; Wed, 19 Feb 2020 17:00:22 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 82A8FBE90; Wed, 19 Feb 2020 17:00:22 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JH0MYY076356; Wed, 19 Feb 2020 17:00:22 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JH0MgW076352; Wed, 19 Feb 2020 17:00:22 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191700.01JH0MgW076352@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 17:00:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r358126 - in vendor/ncurses/6.2-20200215: . Ada95 Ada95/doc Ada95/gen Ada95/include Ada95/samples Ada95/src c++ doc/html doc/html/ada doc/html/ada/funcs doc/html/man form include man me... X-SVN-Group: vendor X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: in vendor/ncurses/6.2-20200215: . Ada95 Ada95/doc Ada95/gen Ada95/include Ada95/samples Ada95/src c++ doc/html doc/html/ada doc/html/ada/funcs doc/html/man form include man menu misc ncurses ncurses/b... X-SVN-Commit-Revision: 358126 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 17:00:22 -0000 Author: bapt Date: Wed Feb 19 17:00:21 2020 New Revision: 358126 URL: https://svnweb.freebsd.org/changeset/base/358126 Log: Tag import of ncurses 6.2-20200215 Added: vendor/ncurses/6.2-20200215/ - copied from r357646, vendor/ncurses/dist/ vendor/ncurses/6.2-20200215/Ada95/samples/split-path.awk - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/split-path.awk Replaced: vendor/ncurses/6.2-20200215/ANNOUNCE - copied unchanged from r358125, vendor/ncurses/dist/ANNOUNCE vendor/ncurses/6.2-20200215/AUTHORS - copied unchanged from r358125, vendor/ncurses/dist/AUTHORS vendor/ncurses/6.2-20200215/Ada95/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/Ada95/Makefile.in vendor/ncurses/6.2-20200215/Ada95/README - copied unchanged from r358125, vendor/ncurses/dist/Ada95/README vendor/ncurses/6.2-20200215/Ada95/TODO - copied unchanged from r358125, vendor/ncurses/dist/Ada95/TODO vendor/ncurses/6.2-20200215/Ada95/aclocal.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/aclocal.m4 vendor/ncurses/6.2-20200215/Ada95/configure - copied unchanged from r358125, vendor/ncurses/dist/Ada95/configure vendor/ncurses/6.2-20200215/Ada95/configure.in - copied unchanged from r358125, vendor/ncurses/dist/Ada95/configure.in vendor/ncurses/6.2-20200215/Ada95/doc/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/Ada95/doc/Makefile.in vendor/ncurses/6.2-20200215/Ada95/gen/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/Makefile.in vendor/ncurses/6.2-20200215/Ada95/gen/adacurses-config.in - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/adacurses-config.in vendor/ncurses/6.2-20200215/Ada95/gen/gen.c - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/gen.c vendor/ncurses/6.2-20200215/Ada95/gen/html.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/html.m4 vendor/ncurses/6.2-20200215/Ada95/gen/normal.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/normal.m4 vendor/ncurses/6.2-20200215/Ada95/gen/table.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/table.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-aux.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-aux.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-forms.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-forms.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-menus.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-menus.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-mouse.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-mouse.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-panels.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-panels.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses-trace.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses-trace.ads.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses.adb.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses.adb.m4 vendor/ncurses/6.2-20200215/Ada95/gen/terminal_interface-curses.ads.m4 - copied unchanged from r358125, vendor/ncurses/dist/Ada95/gen/terminal_interface-curses.ads.m4 vendor/ncurses/6.2-20200215/Ada95/include/MKncurses_def.sh - copied unchanged from r358125, vendor/ncurses/dist/Ada95/include/MKncurses_def.sh vendor/ncurses/6.2-20200215/Ada95/include/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/Ada95/include/Makefile.in vendor/ncurses/6.2-20200215/Ada95/include/ncurses_cfg.hin - copied unchanged from r358125, vendor/ncurses/dist/Ada95/include/ncurses_cfg.hin vendor/ncurses/6.2-20200215/Ada95/include/ncurses_defs - copied unchanged from r358125, vendor/ncurses/dist/Ada95/include/ncurses_defs vendor/ncurses/6.2-20200215/Ada95/make-tar.sh - copied unchanged from r358125, vendor/ncurses/dist/Ada95/make-tar.sh vendor/ncurses/6.2-20200215/Ada95/mk-1st.awk - copied unchanged from r358125, vendor/ncurses/dist/Ada95/mk-1st.awk vendor/ncurses/6.2-20200215/Ada95/samples/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/Makefile.in vendor/ncurses/6.2-20200215/Ada95/samples/README - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/README vendor/ncurses/6.2-20200215/Ada95/samples/ncurses.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-acs_and_scroll.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-acs_and_scroll.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-acs_and_scroll.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-acs_and_scroll.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-acs_display.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-acs_display.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-acs_display.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-acs_display.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-attr_test.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-attr_test.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-attr_test.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-attr_test.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-color_edit.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-color_edit.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-color_edit.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-color_edit.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-color_test.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-color_test.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-color_test.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-color_test.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-demo_forms.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-demo_forms.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-demo_forms.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-demo_forms.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-demo_pad.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-demo_pad.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-demo_pad.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-demo_pad.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-demo_panels.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-demo_panels.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-demo_panels.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-demo_panels.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-flushinp_test.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-flushinp_test.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-flushinp_test.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-flushinp_test.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-genericputs.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-genericputs.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-genericputs.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-genericputs.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-getch.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-getch.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-getch_test.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-getch_test.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-getch_test.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-getch_test.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-getopt.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-getopt.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-getopt.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-getopt.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-m.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-m.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-m.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-m.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-menu_test.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-menu_test.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-menu_test.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-menu_test.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-overlap_test.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-overlap_test.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-overlap_test.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-overlap_test.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-slk_test.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-slk_test.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-slk_test.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-slk_test.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-test_sgr_attributes.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-test_sgr_attributes.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-test_sgr_attributes.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-test_sgr_attributes.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-trace_set.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-trace_set.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-trace_set.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-trace_set.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-util.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-util.adb vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2-util.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2-util.ads vendor/ncurses/6.2-20200215/Ada95/samples/ncurses2.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/ncurses2.ads vendor/ncurses/6.2-20200215/Ada95/samples/rain.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/rain.adb vendor/ncurses/6.2-20200215/Ada95/samples/rain.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/rain.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-curses_demo-attributes.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-curses_demo-attributes.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-curses_demo-attributes.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-curses_demo-attributes.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-curses_demo-mouse.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-curses_demo-mouse.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-curses_demo-mouse.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-curses_demo-mouse.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-curses_demo.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-curses_demo.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-curses_demo.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-curses_demo.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-explanation.adb_p - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-explanation.adb_p vendor/ncurses/6.2-20200215/Ada95/samples/sample-explanation.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-explanation.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-form_demo-aux.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-form_demo-aux.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-form_demo-aux.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-form_demo-aux.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-form_demo-handler.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-form_demo-handler.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-form_demo-handler.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-form_demo-handler.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-form_demo.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-form_demo.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-form_demo.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-form_demo.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-function_key_setting.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-function_key_setting.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-function_key_setting.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-function_key_setting.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-header_handler.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-header_handler.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-header_handler.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-header_handler.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-helpers.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-helpers.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-helpers.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-helpers.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-keyboard_handler.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-keyboard_handler.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-keyboard_handler.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-keyboard_handler.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-manifest.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-manifest.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-menu_demo-aux.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-menu_demo-aux.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-menu_demo-aux.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-menu_demo-aux.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-menu_demo-handler.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-menu_demo-handler.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-menu_demo-handler.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-menu_demo-handler.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-menu_demo.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-menu_demo.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-menu_demo.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-menu_demo.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-my_field_type.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-my_field_type.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-my_field_type.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-my_field_type.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample-text_io_demo.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-text_io_demo.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample-text_io_demo.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample-text_io_demo.ads vendor/ncurses/6.2-20200215/Ada95/samples/sample.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample.adb vendor/ncurses/6.2-20200215/Ada95/samples/sample.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/sample.ads vendor/ncurses/6.2-20200215/Ada95/samples/status.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/status.adb vendor/ncurses/6.2-20200215/Ada95/samples/status.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/status.ads vendor/ncurses/6.2-20200215/Ada95/samples/tour.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/tour.adb vendor/ncurses/6.2-20200215/Ada95/samples/tour.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/samples/tour.ads vendor/ncurses/6.2-20200215/Ada95/src/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/Makefile.in vendor/ncurses/6.2-20200215/Ada95/src/c_threaded_variables.c - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/c_threaded_variables.c vendor/ncurses/6.2-20200215/Ada95/src/c_threaded_variables.h - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/c_threaded_variables.h vendor/ncurses/6.2-20200215/Ada95/src/c_varargs_to_ada.c - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/c_varargs_to_ada.c vendor/ncurses/6.2-20200215/Ada95/src/c_varargs_to_ada.h - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/c_varargs_to_ada.h vendor/ncurses/6.2-20200215/Ada95/src/library-cfg.sh - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/library-cfg.sh vendor/ncurses/6.2-20200215/Ada95/src/library.gpr.in - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/library.gpr.in vendor/ncurses/6.2-20200215/Ada95/src/modules - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/modules vendor/ncurses/6.2-20200215/Ada95/src/ncurses_compat.c - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/ncurses_compat.c vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-aux.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-aux.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-user.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-user.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types-user.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types-user.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_types.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_types.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-field_user_data.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-field_user_data.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms-form_user_data.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms-form_user_data.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-forms.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-forms.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-menus-item_user_data.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-menus-item_user_data.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-menus.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-menus.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-mouse.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-mouse.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-panels-user_data.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-panels-user_data.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-panels.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-panels.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-putwin.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-putwin.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-putwin.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-putwin.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-termcap.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-termcap.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-termcap.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-termcap.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-terminfo.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-terminfo.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-terminfo.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-terminfo.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-aux.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-aux.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-aux.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-aux.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-complex_io.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-complex_io.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-complex_io.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-complex_io.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-float_io.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-float_io.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-float_io.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-float_io.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-integer_io.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-integer_io.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-integer_io.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-integer_io.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-modular_io.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-modular_io.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io-modular_io.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io-modular_io.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io.adb - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io.adb vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-text_io.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-text_io.ads vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface-curses-trace.adb_p - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface-curses-trace.adb_p vendor/ncurses/6.2-20200215/Ada95/src/terminal_interface.ads - copied unchanged from r358125, vendor/ncurses/dist/Ada95/src/terminal_interface.ads vendor/ncurses/6.2-20200215/COPYING - copied unchanged from r358125, vendor/ncurses/dist/COPYING vendor/ncurses/6.2-20200215/INSTALL - copied unchanged from r358125, vendor/ncurses/dist/INSTALL vendor/ncurses/6.2-20200215/MANIFEST - copied unchanged from r358125, vendor/ncurses/dist/MANIFEST vendor/ncurses/6.2-20200215/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/Makefile.in vendor/ncurses/6.2-20200215/Makefile.os2 - copied unchanged from r358125, vendor/ncurses/dist/Makefile.os2 vendor/ncurses/6.2-20200215/NEWS - copied unchanged from r358125, vendor/ncurses/dist/NEWS vendor/ncurses/6.2-20200215/README - copied unchanged from r358125, vendor/ncurses/dist/README vendor/ncurses/6.2-20200215/README.MinGW - copied unchanged from r358125, vendor/ncurses/dist/README.MinGW vendor/ncurses/6.2-20200215/README.emx - copied unchanged from r358125, vendor/ncurses/dist/README.emx vendor/ncurses/6.2-20200215/TO-DO - copied unchanged from r358125, vendor/ncurses/dist/TO-DO vendor/ncurses/6.2-20200215/VERSION - copied unchanged from r358125, vendor/ncurses/dist/VERSION vendor/ncurses/6.2-20200215/aclocal.m4 - copied unchanged from r358125, vendor/ncurses/dist/aclocal.m4 vendor/ncurses/6.2-20200215/announce.html.in - copied unchanged from r358125, vendor/ncurses/dist/announce.html.in vendor/ncurses/6.2-20200215/c++/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/c++/Makefile.in vendor/ncurses/6.2-20200215/c++/NEWS - copied unchanged from r358125, vendor/ncurses/dist/c++/NEWS vendor/ncurses/6.2-20200215/c++/PROBLEMS - copied unchanged from r358125, vendor/ncurses/dist/c++/PROBLEMS vendor/ncurses/6.2-20200215/c++/README-first - copied unchanged from r358125, vendor/ncurses/dist/c++/README-first vendor/ncurses/6.2-20200215/c++/cursesapp.cc - copied unchanged from r358125, vendor/ncurses/dist/c++/cursesapp.cc vendor/ncurses/6.2-20200215/c++/cursesapp.h - copied unchanged from r358125, vendor/ncurses/dist/c++/cursesapp.h vendor/ncurses/6.2-20200215/c++/cursesf.cc - copied unchanged from r358125, vendor/ncurses/dist/c++/cursesf.cc vendor/ncurses/6.2-20200215/c++/cursesf.h - copied unchanged from r358125, vendor/ncurses/dist/c++/cursesf.h vendor/ncurses/6.2-20200215/c++/cursesm.cc - copied unchanged from r358125, vendor/ncurses/dist/c++/cursesm.cc vendor/ncurses/6.2-20200215/c++/cursesm.h - copied unchanged from r358125, vendor/ncurses/dist/c++/cursesm.h vendor/ncurses/6.2-20200215/c++/cursesmain.cc - copied unchanged from r358125, vendor/ncurses/dist/c++/cursesmain.cc vendor/ncurses/6.2-20200215/c++/cursesp.cc - copied unchanged from r358125, vendor/ncurses/dist/c++/cursesp.cc vendor/ncurses/6.2-20200215/c++/cursesp.h - copied unchanged from r358125, vendor/ncurses/dist/c++/cursesp.h vendor/ncurses/6.2-20200215/c++/cursespad.cc - copied unchanged from r358125, vendor/ncurses/dist/c++/cursespad.cc vendor/ncurses/6.2-20200215/c++/cursesw.cc - copied unchanged from r358125, vendor/ncurses/dist/c++/cursesw.cc vendor/ncurses/6.2-20200215/c++/cursesw.h - copied unchanged from r358125, vendor/ncurses/dist/c++/cursesw.h vendor/ncurses/6.2-20200215/c++/cursslk.cc - copied unchanged from r358125, vendor/ncurses/dist/c++/cursslk.cc vendor/ncurses/6.2-20200215/c++/cursslk.h - copied unchanged from r358125, vendor/ncurses/dist/c++/cursslk.h vendor/ncurses/6.2-20200215/c++/demo.cc - copied unchanged from r358125, vendor/ncurses/dist/c++/demo.cc vendor/ncurses/6.2-20200215/c++/edit_cfg.sh - copied unchanged from r358125, vendor/ncurses/dist/c++/edit_cfg.sh vendor/ncurses/6.2-20200215/c++/etip.h.in - copied unchanged from r358125, vendor/ncurses/dist/c++/etip.h.in vendor/ncurses/6.2-20200215/c++/headers - copied unchanged from r358125, vendor/ncurses/dist/c++/headers vendor/ncurses/6.2-20200215/c++/internal.h - copied unchanged from r358125, vendor/ncurses/dist/c++/internal.h vendor/ncurses/6.2-20200215/c++/modules - copied unchanged from r358125, vendor/ncurses/dist/c++/modules vendor/ncurses/6.2-20200215/configure - copied unchanged from r358125, vendor/ncurses/dist/configure vendor/ncurses/6.2-20200215/configure.in - copied unchanged from r358125, vendor/ncurses/dist/configure.in vendor/ncurses/6.2-20200215/convert_configure.pl - copied unchanged from r358125, vendor/ncurses/dist/convert_configure.pl vendor/ncurses/6.2-20200215/dist.mk - copied unchanged from r358125, vendor/ncurses/dist/dist.mk vendor/ncurses/6.2-20200215/doc/html/Ada95.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/Ada95.html vendor/ncurses/6.2-20200215/doc/html/ada/funcs/A.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/A.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/B.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/B.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/C.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/C.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/D.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/D.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/E.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/E.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/F.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/F.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/G.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/G.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/H.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/H.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/I.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/I.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/K.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/K.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/L.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/L.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/M.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/M.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/N.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/N.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/O.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/O.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/P.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/P.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/Q.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/Q.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/R.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/R.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/S.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/S.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/T.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/T.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/U.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/U.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/V.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/V.htm vendor/ncurses/6.2-20200215/doc/html/ada/funcs/W.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/funcs/W.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-aux__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-aux__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-aux__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-aux__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-forms__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-forms__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-menus__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-menus__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-menus__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-mouse__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-mouse__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-mouse__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-mouse__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-panels__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-panels__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-panels__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-panels__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-putwin__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-putwin__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-putwin__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-putwin__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-termcap__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-termcap__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-termcap__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-termcap__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-terminfo__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-terminfo__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-terminfo__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-terminfo__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-text_io__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-text_io__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-trace__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-trace__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses-trace__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses-trace__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses__adb.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses__adb.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface-curses_constants__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface-curses_constants__ads.htm vendor/ncurses/6.2-20200215/doc/html/ada/terminal_interface__ads.htm - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ada/terminal_interface__ads.htm vendor/ncurses/6.2-20200215/doc/html/announce.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/announce.html vendor/ncurses/6.2-20200215/doc/html/hackguide.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/hackguide.html vendor/ncurses/6.2-20200215/doc/html/index.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/index.html vendor/ncurses/6.2-20200215/doc/html/man/adacurses6-config.1.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/adacurses6-config.1.html vendor/ncurses/6.2-20200215/doc/html/man/captoinfo.1m.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/captoinfo.1m.html vendor/ncurses/6.2-20200215/doc/html/man/clear.1.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/clear.1.html vendor/ncurses/6.2-20200215/doc/html/man/curs_add_wch.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_add_wch.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_add_wchstr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_add_wchstr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_addch.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_addch.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_addchstr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_addchstr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_addstr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_addstr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_addwstr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_addwstr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_attr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_attr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_beep.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_beep.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_bkgd.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_bkgd.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_bkgrnd.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_bkgrnd.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_border.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_border.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_border_set.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_border_set.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_clear.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_clear.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_color.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_color.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_delch.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_delch.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_deleteln.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_deleteln.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_extend.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_extend.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_get_wch.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_get_wch.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_get_wstr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_get_wstr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_getcchar.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_getcchar.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_getch.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_getch.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_getstr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_getstr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_getyx.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_getyx.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_in_wch.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_in_wch.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_in_wchstr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_in_wchstr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_inch.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_inch.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_inchstr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_inchstr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_initscr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_initscr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_inopts.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_inopts.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_ins_wch.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_ins_wch.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_ins_wstr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_ins_wstr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_insch.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_insch.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_insstr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_insstr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_instr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_instr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_inwstr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_inwstr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_kernel.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_kernel.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_legacy.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_legacy.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_memleaks.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_memleaks.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_mouse.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_mouse.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_move.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_move.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_opaque.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_opaque.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_outopts.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_outopts.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_overlay.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_overlay.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_pad.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_pad.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_print.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_print.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_printw.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_printw.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_refresh.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_refresh.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_scanw.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_scanw.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_scr_dump.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_scr_dump.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_scroll.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_scroll.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_slk.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_slk.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_sp_funcs.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_sp_funcs.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_termattrs.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_termattrs.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_termcap.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_termcap.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_terminfo.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_terminfo.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_threads.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_threads.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_touch.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_touch.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_trace.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_trace.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_util.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_util.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_variables.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_variables.3x.html vendor/ncurses/6.2-20200215/doc/html/man/curs_window.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/curs_window.3x.html vendor/ncurses/6.2-20200215/doc/html/man/default_colors.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/default_colors.3x.html vendor/ncurses/6.2-20200215/doc/html/man/define_key.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/define_key.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_cursor.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_cursor.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_data.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_data.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_driver.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_driver.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_field.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_field.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_field_attributes.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_field_attributes.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_field_buffer.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_field_buffer.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_field_info.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_field_info.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_field_just.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_field_just.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_field_new.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_field_new.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_field_opts.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_field_opts.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_field_userptr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_field_userptr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_field_validation.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_field_validation.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_fieldtype.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_fieldtype.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_hook.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_hook.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_new.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_new.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_new_page.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_new_page.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_opts.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_opts.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_page.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_page.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_post.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_post.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_requestname.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_requestname.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_userptr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_userptr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_variables.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_variables.3x.html vendor/ncurses/6.2-20200215/doc/html/man/form_win.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/form_win.3x.html vendor/ncurses/6.2-20200215/doc/html/man/index.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/index.html vendor/ncurses/6.2-20200215/doc/html/man/infocmp.1m.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/infocmp.1m.html vendor/ncurses/6.2-20200215/doc/html/man/infotocap.1m.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/infotocap.1m.html vendor/ncurses/6.2-20200215/doc/html/man/key_defined.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/key_defined.3x.html vendor/ncurses/6.2-20200215/doc/html/man/keybound.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/keybound.3x.html vendor/ncurses/6.2-20200215/doc/html/man/keyok.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/keyok.3x.html vendor/ncurses/6.2-20200215/doc/html/man/legacy_coding.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/legacy_coding.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_attributes.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_attributes.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_cursor.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_cursor.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_driver.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_driver.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_format.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_format.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_hook.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_hook.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_items.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_items.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_mark.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_mark.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_new.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_new.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_opts.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_opts.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_pattern.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_pattern.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_post.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_post.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_requestname.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_requestname.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_spacing.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_spacing.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_userptr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_userptr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/menu_win.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/menu_win.3x.html vendor/ncurses/6.2-20200215/doc/html/man/mitem_current.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/mitem_current.3x.html vendor/ncurses/6.2-20200215/doc/html/man/mitem_name.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/mitem_name.3x.html vendor/ncurses/6.2-20200215/doc/html/man/mitem_new.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/mitem_new.3x.html vendor/ncurses/6.2-20200215/doc/html/man/mitem_opts.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/mitem_opts.3x.html vendor/ncurses/6.2-20200215/doc/html/man/mitem_userptr.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/mitem_userptr.3x.html vendor/ncurses/6.2-20200215/doc/html/man/mitem_value.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/mitem_value.3x.html vendor/ncurses/6.2-20200215/doc/html/man/mitem_visible.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/mitem_visible.3x.html vendor/ncurses/6.2-20200215/doc/html/man/ncurses.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/ncurses.3x.html vendor/ncurses/6.2-20200215/doc/html/man/ncurses6-config.1.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/ncurses6-config.1.html vendor/ncurses/6.2-20200215/doc/html/man/new_pair.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/new_pair.3x.html vendor/ncurses/6.2-20200215/doc/html/man/panel.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/panel.3x.html vendor/ncurses/6.2-20200215/doc/html/man/resizeterm.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/resizeterm.3x.html vendor/ncurses/6.2-20200215/doc/html/man/scr_dump.5.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/scr_dump.5.html vendor/ncurses/6.2-20200215/doc/html/man/tabs.1.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/tabs.1.html vendor/ncurses/6.2-20200215/doc/html/man/term.5.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/term.5.html vendor/ncurses/6.2-20200215/doc/html/man/term.7.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/term.7.html vendor/ncurses/6.2-20200215/doc/html/man/term_variables.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/term_variables.3x.html vendor/ncurses/6.2-20200215/doc/html/man/terminfo.5.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/terminfo.5.html vendor/ncurses/6.2-20200215/doc/html/man/tic.1m.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/tic.1m.html vendor/ncurses/6.2-20200215/doc/html/man/toe.1m.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/toe.1m.html vendor/ncurses/6.2-20200215/doc/html/man/tput.1.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/tput.1.html vendor/ncurses/6.2-20200215/doc/html/man/tset.1.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/tset.1.html vendor/ncurses/6.2-20200215/doc/html/man/user_caps.5.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/user_caps.5.html vendor/ncurses/6.2-20200215/doc/html/man/wresize.3x.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/man/wresize.3x.html vendor/ncurses/6.2-20200215/doc/html/ncurses-intro.html - copied unchanged from r358125, vendor/ncurses/dist/doc/html/ncurses-intro.html vendor/ncurses/6.2-20200215/form/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/form/Makefile.in vendor/ncurses/6.2-20200215/form/READ.ME - copied unchanged from r358125, vendor/ncurses/dist/form/READ.ME vendor/ncurses/6.2-20200215/form/f_trace.c - copied unchanged from r358125, vendor/ncurses/dist/form/f_trace.c vendor/ncurses/6.2-20200215/form/fld_arg.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_arg.c vendor/ncurses/6.2-20200215/form/fld_attr.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_attr.c vendor/ncurses/6.2-20200215/form/fld_current.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_current.c vendor/ncurses/6.2-20200215/form/fld_def.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_def.c vendor/ncurses/6.2-20200215/form/fld_dup.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_dup.c vendor/ncurses/6.2-20200215/form/fld_ftchoice.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_ftchoice.c vendor/ncurses/6.2-20200215/form/fld_ftlink.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_ftlink.c vendor/ncurses/6.2-20200215/form/fld_info.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_info.c vendor/ncurses/6.2-20200215/form/fld_just.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_just.c vendor/ncurses/6.2-20200215/form/fld_link.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_link.c vendor/ncurses/6.2-20200215/form/fld_max.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_max.c vendor/ncurses/6.2-20200215/form/fld_move.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_move.c vendor/ncurses/6.2-20200215/form/fld_newftyp.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_newftyp.c vendor/ncurses/6.2-20200215/form/fld_opts.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_opts.c vendor/ncurses/6.2-20200215/form/fld_pad.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_pad.c vendor/ncurses/6.2-20200215/form/fld_page.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_page.c vendor/ncurses/6.2-20200215/form/fld_stat.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_stat.c vendor/ncurses/6.2-20200215/form/fld_type.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_type.c vendor/ncurses/6.2-20200215/form/fld_user.c - copied unchanged from r358125, vendor/ncurses/dist/form/fld_user.c vendor/ncurses/6.2-20200215/form/form.h - copied unchanged from r358125, vendor/ncurses/dist/form/form.h vendor/ncurses/6.2-20200215/form/form.priv.h - copied unchanged from r358125, vendor/ncurses/dist/form/form.priv.h vendor/ncurses/6.2-20200215/form/frm_cursor.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_cursor.c vendor/ncurses/6.2-20200215/form/frm_data.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_data.c vendor/ncurses/6.2-20200215/form/frm_def.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_def.c vendor/ncurses/6.2-20200215/form/frm_driver.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_driver.c vendor/ncurses/6.2-20200215/form/frm_hook.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_hook.c vendor/ncurses/6.2-20200215/form/frm_opts.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_opts.c vendor/ncurses/6.2-20200215/form/frm_page.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_page.c vendor/ncurses/6.2-20200215/form/frm_post.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_post.c vendor/ncurses/6.2-20200215/form/frm_req_name.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_req_name.c vendor/ncurses/6.2-20200215/form/frm_scale.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_scale.c vendor/ncurses/6.2-20200215/form/frm_sub.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_sub.c vendor/ncurses/6.2-20200215/form/frm_user.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_user.c vendor/ncurses/6.2-20200215/form/frm_win.c - copied unchanged from r358125, vendor/ncurses/dist/form/frm_win.c vendor/ncurses/6.2-20200215/form/fty_alnum.c - copied unchanged from r358125, vendor/ncurses/dist/form/fty_alnum.c vendor/ncurses/6.2-20200215/form/fty_alpha.c - copied unchanged from r358125, vendor/ncurses/dist/form/fty_alpha.c vendor/ncurses/6.2-20200215/form/fty_enum.c - copied unchanged from r358125, vendor/ncurses/dist/form/fty_enum.c vendor/ncurses/6.2-20200215/form/fty_generic.c - copied unchanged from r358125, vendor/ncurses/dist/form/fty_generic.c vendor/ncurses/6.2-20200215/form/fty_int.c - copied unchanged from r358125, vendor/ncurses/dist/form/fty_int.c vendor/ncurses/6.2-20200215/form/fty_ipv4.c - copied unchanged from r358125, vendor/ncurses/dist/form/fty_ipv4.c vendor/ncurses/6.2-20200215/form/fty_num.c - copied unchanged from r358125, vendor/ncurses/dist/form/fty_num.c vendor/ncurses/6.2-20200215/form/fty_regex.c - copied unchanged from r358125, vendor/ncurses/dist/form/fty_regex.c vendor/ncurses/6.2-20200215/form/headers - copied unchanged from r358125, vendor/ncurses/dist/form/headers vendor/ncurses/6.2-20200215/form/llib-lform - copied unchanged from r358125, vendor/ncurses/dist/form/llib-lform vendor/ncurses/6.2-20200215/form/llib-lformt - copied unchanged from r358125, vendor/ncurses/dist/form/llib-lformt vendor/ncurses/6.2-20200215/form/llib-lformtw - copied unchanged from r358125, vendor/ncurses/dist/form/llib-lformtw vendor/ncurses/6.2-20200215/form/llib-lformw - copied unchanged from r358125, vendor/ncurses/dist/form/llib-lformw vendor/ncurses/6.2-20200215/form/modules - copied unchanged from r358125, vendor/ncurses/dist/form/modules vendor/ncurses/6.2-20200215/include/Caps - copied unchanged from r358125, vendor/ncurses/dist/include/Caps vendor/ncurses/6.2-20200215/include/Caps-ncurses - copied unchanged from r358125, vendor/ncurses/dist/include/Caps-ncurses vendor/ncurses/6.2-20200215/include/Caps.aix4 - copied unchanged from r358125, vendor/ncurses/dist/include/Caps.aix4 vendor/ncurses/6.2-20200215/include/Caps.hpux11 - copied unchanged from r358125, vendor/ncurses/dist/include/Caps.hpux11 vendor/ncurses/6.2-20200215/include/Caps.keys - copied unchanged from r358125, vendor/ncurses/dist/include/Caps.keys vendor/ncurses/6.2-20200215/include/Caps.osf1r5 - copied unchanged from r358125, vendor/ncurses/dist/include/Caps.osf1r5 vendor/ncurses/6.2-20200215/include/Caps.uwin - copied unchanged from r358125, vendor/ncurses/dist/include/Caps.uwin vendor/ncurses/6.2-20200215/include/MKhashsize.sh - copied unchanged from r358125, vendor/ncurses/dist/include/MKhashsize.sh vendor/ncurses/6.2-20200215/include/MKkey_defs.sh - copied unchanged from r358125, vendor/ncurses/dist/include/MKkey_defs.sh vendor/ncurses/6.2-20200215/include/MKncurses_def.sh - copied unchanged from r358125, vendor/ncurses/dist/include/MKncurses_def.sh vendor/ncurses/6.2-20200215/include/MKparametrized.sh - copied unchanged from r358125, vendor/ncurses/dist/include/MKparametrized.sh vendor/ncurses/6.2-20200215/include/MKterm.h.awk.in - copied unchanged from r358125, vendor/ncurses/dist/include/MKterm.h.awk.in vendor/ncurses/6.2-20200215/include/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/include/Makefile.in vendor/ncurses/6.2-20200215/include/capdefaults.c - copied unchanged from r358125, vendor/ncurses/dist/include/capdefaults.c vendor/ncurses/6.2-20200215/include/curses.h.in - copied unchanged from r358125, vendor/ncurses/dist/include/curses.h.in vendor/ncurses/6.2-20200215/include/edit_cfg.sh - copied unchanged from r358125, vendor/ncurses/dist/include/edit_cfg.sh vendor/ncurses/6.2-20200215/include/hashed_db.h - copied unchanged from r358125, vendor/ncurses/dist/include/hashed_db.h vendor/ncurses/6.2-20200215/include/headers - copied unchanged from r358125, vendor/ncurses/dist/include/headers vendor/ncurses/6.2-20200215/include/nc_alloc.h - copied unchanged from r358125, vendor/ncurses/dist/include/nc_alloc.h vendor/ncurses/6.2-20200215/include/nc_mingw.h - copied unchanged from r358125, vendor/ncurses/dist/include/nc_mingw.h vendor/ncurses/6.2-20200215/include/nc_panel.h - copied unchanged from r358125, vendor/ncurses/dist/include/nc_panel.h vendor/ncurses/6.2-20200215/include/nc_string.h - copied unchanged from r358125, vendor/ncurses/dist/include/nc_string.h vendor/ncurses/6.2-20200215/include/nc_termios.h - copied unchanged from r358125, vendor/ncurses/dist/include/nc_termios.h vendor/ncurses/6.2-20200215/include/nc_tparm.h - copied unchanged from r358125, vendor/ncurses/dist/include/nc_tparm.h vendor/ncurses/6.2-20200215/include/ncurses_cfg.hin - copied unchanged from r358125, vendor/ncurses/dist/include/ncurses_cfg.hin vendor/ncurses/6.2-20200215/include/ncurses_defs - copied unchanged from r358125, vendor/ncurses/dist/include/ncurses_defs vendor/ncurses/6.2-20200215/include/ncurses_dll.h.in - copied unchanged from r358125, vendor/ncurses/dist/include/ncurses_dll.h.in vendor/ncurses/6.2-20200215/include/ncurses_mingw.h - copied unchanged from r358125, vendor/ncurses/dist/include/ncurses_mingw.h vendor/ncurses/6.2-20200215/include/term_entry.h - copied unchanged from r358125, vendor/ncurses/dist/include/term_entry.h vendor/ncurses/6.2-20200215/include/termcap.h.in - copied unchanged from r358125, vendor/ncurses/dist/include/termcap.h.in vendor/ncurses/6.2-20200215/include/tic.h - copied unchanged from r358125, vendor/ncurses/dist/include/tic.h vendor/ncurses/6.2-20200215/include/unctrl.h.in - copied unchanged from r358125, vendor/ncurses/dist/include/unctrl.h.in vendor/ncurses/6.2-20200215/man/MKada_config.in - copied unchanged from r358125, vendor/ncurses/dist/man/MKada_config.in vendor/ncurses/6.2-20200215/man/MKncu_config.in - copied unchanged from r358125, vendor/ncurses/dist/man/MKncu_config.in vendor/ncurses/6.2-20200215/man/MKterminfo.sh - copied unchanged from r358125, vendor/ncurses/dist/man/MKterminfo.sh vendor/ncurses/6.2-20200215/man/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/man/Makefile.in vendor/ncurses/6.2-20200215/man/captoinfo.1m - copied unchanged from r358125, vendor/ncurses/dist/man/captoinfo.1m vendor/ncurses/6.2-20200215/man/clear.1 - copied unchanged from r358125, vendor/ncurses/dist/man/clear.1 vendor/ncurses/6.2-20200215/man/curs_add_wch.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_add_wch.3x vendor/ncurses/6.2-20200215/man/curs_add_wchstr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_add_wchstr.3x vendor/ncurses/6.2-20200215/man/curs_addch.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_addch.3x vendor/ncurses/6.2-20200215/man/curs_addchstr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_addchstr.3x vendor/ncurses/6.2-20200215/man/curs_addstr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_addstr.3x vendor/ncurses/6.2-20200215/man/curs_addwstr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_addwstr.3x vendor/ncurses/6.2-20200215/man/curs_attr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_attr.3x vendor/ncurses/6.2-20200215/man/curs_beep.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_beep.3x vendor/ncurses/6.2-20200215/man/curs_bkgd.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_bkgd.3x vendor/ncurses/6.2-20200215/man/curs_bkgrnd.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_bkgrnd.3x vendor/ncurses/6.2-20200215/man/curs_border.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_border.3x vendor/ncurses/6.2-20200215/man/curs_border_set.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_border_set.3x vendor/ncurses/6.2-20200215/man/curs_clear.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_clear.3x vendor/ncurses/6.2-20200215/man/curs_color.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_color.3x vendor/ncurses/6.2-20200215/man/curs_delch.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_delch.3x vendor/ncurses/6.2-20200215/man/curs_deleteln.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_deleteln.3x vendor/ncurses/6.2-20200215/man/curs_extend.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_extend.3x vendor/ncurses/6.2-20200215/man/curs_get_wch.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_get_wch.3x vendor/ncurses/6.2-20200215/man/curs_get_wstr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_get_wstr.3x vendor/ncurses/6.2-20200215/man/curs_getcchar.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_getcchar.3x vendor/ncurses/6.2-20200215/man/curs_getch.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_getch.3x vendor/ncurses/6.2-20200215/man/curs_getstr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_getstr.3x vendor/ncurses/6.2-20200215/man/curs_getyx.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_getyx.3x vendor/ncurses/6.2-20200215/man/curs_in_wch.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_in_wch.3x vendor/ncurses/6.2-20200215/man/curs_in_wchstr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_in_wchstr.3x vendor/ncurses/6.2-20200215/man/curs_inch.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_inch.3x vendor/ncurses/6.2-20200215/man/curs_inchstr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_inchstr.3x vendor/ncurses/6.2-20200215/man/curs_initscr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_initscr.3x vendor/ncurses/6.2-20200215/man/curs_inopts.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_inopts.3x vendor/ncurses/6.2-20200215/man/curs_ins_wch.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_ins_wch.3x vendor/ncurses/6.2-20200215/man/curs_ins_wstr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_ins_wstr.3x vendor/ncurses/6.2-20200215/man/curs_insch.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_insch.3x vendor/ncurses/6.2-20200215/man/curs_insstr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_insstr.3x vendor/ncurses/6.2-20200215/man/curs_instr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_instr.3x vendor/ncurses/6.2-20200215/man/curs_inwstr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_inwstr.3x vendor/ncurses/6.2-20200215/man/curs_kernel.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_kernel.3x vendor/ncurses/6.2-20200215/man/curs_legacy.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_legacy.3x vendor/ncurses/6.2-20200215/man/curs_memleaks.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_memleaks.3x vendor/ncurses/6.2-20200215/man/curs_mouse.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_mouse.3x vendor/ncurses/6.2-20200215/man/curs_move.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_move.3x vendor/ncurses/6.2-20200215/man/curs_opaque.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_opaque.3x vendor/ncurses/6.2-20200215/man/curs_outopts.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_outopts.3x vendor/ncurses/6.2-20200215/man/curs_overlay.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_overlay.3x vendor/ncurses/6.2-20200215/man/curs_pad.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_pad.3x vendor/ncurses/6.2-20200215/man/curs_print.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_print.3x vendor/ncurses/6.2-20200215/man/curs_printw.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_printw.3x vendor/ncurses/6.2-20200215/man/curs_refresh.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_refresh.3x vendor/ncurses/6.2-20200215/man/curs_scanw.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_scanw.3x vendor/ncurses/6.2-20200215/man/curs_scr_dump.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_scr_dump.3x vendor/ncurses/6.2-20200215/man/curs_scroll.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_scroll.3x vendor/ncurses/6.2-20200215/man/curs_slk.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_slk.3x vendor/ncurses/6.2-20200215/man/curs_sp_funcs.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_sp_funcs.3x vendor/ncurses/6.2-20200215/man/curs_termattrs.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_termattrs.3x vendor/ncurses/6.2-20200215/man/curs_termcap.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_termcap.3x vendor/ncurses/6.2-20200215/man/curs_terminfo.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_terminfo.3x vendor/ncurses/6.2-20200215/man/curs_threads.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_threads.3x vendor/ncurses/6.2-20200215/man/curs_touch.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_touch.3x vendor/ncurses/6.2-20200215/man/curs_trace.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_trace.3x vendor/ncurses/6.2-20200215/man/curs_util.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_util.3x vendor/ncurses/6.2-20200215/man/curs_variables.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_variables.3x vendor/ncurses/6.2-20200215/man/curs_window.3x - copied unchanged from r358125, vendor/ncurses/dist/man/curs_window.3x vendor/ncurses/6.2-20200215/man/default_colors.3x - copied unchanged from r358125, vendor/ncurses/dist/man/default_colors.3x vendor/ncurses/6.2-20200215/man/define_key.3x - copied unchanged from r358125, vendor/ncurses/dist/man/define_key.3x vendor/ncurses/6.2-20200215/man/form.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form.3x vendor/ncurses/6.2-20200215/man/form_cursor.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_cursor.3x vendor/ncurses/6.2-20200215/man/form_data.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_data.3x vendor/ncurses/6.2-20200215/man/form_driver.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_driver.3x vendor/ncurses/6.2-20200215/man/form_field.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_field.3x vendor/ncurses/6.2-20200215/man/form_field_attributes.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_field_attributes.3x vendor/ncurses/6.2-20200215/man/form_field_buffer.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_field_buffer.3x vendor/ncurses/6.2-20200215/man/form_field_info.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_field_info.3x vendor/ncurses/6.2-20200215/man/form_field_just.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_field_just.3x vendor/ncurses/6.2-20200215/man/form_field_new.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_field_new.3x vendor/ncurses/6.2-20200215/man/form_field_opts.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_field_opts.3x vendor/ncurses/6.2-20200215/man/form_field_userptr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_field_userptr.3x vendor/ncurses/6.2-20200215/man/form_field_validation.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_field_validation.3x vendor/ncurses/6.2-20200215/man/form_fieldtype.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_fieldtype.3x vendor/ncurses/6.2-20200215/man/form_hook.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_hook.3x vendor/ncurses/6.2-20200215/man/form_new.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_new.3x vendor/ncurses/6.2-20200215/man/form_new_page.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_new_page.3x vendor/ncurses/6.2-20200215/man/form_opts.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_opts.3x vendor/ncurses/6.2-20200215/man/form_page.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_page.3x vendor/ncurses/6.2-20200215/man/form_post.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_post.3x vendor/ncurses/6.2-20200215/man/form_requestname.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_requestname.3x vendor/ncurses/6.2-20200215/man/form_userptr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_userptr.3x vendor/ncurses/6.2-20200215/man/form_variables.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_variables.3x vendor/ncurses/6.2-20200215/man/form_win.3x - copied unchanged from r358125, vendor/ncurses/dist/man/form_win.3x vendor/ncurses/6.2-20200215/man/infocmp.1m - copied unchanged from r358125, vendor/ncurses/dist/man/infocmp.1m vendor/ncurses/6.2-20200215/man/infotocap.1m - copied unchanged from r358125, vendor/ncurses/dist/man/infotocap.1m vendor/ncurses/6.2-20200215/man/key_defined.3x - copied unchanged from r358125, vendor/ncurses/dist/man/key_defined.3x vendor/ncurses/6.2-20200215/man/keybound.3x - copied unchanged from r358125, vendor/ncurses/dist/man/keybound.3x vendor/ncurses/6.2-20200215/man/keyok.3x - copied unchanged from r358125, vendor/ncurses/dist/man/keyok.3x vendor/ncurses/6.2-20200215/man/legacy_coding.3x - copied unchanged from r358125, vendor/ncurses/dist/man/legacy_coding.3x vendor/ncurses/6.2-20200215/man/make_sed.sh - copied unchanged from r358125, vendor/ncurses/dist/man/make_sed.sh vendor/ncurses/6.2-20200215/man/man_db.renames - copied unchanged from r358125, vendor/ncurses/dist/man/man_db.renames vendor/ncurses/6.2-20200215/man/manhtml.aliases - copied unchanged from r358125, vendor/ncurses/dist/man/manhtml.aliases vendor/ncurses/6.2-20200215/man/manhtml.externs - copied unchanged from r358125, vendor/ncurses/dist/man/manhtml.externs vendor/ncurses/6.2-20200215/man/manlinks.sed - copied unchanged from r358125, vendor/ncurses/dist/man/manlinks.sed vendor/ncurses/6.2-20200215/man/menu.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu.3x vendor/ncurses/6.2-20200215/man/menu_attributes.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_attributes.3x vendor/ncurses/6.2-20200215/man/menu_cursor.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_cursor.3x vendor/ncurses/6.2-20200215/man/menu_driver.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_driver.3x vendor/ncurses/6.2-20200215/man/menu_format.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_format.3x vendor/ncurses/6.2-20200215/man/menu_hook.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_hook.3x vendor/ncurses/6.2-20200215/man/menu_items.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_items.3x vendor/ncurses/6.2-20200215/man/menu_mark.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_mark.3x vendor/ncurses/6.2-20200215/man/menu_new.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_new.3x vendor/ncurses/6.2-20200215/man/menu_opts.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_opts.3x vendor/ncurses/6.2-20200215/man/menu_pattern.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_pattern.3x vendor/ncurses/6.2-20200215/man/menu_post.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_post.3x vendor/ncurses/6.2-20200215/man/menu_requestname.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_requestname.3x vendor/ncurses/6.2-20200215/man/menu_spacing.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_spacing.3x vendor/ncurses/6.2-20200215/man/menu_userptr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_userptr.3x vendor/ncurses/6.2-20200215/man/menu_win.3x - copied unchanged from r358125, vendor/ncurses/dist/man/menu_win.3x vendor/ncurses/6.2-20200215/man/mitem_current.3x - copied unchanged from r358125, vendor/ncurses/dist/man/mitem_current.3x vendor/ncurses/6.2-20200215/man/mitem_name.3x - copied unchanged from r358125, vendor/ncurses/dist/man/mitem_name.3x vendor/ncurses/6.2-20200215/man/mitem_new.3x - copied unchanged from r358125, vendor/ncurses/dist/man/mitem_new.3x vendor/ncurses/6.2-20200215/man/mitem_opts.3x - copied unchanged from r358125, vendor/ncurses/dist/man/mitem_opts.3x vendor/ncurses/6.2-20200215/man/mitem_userptr.3x - copied unchanged from r358125, vendor/ncurses/dist/man/mitem_userptr.3x vendor/ncurses/6.2-20200215/man/mitem_value.3x - copied unchanged from r358125, vendor/ncurses/dist/man/mitem_value.3x vendor/ncurses/6.2-20200215/man/mitem_visible.3x - copied unchanged from r358125, vendor/ncurses/dist/man/mitem_visible.3x vendor/ncurses/6.2-20200215/man/ncurses.3x - copied unchanged from r358125, vendor/ncurses/dist/man/ncurses.3x vendor/ncurses/6.2-20200215/man/new_pair.3x - copied unchanged from r358125, vendor/ncurses/dist/man/new_pair.3x vendor/ncurses/6.2-20200215/man/panel.3x - copied unchanged from r358125, vendor/ncurses/dist/man/panel.3x vendor/ncurses/6.2-20200215/man/resizeterm.3x - copied unchanged from r358125, vendor/ncurses/dist/man/resizeterm.3x vendor/ncurses/6.2-20200215/man/scr_dump.5 - copied unchanged from r358125, vendor/ncurses/dist/man/scr_dump.5 vendor/ncurses/6.2-20200215/man/tabs.1 - copied unchanged from r358125, vendor/ncurses/dist/man/tabs.1 vendor/ncurses/6.2-20200215/man/term.5 - copied unchanged from r358125, vendor/ncurses/dist/man/term.5 vendor/ncurses/6.2-20200215/man/term.7 - copied unchanged from r358125, vendor/ncurses/dist/man/term.7 vendor/ncurses/6.2-20200215/man/term_variables.3x - copied unchanged from r358125, vendor/ncurses/dist/man/term_variables.3x vendor/ncurses/6.2-20200215/man/terminfo.head - copied unchanged from r358125, vendor/ncurses/dist/man/terminfo.head vendor/ncurses/6.2-20200215/man/terminfo.tail - copied unchanged from r358125, vendor/ncurses/dist/man/terminfo.tail vendor/ncurses/6.2-20200215/man/tic.1m - copied unchanged from r358125, vendor/ncurses/dist/man/tic.1m vendor/ncurses/6.2-20200215/man/toe.1m - copied unchanged from r358125, vendor/ncurses/dist/man/toe.1m vendor/ncurses/6.2-20200215/man/tput.1 - copied unchanged from r358125, vendor/ncurses/dist/man/tput.1 vendor/ncurses/6.2-20200215/man/tset.1 - copied unchanged from r358125, vendor/ncurses/dist/man/tset.1 vendor/ncurses/6.2-20200215/man/user_caps.5 - copied unchanged from r358125, vendor/ncurses/dist/man/user_caps.5 vendor/ncurses/6.2-20200215/man/wresize.3x - copied unchanged from r358125, vendor/ncurses/dist/man/wresize.3x vendor/ncurses/6.2-20200215/menu/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/menu/Makefile.in vendor/ncurses/6.2-20200215/menu/READ.ME - copied unchanged from r358125, vendor/ncurses/dist/menu/READ.ME vendor/ncurses/6.2-20200215/menu/eti.h - copied unchanged from r358125, vendor/ncurses/dist/menu/eti.h vendor/ncurses/6.2-20200215/menu/headers - copied unchanged from r358125, vendor/ncurses/dist/menu/headers vendor/ncurses/6.2-20200215/menu/llib-lmenu - copied unchanged from r358125, vendor/ncurses/dist/menu/llib-lmenu vendor/ncurses/6.2-20200215/menu/llib-lmenut - copied unchanged from r358125, vendor/ncurses/dist/menu/llib-lmenut vendor/ncurses/6.2-20200215/menu/llib-lmenutw - copied unchanged from r358125, vendor/ncurses/dist/menu/llib-lmenutw vendor/ncurses/6.2-20200215/menu/llib-lmenuw - copied unchanged from r358125, vendor/ncurses/dist/menu/llib-lmenuw vendor/ncurses/6.2-20200215/menu/m_attribs.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_attribs.c vendor/ncurses/6.2-20200215/menu/m_cursor.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_cursor.c vendor/ncurses/6.2-20200215/menu/m_driver.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_driver.c vendor/ncurses/6.2-20200215/menu/m_format.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_format.c vendor/ncurses/6.2-20200215/menu/m_global.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_global.c vendor/ncurses/6.2-20200215/menu/m_hook.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_hook.c vendor/ncurses/6.2-20200215/menu/m_item_cur.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_item_cur.c vendor/ncurses/6.2-20200215/menu/m_item_nam.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_item_nam.c vendor/ncurses/6.2-20200215/menu/m_item_new.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_item_new.c vendor/ncurses/6.2-20200215/menu/m_item_opt.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_item_opt.c vendor/ncurses/6.2-20200215/menu/m_item_top.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_item_top.c vendor/ncurses/6.2-20200215/menu/m_item_use.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_item_use.c vendor/ncurses/6.2-20200215/menu/m_item_val.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_item_val.c vendor/ncurses/6.2-20200215/menu/m_item_vis.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_item_vis.c vendor/ncurses/6.2-20200215/menu/m_items.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_items.c vendor/ncurses/6.2-20200215/menu/m_new.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_new.c vendor/ncurses/6.2-20200215/menu/m_opts.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_opts.c vendor/ncurses/6.2-20200215/menu/m_pad.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_pad.c vendor/ncurses/6.2-20200215/menu/m_pattern.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_pattern.c vendor/ncurses/6.2-20200215/menu/m_post.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_post.c vendor/ncurses/6.2-20200215/menu/m_req_name.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_req_name.c vendor/ncurses/6.2-20200215/menu/m_scale.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_scale.c vendor/ncurses/6.2-20200215/menu/m_spacing.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_spacing.c vendor/ncurses/6.2-20200215/menu/m_sub.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_sub.c vendor/ncurses/6.2-20200215/menu/m_trace.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_trace.c vendor/ncurses/6.2-20200215/menu/m_userptr.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_userptr.c vendor/ncurses/6.2-20200215/menu/m_win.c - copied unchanged from r358125, vendor/ncurses/dist/menu/m_win.c vendor/ncurses/6.2-20200215/menu/menu.h - copied unchanged from r358125, vendor/ncurses/dist/menu/menu.h vendor/ncurses/6.2-20200215/menu/menu.priv.h - copied unchanged from r358125, vendor/ncurses/dist/menu/menu.priv.h vendor/ncurses/6.2-20200215/menu/mf_common.h - copied unchanged from r358125, vendor/ncurses/dist/menu/mf_common.h vendor/ncurses/6.2-20200215/menu/modules - copied unchanged from r358125, vendor/ncurses/dist/menu/modules vendor/ncurses/6.2-20200215/misc/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/misc/Makefile.in vendor/ncurses/6.2-20200215/misc/chkdef.cmd - copied unchanged from r358125, vendor/ncurses/dist/misc/chkdef.cmd vendor/ncurses/6.2-20200215/misc/cleantic.cmd - copied unchanged from r358125, vendor/ncurses/dist/misc/cleantic.cmd vendor/ncurses/6.2-20200215/misc/cmpdef.cmd - copied unchanged from r358125, vendor/ncurses/dist/misc/cmpdef.cmd vendor/ncurses/6.2-20200215/misc/csort - copied unchanged from r358125, vendor/ncurses/dist/misc/csort vendor/ncurses/6.2-20200215/misc/emx.src - copied unchanged from r358125, vendor/ncurses/dist/misc/emx.src vendor/ncurses/6.2-20200215/misc/gen-pkgconfig.in - copied unchanged from r358125, vendor/ncurses/dist/misc/gen-pkgconfig.in vendor/ncurses/6.2-20200215/misc/gen_edit.sh - copied unchanged from r358125, vendor/ncurses/dist/misc/gen_edit.sh vendor/ncurses/6.2-20200215/misc/magic - copied unchanged from r358125, vendor/ncurses/dist/misc/magic vendor/ncurses/6.2-20200215/misc/makedef.cmd - copied unchanged from r358125, vendor/ncurses/dist/misc/makedef.cmd vendor/ncurses/6.2-20200215/misc/makellib - copied unchanged from r358125, vendor/ncurses/dist/misc/makellib vendor/ncurses/6.2-20200215/misc/ncurses-config.in - copied unchanged from r358125, vendor/ncurses/dist/misc/ncurses-config.in vendor/ncurses/6.2-20200215/misc/ncurses.supp - copied unchanged from r358125, vendor/ncurses/dist/misc/ncurses.supp vendor/ncurses/6.2-20200215/misc/run_tic.in - copied unchanged from r358125, vendor/ncurses/dist/misc/run_tic.in vendor/ncurses/6.2-20200215/misc/shlib - copied unchanged from r358125, vendor/ncurses/dist/misc/shlib vendor/ncurses/6.2-20200215/misc/tdlint - copied unchanged from r358125, vendor/ncurses/dist/misc/tdlint vendor/ncurses/6.2-20200215/mk-0th.awk - copied unchanged from r358125, vendor/ncurses/dist/mk-0th.awk vendor/ncurses/6.2-20200215/mk-1st.awk - copied unchanged from r358125, vendor/ncurses/dist/mk-1st.awk vendor/ncurses/6.2-20200215/mk-2nd.awk - copied unchanged from r358125, vendor/ncurses/dist/mk-2nd.awk vendor/ncurses/6.2-20200215/mk-hdr.awk - copied unchanged from r358125, vendor/ncurses/dist/mk-hdr.awk vendor/ncurses/6.2-20200215/ncurses/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/ncurses/Makefile.in vendor/ncurses/6.2-20200215/ncurses/README - copied unchanged from r358125, vendor/ncurses/dist/ncurses/README vendor/ncurses/6.2-20200215/ncurses/README.IZ - copied unchanged from r358125, vendor/ncurses/dist/ncurses/README.IZ vendor/ncurses/6.2-20200215/ncurses/SigAction.h - copied unchanged from r358125, vendor/ncurses/dist/ncurses/SigAction.h vendor/ncurses/6.2-20200215/ncurses/base/MKkeyname.awk - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/MKkeyname.awk vendor/ncurses/6.2-20200215/ncurses/base/MKlib_gen.sh - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/MKlib_gen.sh vendor/ncurses/6.2-20200215/ncurses/base/MKunctrl.awk - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/MKunctrl.awk vendor/ncurses/6.2-20200215/ncurses/base/README - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/README vendor/ncurses/6.2-20200215/ncurses/base/define_key.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/define_key.c vendor/ncurses/6.2-20200215/ncurses/base/key_defined.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/key_defined.c vendor/ncurses/6.2-20200215/ncurses/base/keybound.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/keybound.c vendor/ncurses/6.2-20200215/ncurses/base/keyok.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/keyok.c vendor/ncurses/6.2-20200215/ncurses/base/legacy_coding.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/legacy_coding.c vendor/ncurses/6.2-20200215/ncurses/base/lib_addch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_addch.c vendor/ncurses/6.2-20200215/ncurses/base/lib_addstr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_addstr.c vendor/ncurses/6.2-20200215/ncurses/base/lib_beep.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_beep.c vendor/ncurses/6.2-20200215/ncurses/base/lib_bkgd.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_bkgd.c vendor/ncurses/6.2-20200215/ncurses/base/lib_box.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_box.c vendor/ncurses/6.2-20200215/ncurses/base/lib_chgat.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_chgat.c vendor/ncurses/6.2-20200215/ncurses/base/lib_clear.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_clear.c vendor/ncurses/6.2-20200215/ncurses/base/lib_clearok.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_clearok.c vendor/ncurses/6.2-20200215/ncurses/base/lib_clrbot.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_clrbot.c vendor/ncurses/6.2-20200215/ncurses/base/lib_clreol.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_clreol.c vendor/ncurses/6.2-20200215/ncurses/base/lib_color.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_color.c vendor/ncurses/6.2-20200215/ncurses/base/lib_colorset.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_colorset.c vendor/ncurses/6.2-20200215/ncurses/base/lib_delch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_delch.c vendor/ncurses/6.2-20200215/ncurses/base/lib_delwin.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_delwin.c vendor/ncurses/6.2-20200215/ncurses/base/lib_dft_fgbg.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_dft_fgbg.c vendor/ncurses/6.2-20200215/ncurses/base/lib_driver.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_driver.c vendor/ncurses/6.2-20200215/ncurses/base/lib_echo.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_echo.c vendor/ncurses/6.2-20200215/ncurses/base/lib_endwin.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_endwin.c vendor/ncurses/6.2-20200215/ncurses/base/lib_erase.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_erase.c vendor/ncurses/6.2-20200215/ncurses/base/lib_flash.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_flash.c vendor/ncurses/6.2-20200215/ncurses/base/lib_freeall.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_freeall.c vendor/ncurses/6.2-20200215/ncurses/base/lib_getch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_getch.c vendor/ncurses/6.2-20200215/ncurses/base/lib_getstr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_getstr.c vendor/ncurses/6.2-20200215/ncurses/base/lib_hline.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_hline.c vendor/ncurses/6.2-20200215/ncurses/base/lib_immedok.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_immedok.c vendor/ncurses/6.2-20200215/ncurses/base/lib_inchstr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_inchstr.c vendor/ncurses/6.2-20200215/ncurses/base/lib_initscr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_initscr.c vendor/ncurses/6.2-20200215/ncurses/base/lib_insch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_insch.c vendor/ncurses/6.2-20200215/ncurses/base/lib_insdel.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_insdel.c vendor/ncurses/6.2-20200215/ncurses/base/lib_insnstr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_insnstr.c vendor/ncurses/6.2-20200215/ncurses/base/lib_instr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_instr.c vendor/ncurses/6.2-20200215/ncurses/base/lib_isendwin.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_isendwin.c vendor/ncurses/6.2-20200215/ncurses/base/lib_leaveok.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_leaveok.c vendor/ncurses/6.2-20200215/ncurses/base/lib_mouse.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_mouse.c vendor/ncurses/6.2-20200215/ncurses/base/lib_move.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_move.c vendor/ncurses/6.2-20200215/ncurses/base/lib_mvwin.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_mvwin.c vendor/ncurses/6.2-20200215/ncurses/base/lib_newterm.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_newterm.c vendor/ncurses/6.2-20200215/ncurses/base/lib_newwin.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_newwin.c vendor/ncurses/6.2-20200215/ncurses/base/lib_nl.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_nl.c vendor/ncurses/6.2-20200215/ncurses/base/lib_overlay.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_overlay.c vendor/ncurses/6.2-20200215/ncurses/base/lib_pad.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_pad.c vendor/ncurses/6.2-20200215/ncurses/base/lib_printw.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_printw.c vendor/ncurses/6.2-20200215/ncurses/base/lib_redrawln.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_redrawln.c vendor/ncurses/6.2-20200215/ncurses/base/lib_refresh.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_refresh.c vendor/ncurses/6.2-20200215/ncurses/base/lib_restart.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_restart.c vendor/ncurses/6.2-20200215/ncurses/base/lib_scanw.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_scanw.c vendor/ncurses/6.2-20200215/ncurses/base/lib_screen.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_screen.c vendor/ncurses/6.2-20200215/ncurses/base/lib_scroll.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_scroll.c vendor/ncurses/6.2-20200215/ncurses/base/lib_scrollok.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_scrollok.c vendor/ncurses/6.2-20200215/ncurses/base/lib_scrreg.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_scrreg.c vendor/ncurses/6.2-20200215/ncurses/base/lib_set_term.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_set_term.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slk.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slk.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slkatr_set.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slkatr_set.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slkatrof.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slkatrof.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slkatron.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slkatron.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slkatrset.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slkatrset.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slkattr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slkattr.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slkclear.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slkclear.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slkcolor.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slkcolor.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slkinit.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slkinit.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slklab.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slklab.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slkrefr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slkrefr.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slkset.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slkset.c vendor/ncurses/6.2-20200215/ncurses/base/lib_slktouch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_slktouch.c vendor/ncurses/6.2-20200215/ncurses/base/lib_touch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_touch.c vendor/ncurses/6.2-20200215/ncurses/base/lib_ungetch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_ungetch.c vendor/ncurses/6.2-20200215/ncurses/base/lib_vline.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_vline.c vendor/ncurses/6.2-20200215/ncurses/base/lib_wattroff.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_wattroff.c vendor/ncurses/6.2-20200215/ncurses/base/lib_wattron.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_wattron.c vendor/ncurses/6.2-20200215/ncurses/base/lib_winch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_winch.c vendor/ncurses/6.2-20200215/ncurses/base/lib_window.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/lib_window.c vendor/ncurses/6.2-20200215/ncurses/base/nc_panel.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/nc_panel.c vendor/ncurses/6.2-20200215/ncurses/base/new_pair.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/new_pair.c vendor/ncurses/6.2-20200215/ncurses/base/resizeterm.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/resizeterm.c vendor/ncurses/6.2-20200215/ncurses/base/safe_sprintf.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/safe_sprintf.c vendor/ncurses/6.2-20200215/ncurses/base/sigaction.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/sigaction.c vendor/ncurses/6.2-20200215/ncurses/base/tries.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/tries.c vendor/ncurses/6.2-20200215/ncurses/base/use_window.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/use_window.c vendor/ncurses/6.2-20200215/ncurses/base/version.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/version.c vendor/ncurses/6.2-20200215/ncurses/base/vsscanf.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/vsscanf.c vendor/ncurses/6.2-20200215/ncurses/base/wresize.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/base/wresize.c vendor/ncurses/6.2-20200215/ncurses/build.priv.h - copied unchanged from r358125, vendor/ncurses/dist/ncurses/build.priv.h vendor/ncurses/6.2-20200215/ncurses/curses.priv.h - copied unchanged from r358125, vendor/ncurses/dist/ncurses/curses.priv.h vendor/ncurses/6.2-20200215/ncurses/fifo_defs.h - copied unchanged from r358125, vendor/ncurses/dist/ncurses/fifo_defs.h vendor/ncurses/6.2-20200215/ncurses/llib-lncurses - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-lncurses vendor/ncurses/6.2-20200215/ncurses/llib-lncursest - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-lncursest vendor/ncurses/6.2-20200215/ncurses/llib-lncursestw - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-lncursestw vendor/ncurses/6.2-20200215/ncurses/llib-lncursesw - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-lncursesw vendor/ncurses/6.2-20200215/ncurses/llib-ltic - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-ltic vendor/ncurses/6.2-20200215/ncurses/llib-ltict - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-ltict vendor/ncurses/6.2-20200215/ncurses/llib-ltictw - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-ltictw vendor/ncurses/6.2-20200215/ncurses/llib-lticw - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-lticw vendor/ncurses/6.2-20200215/ncurses/llib-ltinfo - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-ltinfo vendor/ncurses/6.2-20200215/ncurses/llib-ltinfot - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-ltinfot vendor/ncurses/6.2-20200215/ncurses/llib-ltinfotw - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-ltinfotw vendor/ncurses/6.2-20200215/ncurses/llib-ltinfow - copied unchanged from r358125, vendor/ncurses/dist/ncurses/llib-ltinfow vendor/ncurses/6.2-20200215/ncurses/modules - copied unchanged from r358125, vendor/ncurses/dist/ncurses/modules vendor/ncurses/6.2-20200215/ncurses/new_pair.h - copied unchanged from r358125, vendor/ncurses/dist/ncurses/new_pair.h vendor/ncurses/6.2-20200215/ncurses/report_offsets.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/report_offsets.c vendor/ncurses/6.2-20200215/ncurses/tinfo/MKcaptab.awk - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/MKcaptab.awk vendor/ncurses/6.2-20200215/ncurses/tinfo/MKcaptab.sh - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/MKcaptab.sh vendor/ncurses/6.2-20200215/ncurses/tinfo/MKcodes.awk - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/MKcodes.awk vendor/ncurses/6.2-20200215/ncurses/tinfo/MKfallback.sh - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/MKfallback.sh vendor/ncurses/6.2-20200215/ncurses/tinfo/MKkeys_list.sh - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/MKkeys_list.sh vendor/ncurses/6.2-20200215/ncurses/tinfo/MKnames.awk - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/MKnames.awk vendor/ncurses/6.2-20200215/ncurses/tinfo/MKuserdefs.sh - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/MKuserdefs.sh vendor/ncurses/6.2-20200215/ncurses/tinfo/README - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/README vendor/ncurses/6.2-20200215/ncurses/tinfo/access.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/access.c vendor/ncurses/6.2-20200215/ncurses/tinfo/add_tries.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/add_tries.c vendor/ncurses/6.2-20200215/ncurses/tinfo/alloc_entry.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/alloc_entry.c vendor/ncurses/6.2-20200215/ncurses/tinfo/alloc_ttype.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/alloc_ttype.c vendor/ncurses/6.2-20200215/ncurses/tinfo/captoinfo.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/captoinfo.c vendor/ncurses/6.2-20200215/ncurses/tinfo/comp_error.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/comp_error.c vendor/ncurses/6.2-20200215/ncurses/tinfo/comp_expand.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/comp_expand.c vendor/ncurses/6.2-20200215/ncurses/tinfo/comp_hash.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/comp_hash.c vendor/ncurses/6.2-20200215/ncurses/tinfo/comp_parse.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/comp_parse.c vendor/ncurses/6.2-20200215/ncurses/tinfo/comp_scan.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/comp_scan.c vendor/ncurses/6.2-20200215/ncurses/tinfo/db_iterator.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/db_iterator.c vendor/ncurses/6.2-20200215/ncurses/tinfo/doalloc.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/doalloc.c vendor/ncurses/6.2-20200215/ncurses/tinfo/entries.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/entries.c vendor/ncurses/6.2-20200215/ncurses/tinfo/free_ttype.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/free_ttype.c vendor/ncurses/6.2-20200215/ncurses/tinfo/getenv_num.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/getenv_num.c vendor/ncurses/6.2-20200215/ncurses/tinfo/hashed_db.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/hashed_db.c vendor/ncurses/6.2-20200215/ncurses/tinfo/home_terminfo.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/home_terminfo.c vendor/ncurses/6.2-20200215/ncurses/tinfo/init_keytry.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/init_keytry.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_acs.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_acs.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_baudrate.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_baudrate.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_cur_term.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_cur_term.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_data.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_data.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_has_cap.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_has_cap.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_kernel.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_kernel.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_longname.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_longname.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_napms.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_napms.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_options.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_options.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_print.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_print.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_raw.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_raw.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_setup.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_setup.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_termcap.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_termcap.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_termname.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_termname.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_tgoto.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_tgoto.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_ti.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_ti.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_tparm.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_tparm.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_tputs.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_tputs.c vendor/ncurses/6.2-20200215/ncurses/tinfo/lib_ttyflags.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/lib_ttyflags.c vendor/ncurses/6.2-20200215/ncurses/tinfo/make_hash.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/make_hash.c vendor/ncurses/6.2-20200215/ncurses/tinfo/make_keys.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/make_keys.c vendor/ncurses/6.2-20200215/ncurses/tinfo/name_match.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/name_match.c vendor/ncurses/6.2-20200215/ncurses/tinfo/obsolete.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/obsolete.c vendor/ncurses/6.2-20200215/ncurses/tinfo/parse_entry.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/parse_entry.c vendor/ncurses/6.2-20200215/ncurses/tinfo/read_entry.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/read_entry.c vendor/ncurses/6.2-20200215/ncurses/tinfo/read_termcap.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/read_termcap.c vendor/ncurses/6.2-20200215/ncurses/tinfo/strings.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/strings.c vendor/ncurses/6.2-20200215/ncurses/tinfo/tinfo_driver.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/tinfo_driver.c vendor/ncurses/6.2-20200215/ncurses/tinfo/trim_sgr0.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/trim_sgr0.c vendor/ncurses/6.2-20200215/ncurses/tinfo/use_screen.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/use_screen.c vendor/ncurses/6.2-20200215/ncurses/tinfo/write_entry.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tinfo/write_entry.c vendor/ncurses/6.2-20200215/ncurses/trace/README - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/README vendor/ncurses/6.2-20200215/ncurses/trace/lib_trace.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/lib_trace.c vendor/ncurses/6.2-20200215/ncurses/trace/lib_traceatr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/lib_traceatr.c vendor/ncurses/6.2-20200215/ncurses/trace/lib_tracebits.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/lib_tracebits.c vendor/ncurses/6.2-20200215/ncurses/trace/lib_tracechr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/lib_tracechr.c vendor/ncurses/6.2-20200215/ncurses/trace/lib_tracedmp.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/lib_tracedmp.c vendor/ncurses/6.2-20200215/ncurses/trace/lib_tracemse.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/lib_tracemse.c vendor/ncurses/6.2-20200215/ncurses/trace/trace_buf.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/trace_buf.c vendor/ncurses/6.2-20200215/ncurses/trace/trace_tries.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/trace_tries.c vendor/ncurses/6.2-20200215/ncurses/trace/trace_xnames.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/trace_xnames.c vendor/ncurses/6.2-20200215/ncurses/trace/varargs.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/varargs.c vendor/ncurses/6.2-20200215/ncurses/trace/visbuf.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/trace/visbuf.c vendor/ncurses/6.2-20200215/ncurses/tty/MKexpanded.sh - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tty/MKexpanded.sh vendor/ncurses/6.2-20200215/ncurses/tty/hardscroll.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tty/hardscroll.c vendor/ncurses/6.2-20200215/ncurses/tty/hashmap.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tty/hashmap.c vendor/ncurses/6.2-20200215/ncurses/tty/lib_mvcur.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tty/lib_mvcur.c vendor/ncurses/6.2-20200215/ncurses/tty/lib_tstp.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tty/lib_tstp.c vendor/ncurses/6.2-20200215/ncurses/tty/lib_twait.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tty/lib_twait.c vendor/ncurses/6.2-20200215/ncurses/tty/lib_vidattr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tty/lib_vidattr.c vendor/ncurses/6.2-20200215/ncurses/tty/tty_update.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/tty/tty_update.c vendor/ncurses/6.2-20200215/ncurses/widechar/charable.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/charable.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_add_wch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_add_wch.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_box_set.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_box_set.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_cchar.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_cchar.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_erasewchar.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_erasewchar.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_get_wch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_get_wch.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_get_wstr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_get_wstr.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_hline_set.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_hline_set.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_in_wch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_in_wch.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_in_wchnstr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_in_wchnstr.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_ins_wch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_ins_wch.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_inwstr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_inwstr.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_key_name.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_key_name.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_pecho_wchar.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_pecho_wchar.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_slk_wset.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_slk_wset.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_unget_wch.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_unget_wch.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_vid_attr.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_vid_attr.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_vline_set.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_vline_set.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_wacs.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_wacs.c vendor/ncurses/6.2-20200215/ncurses/widechar/lib_wunctrl.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/lib_wunctrl.c vendor/ncurses/6.2-20200215/ncurses/widechar/widechars.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/widechar/widechars.c vendor/ncurses/6.2-20200215/ncurses/win32con/gettimeofday.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/win32con/gettimeofday.c vendor/ncurses/6.2-20200215/ncurses/win32con/wcwidth.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/win32con/wcwidth.c vendor/ncurses/6.2-20200215/ncurses/win32con/win_driver.c - copied unchanged from r358125, vendor/ncurses/dist/ncurses/win32con/win_driver.c vendor/ncurses/6.2-20200215/package/debian-mingw/changelog - copied unchanged from r358125, vendor/ncurses/dist/package/debian-mingw/changelog vendor/ncurses/6.2-20200215/package/debian-mingw64/changelog - copied unchanged from r358125, vendor/ncurses/dist/package/debian-mingw64/changelog vendor/ncurses/6.2-20200215/package/debian/changelog - copied unchanged from r358125, vendor/ncurses/dist/package/debian/changelog vendor/ncurses/6.2-20200215/package/mingw-ncurses.nsi - copied unchanged from r358125, vendor/ncurses/dist/package/mingw-ncurses.nsi vendor/ncurses/6.2-20200215/package/mingw-ncurses.spec - copied unchanged from r358125, vendor/ncurses/dist/package/mingw-ncurses.spec vendor/ncurses/6.2-20200215/package/ncurses.map - copied unchanged from r358125, vendor/ncurses/dist/package/ncurses.map vendor/ncurses/6.2-20200215/package/ncurses.spec - copied unchanged from r358125, vendor/ncurses/dist/package/ncurses.spec vendor/ncurses/6.2-20200215/package/ncursest.map - copied unchanged from r358125, vendor/ncurses/dist/package/ncursest.map vendor/ncurses/6.2-20200215/package/ncursest.spec - copied unchanged from r358125, vendor/ncurses/dist/package/ncursest.spec vendor/ncurses/6.2-20200215/package/ncursestw.map - copied unchanged from r358125, vendor/ncurses/dist/package/ncursestw.map vendor/ncurses/6.2-20200215/package/ncursesw.map - copied unchanged from r358125, vendor/ncurses/dist/package/ncursesw.map vendor/ncurses/6.2-20200215/panel/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/panel/Makefile.in vendor/ncurses/6.2-20200215/panel/headers - copied unchanged from r358125, vendor/ncurses/dist/panel/headers vendor/ncurses/6.2-20200215/panel/llib-lpanel - copied unchanged from r358125, vendor/ncurses/dist/panel/llib-lpanel vendor/ncurses/6.2-20200215/panel/llib-lpanelt - copied unchanged from r358125, vendor/ncurses/dist/panel/llib-lpanelt vendor/ncurses/6.2-20200215/panel/llib-lpaneltw - copied unchanged from r358125, vendor/ncurses/dist/panel/llib-lpaneltw vendor/ncurses/6.2-20200215/panel/llib-lpanelw - copied unchanged from r358125, vendor/ncurses/dist/panel/llib-lpanelw vendor/ncurses/6.2-20200215/panel/modules - copied unchanged from r358125, vendor/ncurses/dist/panel/modules vendor/ncurses/6.2-20200215/panel/p_above.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_above.c vendor/ncurses/6.2-20200215/panel/p_below.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_below.c vendor/ncurses/6.2-20200215/panel/p_bottom.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_bottom.c vendor/ncurses/6.2-20200215/panel/p_delete.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_delete.c vendor/ncurses/6.2-20200215/panel/p_hidden.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_hidden.c vendor/ncurses/6.2-20200215/panel/p_hide.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_hide.c vendor/ncurses/6.2-20200215/panel/p_move.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_move.c vendor/ncurses/6.2-20200215/panel/p_new.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_new.c vendor/ncurses/6.2-20200215/panel/p_replace.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_replace.c vendor/ncurses/6.2-20200215/panel/p_show.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_show.c vendor/ncurses/6.2-20200215/panel/p_top.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_top.c vendor/ncurses/6.2-20200215/panel/p_update.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_update.c vendor/ncurses/6.2-20200215/panel/p_user.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_user.c vendor/ncurses/6.2-20200215/panel/p_win.c - copied unchanged from r358125, vendor/ncurses/dist/panel/p_win.c vendor/ncurses/6.2-20200215/panel/panel.c - copied unchanged from r358125, vendor/ncurses/dist/panel/panel.c vendor/ncurses/6.2-20200215/panel/panel.h - copied unchanged from r358125, vendor/ncurses/dist/panel/panel.h vendor/ncurses/6.2-20200215/panel/panel.priv.h - copied unchanged from r358125, vendor/ncurses/dist/panel/panel.priv.h vendor/ncurses/6.2-20200215/progs/MKtermsort.sh - copied unchanged from r358125, vendor/ncurses/dist/progs/MKtermsort.sh vendor/ncurses/6.2-20200215/progs/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/progs/Makefile.in vendor/ncurses/6.2-20200215/progs/capconvert - copied unchanged from r358125, vendor/ncurses/dist/progs/capconvert vendor/ncurses/6.2-20200215/progs/clear.c - copied unchanged from r358125, vendor/ncurses/dist/progs/clear.c vendor/ncurses/6.2-20200215/progs/clear.sh - copied unchanged from r358125, vendor/ncurses/dist/progs/clear.sh vendor/ncurses/6.2-20200215/progs/clear_cmd.c - copied unchanged from r358125, vendor/ncurses/dist/progs/clear_cmd.c vendor/ncurses/6.2-20200215/progs/clear_cmd.h - copied unchanged from r358125, vendor/ncurses/dist/progs/clear_cmd.h vendor/ncurses/6.2-20200215/progs/dump_entry.c - copied unchanged from r358125, vendor/ncurses/dist/progs/dump_entry.c vendor/ncurses/6.2-20200215/progs/dump_entry.h - copied unchanged from r358125, vendor/ncurses/dist/progs/dump_entry.h vendor/ncurses/6.2-20200215/progs/infocmp.c - copied unchanged from r358125, vendor/ncurses/dist/progs/infocmp.c vendor/ncurses/6.2-20200215/progs/modules - copied unchanged from r358125, vendor/ncurses/dist/progs/modules vendor/ncurses/6.2-20200215/progs/progs.priv.h - copied unchanged from r358125, vendor/ncurses/dist/progs/progs.priv.h vendor/ncurses/6.2-20200215/progs/reset_cmd.c - copied unchanged from r358125, vendor/ncurses/dist/progs/reset_cmd.c vendor/ncurses/6.2-20200215/progs/reset_cmd.h - copied unchanged from r358125, vendor/ncurses/dist/progs/reset_cmd.h vendor/ncurses/6.2-20200215/progs/tabs.c - copied unchanged from r358125, vendor/ncurses/dist/progs/tabs.c vendor/ncurses/6.2-20200215/progs/tic.c - copied unchanged from r358125, vendor/ncurses/dist/progs/tic.c vendor/ncurses/6.2-20200215/progs/toe.c - copied unchanged from r358125, vendor/ncurses/dist/progs/toe.c vendor/ncurses/6.2-20200215/progs/tparm_type.c - copied unchanged from r358125, vendor/ncurses/dist/progs/tparm_type.c vendor/ncurses/6.2-20200215/progs/tparm_type.h - copied unchanged from r358125, vendor/ncurses/dist/progs/tparm_type.h vendor/ncurses/6.2-20200215/progs/tput.c - copied unchanged from r358125, vendor/ncurses/dist/progs/tput.c vendor/ncurses/6.2-20200215/progs/transform.c - copied unchanged from r358125, vendor/ncurses/dist/progs/transform.c vendor/ncurses/6.2-20200215/progs/tset.c - copied unchanged from r358125, vendor/ncurses/dist/progs/tset.c vendor/ncurses/6.2-20200215/progs/tty_settings.c - copied unchanged from r358125, vendor/ncurses/dist/progs/tty_settings.c vendor/ncurses/6.2-20200215/progs/tty_settings.h - copied unchanged from r358125, vendor/ncurses/dist/progs/tty_settings.h vendor/ncurses/6.2-20200215/test/Makefile.in - copied unchanged from r358125, vendor/ncurses/dist/test/Makefile.in vendor/ncurses/6.2-20200215/test/README - copied unchanged from r358125, vendor/ncurses/dist/test/README vendor/ncurses/6.2-20200215/test/aclocal.m4 - copied unchanged from r358125, vendor/ncurses/dist/test/aclocal.m4 vendor/ncurses/6.2-20200215/test/background.c - copied unchanged from r358125, vendor/ncurses/dist/test/background.c vendor/ncurses/6.2-20200215/test/blue.c - copied unchanged from r358125, vendor/ncurses/dist/test/blue.c vendor/ncurses/6.2-20200215/test/bs.6 - copied unchanged from r358125, vendor/ncurses/dist/test/bs.6 vendor/ncurses/6.2-20200215/test/bs.c - copied unchanged from r358125, vendor/ncurses/dist/test/bs.c vendor/ncurses/6.2-20200215/test/cardfile.c - copied unchanged from r358125, vendor/ncurses/dist/test/cardfile.c vendor/ncurses/6.2-20200215/test/chgat.c - copied unchanged from r358125, vendor/ncurses/dist/test/chgat.c vendor/ncurses/6.2-20200215/test/clip_printw.c - copied unchanged from r358125, vendor/ncurses/dist/test/clip_printw.c vendor/ncurses/6.2-20200215/test/color_content.c - copied unchanged from r358125, vendor/ncurses/dist/test/color_content.c vendor/ncurses/6.2-20200215/test/color_name.h - copied unchanged from r358125, vendor/ncurses/dist/test/color_name.h vendor/ncurses/6.2-20200215/test/color_set.c - copied unchanged from r358125, vendor/ncurses/dist/test/color_set.c vendor/ncurses/6.2-20200215/test/configure - copied unchanged from r358125, vendor/ncurses/dist/test/configure vendor/ncurses/6.2-20200215/test/configure.in - copied unchanged from r358125, vendor/ncurses/dist/test/configure.in vendor/ncurses/6.2-20200215/test/demo_altkeys.c - copied unchanged from r358125, vendor/ncurses/dist/test/demo_altkeys.c vendor/ncurses/6.2-20200215/test/demo_defkey.c - copied unchanged from r358125, vendor/ncurses/dist/test/demo_defkey.c vendor/ncurses/6.2-20200215/test/demo_forms.c - copied unchanged from r358125, vendor/ncurses/dist/test/demo_forms.c vendor/ncurses/6.2-20200215/test/demo_keyok.c - copied unchanged from r358125, vendor/ncurses/dist/test/demo_keyok.c vendor/ncurses/6.2-20200215/test/demo_menus.c - copied unchanged from r358125, vendor/ncurses/dist/test/demo_menus.c vendor/ncurses/6.2-20200215/test/demo_new_pair.c - copied unchanged from r358125, vendor/ncurses/dist/test/demo_new_pair.c vendor/ncurses/6.2-20200215/test/demo_panels.c - copied unchanged from r358125, vendor/ncurses/dist/test/demo_panels.c vendor/ncurses/6.2-20200215/test/demo_tabs.c - copied unchanged from r358125, vendor/ncurses/dist/test/demo_tabs.c vendor/ncurses/6.2-20200215/test/demo_termcap.c - copied unchanged from r358125, vendor/ncurses/dist/test/demo_termcap.c vendor/ncurses/6.2-20200215/test/demo_terminfo.c - copied unchanged from r358125, vendor/ncurses/dist/test/demo_terminfo.c vendor/ncurses/6.2-20200215/test/ditto.c - copied unchanged from r358125, vendor/ncurses/dist/test/ditto.c vendor/ncurses/6.2-20200215/test/dots.c - copied unchanged from r358125, vendor/ncurses/dist/test/dots.c vendor/ncurses/6.2-20200215/test/dots_curses.c - copied unchanged from r358125, vendor/ncurses/dist/test/dots_curses.c vendor/ncurses/6.2-20200215/test/dots_mvcur.c - copied unchanged from r358125, vendor/ncurses/dist/test/dots_mvcur.c vendor/ncurses/6.2-20200215/test/dots_termcap.c - copied unchanged from r358125, vendor/ncurses/dist/test/dots_termcap.c vendor/ncurses/6.2-20200215/test/dots_xcurses.c - copied unchanged from r358125, vendor/ncurses/dist/test/dots_xcurses.c vendor/ncurses/6.2-20200215/test/dump_window.c - copied unchanged from r358125, vendor/ncurses/dist/test/dump_window.c vendor/ncurses/6.2-20200215/test/dump_window.h - copied unchanged from r358125, vendor/ncurses/dist/test/dump_window.h vendor/ncurses/6.2-20200215/test/echochar.c - copied unchanged from r358125, vendor/ncurses/dist/test/echochar.c vendor/ncurses/6.2-20200215/test/edit_field.c - copied unchanged from r358125, vendor/ncurses/dist/test/edit_field.c vendor/ncurses/6.2-20200215/test/edit_field.h - copied unchanged from r358125, vendor/ncurses/dist/test/edit_field.h vendor/ncurses/6.2-20200215/test/extended_color.c - copied unchanged from r358125, vendor/ncurses/dist/test/extended_color.c vendor/ncurses/6.2-20200215/test/filter.c - copied unchanged from r358125, vendor/ncurses/dist/test/filter.c vendor/ncurses/6.2-20200215/test/firework.c - copied unchanged from r358125, vendor/ncurses/dist/test/firework.c vendor/ncurses/6.2-20200215/test/firstlast.c - copied unchanged from r358125, vendor/ncurses/dist/test/firstlast.c vendor/ncurses/6.2-20200215/test/foldkeys.c - copied unchanged from r358125, vendor/ncurses/dist/test/foldkeys.c vendor/ncurses/6.2-20200215/test/form_driver_w.c - copied unchanged from r358125, vendor/ncurses/dist/test/form_driver_w.c vendor/ncurses/6.2-20200215/test/gdc.6 - copied unchanged from r358125, vendor/ncurses/dist/test/gdc.6 vendor/ncurses/6.2-20200215/test/gdc.c - copied unchanged from r358125, vendor/ncurses/dist/test/gdc.c vendor/ncurses/6.2-20200215/test/hanoi.c - copied unchanged from r358125, vendor/ncurses/dist/test/hanoi.c vendor/ncurses/6.2-20200215/test/hashtest.c - copied unchanged from r358125, vendor/ncurses/dist/test/hashtest.c vendor/ncurses/6.2-20200215/test/inch_wide.c - copied unchanged from r358125, vendor/ncurses/dist/test/inch_wide.c vendor/ncurses/6.2-20200215/test/inchs.c - copied unchanged from r358125, vendor/ncurses/dist/test/inchs.c vendor/ncurses/6.2-20200215/test/ins_wide.c - copied unchanged from r358125, vendor/ncurses/dist/test/ins_wide.c vendor/ncurses/6.2-20200215/test/insdelln.c - copied unchanged from r358125, vendor/ncurses/dist/test/insdelln.c vendor/ncurses/6.2-20200215/test/inserts.c - copied unchanged from r358125, vendor/ncurses/dist/test/inserts.c vendor/ncurses/6.2-20200215/test/key_names.c - copied unchanged from r358125, vendor/ncurses/dist/test/key_names.c vendor/ncurses/6.2-20200215/test/keynames.c - copied unchanged from r358125, vendor/ncurses/dist/test/keynames.c vendor/ncurses/6.2-20200215/test/knight.c - copied unchanged from r358125, vendor/ncurses/dist/test/knight.c vendor/ncurses/6.2-20200215/test/linedata.h - copied unchanged from r358125, vendor/ncurses/dist/test/linedata.h vendor/ncurses/6.2-20200215/test/linux-color.dat - copied unchanged from r358125, vendor/ncurses/dist/test/linux-color.dat vendor/ncurses/6.2-20200215/test/list_keys.c - copied unchanged from r358125, vendor/ncurses/dist/test/list_keys.c vendor/ncurses/6.2-20200215/test/listused.sh - copied unchanged from r358125, vendor/ncurses/dist/test/listused.sh vendor/ncurses/6.2-20200215/test/lrtest.c - copied unchanged from r358125, vendor/ncurses/dist/test/lrtest.c vendor/ncurses/6.2-20200215/test/make-tar.sh - copied unchanged from r358125, vendor/ncurses/dist/test/make-tar.sh vendor/ncurses/6.2-20200215/test/mk-test.awk - copied unchanged from r358125, vendor/ncurses/dist/test/mk-test.awk vendor/ncurses/6.2-20200215/test/modules - copied unchanged from r358125, vendor/ncurses/dist/test/modules vendor/ncurses/6.2-20200215/test/movewindow.c - copied unchanged from r358125, vendor/ncurses/dist/test/movewindow.c vendor/ncurses/6.2-20200215/test/ncurses.c - copied unchanged from r358125, vendor/ncurses/dist/test/ncurses.c vendor/ncurses/6.2-20200215/test/ncurses_tst.hin - copied unchanged from r358125, vendor/ncurses/dist/test/ncurses_tst.hin vendor/ncurses/6.2-20200215/test/padview.c - copied unchanged from r358125, vendor/ncurses/dist/test/padview.c vendor/ncurses/6.2-20200215/test/pair_content.c - copied unchanged from r358125, vendor/ncurses/dist/test/pair_content.c vendor/ncurses/6.2-20200215/test/parse_rgb.h - copied unchanged from r358125, vendor/ncurses/dist/test/parse_rgb.h vendor/ncurses/6.2-20200215/test/picsmap.c - copied unchanged from r358125, vendor/ncurses/dist/test/picsmap.c vendor/ncurses/6.2-20200215/test/picsmap.h - copied unchanged from r358125, vendor/ncurses/dist/test/picsmap.h vendor/ncurses/6.2-20200215/test/popup_msg.c - copied unchanged from r358125, vendor/ncurses/dist/test/popup_msg.c vendor/ncurses/6.2-20200215/test/popup_msg.h - copied unchanged from r358125, vendor/ncurses/dist/test/popup_msg.h vendor/ncurses/6.2-20200215/test/programs - copied unchanged from r358125, vendor/ncurses/dist/test/programs vendor/ncurses/6.2-20200215/test/railroad.c - copied unchanged from r358125, vendor/ncurses/dist/test/railroad.c vendor/ncurses/6.2-20200215/test/rain.c - copied unchanged from r358125, vendor/ncurses/dist/test/rain.c vendor/ncurses/6.2-20200215/test/redraw.c - copied unchanged from r358125, vendor/ncurses/dist/test/redraw.c vendor/ncurses/6.2-20200215/test/savescreen.c - copied unchanged from r358125, vendor/ncurses/dist/test/savescreen.c vendor/ncurses/6.2-20200215/test/savescreen.sh - copied unchanged from r358125, vendor/ncurses/dist/test/savescreen.sh vendor/ncurses/6.2-20200215/test/sp_tinfo.c - copied unchanged from r358125, vendor/ncurses/dist/test/sp_tinfo.c vendor/ncurses/6.2-20200215/test/test.priv.h - copied unchanged from r358125, vendor/ncurses/dist/test/test.priv.h vendor/ncurses/6.2-20200215/test/test_add_wchstr.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_add_wchstr.c vendor/ncurses/6.2-20200215/test/test_addchstr.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_addchstr.c vendor/ncurses/6.2-20200215/test/test_addstr.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_addstr.c vendor/ncurses/6.2-20200215/test/test_addwstr.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_addwstr.c vendor/ncurses/6.2-20200215/test/test_arrays.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_arrays.c vendor/ncurses/6.2-20200215/test/test_get_wstr.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_get_wstr.c vendor/ncurses/6.2-20200215/test/test_getstr.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_getstr.c vendor/ncurses/6.2-20200215/test/test_instr.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_instr.c vendor/ncurses/6.2-20200215/test/test_inwstr.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_inwstr.c vendor/ncurses/6.2-20200215/test/test_opaque.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_opaque.c vendor/ncurses/6.2-20200215/test/test_setupterm.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_setupterm.c vendor/ncurses/6.2-20200215/test/test_sgr.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_sgr.c vendor/ncurses/6.2-20200215/test/test_termattrs.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_termattrs.c vendor/ncurses/6.2-20200215/test/test_vid_puts.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_vid_puts.c vendor/ncurses/6.2-20200215/test/test_vidputs.c - copied unchanged from r358125, vendor/ncurses/dist/test/test_vidputs.c vendor/ncurses/6.2-20200215/test/testaddch.c - copied unchanged from r358125, vendor/ncurses/dist/test/testaddch.c vendor/ncurses/6.2-20200215/test/testscanw.c - copied unchanged from r358125, vendor/ncurses/dist/test/testscanw.c vendor/ncurses/6.2-20200215/test/tput-colorcube - copied unchanged from r358125, vendor/ncurses/dist/test/tput-colorcube vendor/ncurses/6.2-20200215/test/tput-initc - copied unchanged from r358125, vendor/ncurses/dist/test/tput-initc vendor/ncurses/6.2-20200215/test/tracemunch - copied unchanged from r358125, vendor/ncurses/dist/test/tracemunch vendor/ncurses/6.2-20200215/test/view.c - copied unchanged from r358125, vendor/ncurses/dist/test/view.c vendor/ncurses/6.2-20200215/test/widechars.h - copied unchanged from r358125, vendor/ncurses/dist/test/widechars.h vendor/ncurses/6.2-20200215/test/worm.c - copied unchanged from r358125, vendor/ncurses/dist/test/worm.c vendor/ncurses/6.2-20200215/test/xterm-16color.dat - copied unchanged from r358125, vendor/ncurses/dist/test/xterm-16color.dat vendor/ncurses/6.2-20200215/test/xterm-256color.dat - copied unchanged from r358125, vendor/ncurses/dist/test/xterm-256color.dat vendor/ncurses/6.2-20200215/test/xterm-88color.dat - copied unchanged from r358125, vendor/ncurses/dist/test/xterm-88color.dat Copied: vendor/ncurses/6.2-20200215/ANNOUNCE (from r358125, vendor/ncurses/dist/ANNOUNCE) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ncurses/6.2-20200215/ANNOUNCE Wed Feb 19 17:00:21 2020 (r358126, copy of r358125, vendor/ncurses/dist/ANNOUNCE) @@ -0,0 +1,982 @@ + Announcing ncurses 6.2 + +Overview + + The ncurses (new curses) library is a free software emulation of + curses in System V Release 4.0 (SVr4), and more. It uses terminfo + format, supports pads and color and multiple highlights and forms + characters and function-key mapping, and has all the other SVr4-curses + enhancements over BSD curses. SVr4 curses became the basis of X/Open + Curses. + + In mid-June 1995, the maintainer of 4.4BSD curses declared that he + considered 4.4BSD curses obsolete, and encouraged the keepers of unix + releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses. + + Since 1995, ncurses has been ported to many systems: + * It is used in almost every system based on the Linux kernel (aside + from some embedded applications). + * It is used as the system curses library on OpenBSD, FreeBSD and + MacOS. + * It is used in environments such as Cygwin and MinGW. The first of + these was EMX on OS/2 Warp. + * It is used (though usually not as the system curses) on all of the + vendor unix systems, e.g., AIX, HP-UX, IRIX64, SCO, Solaris, + Tru64. + * It should work readily on any ANSI/POSIX-conforming unix. + + The distribution includes the library and support utilities, including + * captoinfo, a termcap conversion tool + * clear, utility for clearing the screen + * infocmp, the terminfo decompiler + * tabs, set tabs on a terminal + * tic, the terminfo compiler + * toe, list (table of) terminfo entries + * tput, utility for retrieving terminal capabilities in shell + scripts + * tset, to initialize the terminal + + Full manual pages are provided for the library and tools. + + The ncurses distribution is available at ncurses' homepage: + + ftp://ftp.invisible-island.net/ncurses/ or + https://invisible-mirror.net/archives/ncurses/ . + + It is also available via anonymous FTP at the GNU distribution site + + ftp://ftp.gnu.org/gnu/ncurses/ . + +Release Notes + + These notes are for ncurses 6.2, released February 12, 2020. + + This release is designed to be source-compatible with ncurses 5.0 + through 6.1; providing extensions to the application binary interface + (ABI). Although the source can still be configured to support the + ncurses 5 ABI, the reason for the release is to reflect improvements + to the ncurses 6 ABI and the supporting utility programs. + + There are, of course, numerous other improvements, listed in this + announcement. + + The most important bug-fixes/improvements dealt with user-defined + capabilities in terminal descriptions. The release notes also mention + some other bug-fixes, but are focused on new features and improvements + to existing features since ncurses 6.1 release. + + Library improvements + + New features + + There are several new features: + * O_EDGE_INSERT_STAY tells the form library to optionally delay + cursor movement on a field edge/boundary + * O_INPUT_FIELD extension to form library allows a dynamic field to + shrink if the new limit is smaller than the current field size. + * added exit_curses and exit_terminfo to replace internal symbols + for leak-checking. + * added curses_trace, to replace trace(). + + Additionally, to improve performance other changes (and extensions) + are provided in this release: + * mouse decoding now handles shift/control/alt logic when decoding + xterm's 1006 mode + * ncurses now defines a limit for wgetnstr, wgetn_wstr when length + is negative or "too large". + * reordered loop-limit checks in winsnstr in case the string has no + terminating null and only the number of characters is used. + * there is now no buffer-size limit when reading the $TERMCAP + variable. + * the $TERMCAP variable may be interpreted as a fallback to a + terminfo entry + * mvcur now decides whether to use hard-tabs, using xt, tbc and hts + as clues. + * extended colors are improved by modifying an internal call to + vid_puts to pass extended color pairs e.g., from tty_update.c and + lib_mvcur.c + * the initialization functions now avoid relying upon persistent + data for the result from getenv + * scrolling is improved: + + a limit check in newline_forces_scroll handles the case where + the row is inside scroll-margins, but not at the end. + + improved loop limits in _nc_scroll_window handle a case where + the scrolled data is a pad which is taller than the window. + + Other improvements + + These are revised features: + * used "const" in some prototypes rather than NCURSES_CONST where + X/Open Curses was updated to do this, e.g., wscanw, newterm, the + terminfo interface. Also use "const" for consistency in the + termcap interface, which was withdrawn by X/Open Curses in Issue 5 + (2007). As of Issue 7, X/Open Curses still lacks "const" for + certain return values, e.g., keyname. + * modified wbkgd and wbkgrnd to improve compatibility with SVr4 + curses, changing the way the window rendition is updated when the + background character is modified + * improved terminfo write/read by modifying the fourth item of the + extended header to denote the number of valid strings in the + extended string table (see term(5)). + * modified the initialization checks for mouse so that the + xterm+sm+1006 block will work with terminal descriptions not + mentioning xterm. + + These were done to limit or ultimately deprecate features: + * deprecated safe-sprintf, since the vsnprintf function, which does + what was needed, was standardized long ago. + * marked vwprintw and vwscanw as deprecated; recommend using + vw_printw and vw_scanw, respectively. + * added deprecation warnings for internal functions called by older + versions of tack. + * removed unused _nc_import_termtype2 function. + + These are improvements to existing features: + * check parameter of set_escdelay, return ERR if negative. + * check parameter of set_tabsize, return ERR if not greater than + zero + * correct a status-check in _nc_read_tic_entry() so that if reading + a hex/b64 $TERMINFO, and the $TERM does not match, fall-through to + the compiled-in search list. + * amend check for repeat_char to handle a case where setlocale() was + called after initscr + * move macro for is_linetouched inside NCURSES_NOMACROS ifndef. + * use _nc_copy_termtype2 rather than direct assignment in setupterm, + in case it is called repeatedly using fallback terminfo + descriptions + * improve workaround for Solaris wcwidth versus line-drawing + characters + * add checks in repair_subwindows to keep the current position and + scroll-margins inside the resized subwindow. + * correct a buffer-limit in write_entry.c for systems that use + caseless filenames. + * improved build-time utility report_offsets: + + add categories, e.g., "w" for wide-character, "t" for threads + to make the report more readable. Reorganized the structures + reported to make the categories more apparent. + + add NCURSES_GLOBALS and NCURSES_PRESCREEN to report to show + how similar the different libtinfo configurations are. + * modified some header files to ensure that those include necessary + files except for the previously-documented cases + * added some traces in initialization to show whether a fallback + entry is used. + * made minor optimization to reduce calls to _nc_reserve_pairs + + These are corrections to existing features: + * fix a special case in PutAttrChar where a cell is marked as + alternate-character set, but the terminal does not actually + support the given graphic character. This would happen in an older + terminal such as vt52, which lacks most line-drawing capability. + * corrected flag for "seq" method of db 1.8.5 interface, needed by + toe on some of the BSDs. + * modify comparison in make_hash.c to correct a special case in + collision handling for Caps-hpux11 + * add extended_slk_color{,_sp} symbols to the appropriate + package/*.{map,sym} files + * modify lib_setup to avoid calling pthread_self() without first + verifying that the address is valid, i.e., for weak symbols + * add a couple of broken-linker symbols to the list of versioned + symbols to help with link-time optimization versus weak symbols. + + Program improvements + + Several improvements were made to the utility programs: + + clear + + + improved logic for clearing with the E3 extension, in case + the terminal scrolls content onto its saved-lines before + actually clearing the display, by clearing the saved-lines + after clearing the display + + infocmp + + + omit filtering of "OTxx" names which are used for obsolete + capabilities, when the output is sorted by long-names. This + change helps when making a table of the short/long capability + names. + + tic + + + added check for consistent alternate character set + capabilities. + + added check for paired indn/rin. + + added check for terminals with parm_dch vs parm_ich. + + added check for the case where setf/setb are given using + different strings, but provide identical results to + setaf/setab. + + corrected check for ich1. + + changed a too-large terminal entry from a fatal error to a + warning. + + toe + + + ignores any hex/b64 $TERMINFO value in the list of terminfo + databases. + + tset + + + replace check in reset command for obsolete "pt" capability + using tbc and hts capabilities as clues + + modify reset to allow for tabstops at intervals other than 8. + + change reset's behavior for margins to simply clear + soft-margins if possible, rather than clearing and then + setting them according to the terminal's width. + + tput + + + add "x" to getopt string so that "tput -x clear" works. + + Several changes were made to the generated ncurses*config scripts and + the analogous ".pc" files to reduce differences between the + configurations they report: + * modified the ncurse*-config and pc-files to more closely match for + the -I and -l options. + * filtered out linker-specs from the --libs report. + * amended the ncurses*-config and pc-files to take into account the + rpath hack which differed between those files. + * modified generated ncurses*config and ncurses.pc, ncursesw.pc, + etc., to list helper libraries such as gpm for static linking. + + Examples + + Along with the library and utilities, improvements were made to the + ncurses-examples. Most of this activity aimed at improving the + test-packages. A few changes are more generally useful, e.g., for the + main ncurses test-program, and for analyzing traces using the + tracemunch script: + * improve recovery from error when reading command-character in + test/ncurses.c, showing the relevant error message and not exiting + on EINTR. + * improve tracemunch, by keeping track of TERMINAL* values, and if + tracing was first turned on after initialization, attempt to show + distinct screen, window and terminal names anyway. + * modify tracemunch to accept filename parameters in addition to use + as a pipe/filter. + * update tracemunch to work with perl 5.26.2, which changed the + rules for escaping regular expressions. + * add some checks in tracemunch for undefined variables. + * modify TurnOn/TurnOff macros (in lib_vidattr.c and lib_vid_attr.c) + to avoid expansion of "CUR" in trace. + + There are other new demo/test programs and reusable examples: + + color_content + Demonstrate the color_content and extended_color_content + functions. + + demo_tabs + A simple demo of tabs in curses. + + dump_window + A portable curses screen-dump, used to compare ncurses screen + contents with Solaris. + + pair_content + Demonstrate the pair_content and extended_pair_content + functions. + + report_hashing + Check hash-tables used for terminfo and termcap names. + + parse_rgb + Sample implementation of the ncurses RGB extension from + user_caps.5, used in picsmap and savescreen programs. + + A variety of improvements were made to existing programs, both new + features as well as options added to make the set of programs more + consistent. + * add "-l" option to test/background, to dump screen contents in a + form that lets different curses implementations be compared. + * add "@" command to test/ncurses F-test, to allow rapid jump to + different character pages. + * added enum, regex examples to test/demo_forms + * amend Scaled256() macro in test/picsmap.c to cover the full range + 0..1000 + * corrected pathname used in Ada95 sample programs for explain.txt, + to work with test-packages, and used an awk script to split the + resulting pathname when it would be too long for a single line. + * ignore interrupted system-call in test/ncurses's command-line, + e.g., if the terminal were resized. + * improved ifdef's for TABSIZE variable, to help with AIX/HPUX + ports. + + Terminal database + + There are several new terminal descriptions: + + alacritty, domterm, kitty, mintty, mintty-direct, ms-terminal, + n7900, nsterm-build309, nsterm-direct, screen5, ti703, ti707, + ti703-w, ti707-w vscode, vscode-direct, xterm-mono, xterm.js + + There are many changes to existing terminal descriptions. Some were + updates to several descriptions: + * use ansi+rep in a dozen places + * add rs1 to konsole, mlterm + * improve several flash capabilities with trailing mandatory delays + * drop ich1 from rxvt-basic, Eterm and mlterm to improve + compatibility with old non-curses programs + * add/use xterm+keypad in xterm-new + * use xterm+sl-twm for consistency, nine places + * improve xm example in xterm+x11mouse and xterm+sm_1006. + + while others affected specific descriptions. These were retested, to + take into account changes by their developers: + + terminator, st + + while these are specific fixes based on reviewing documentation, user + reports, or warnings from tic: + + adds200: + + + fix typo + + gnome-256color + + + base entry on "gnome", not "vte", for consistency + + interix + + + trim unnecessary setf/setb + + linux-16color + + + accommodate Linux console driver incompatibility introduced + in early 2018 + + nsterm-256color: + + + add nsterm-build309 to replace nsterm-256color, assigning the + latter as an alias of nsterm, to make mouse work with + nsterm-256color + + regent40: + + + renumber function-keys to match manual + + regent60: + + + add cd (clr_eos) + + corrected acsc + + add shifted function-keys + + tvi950: + + + added function-key definitions to agree with Televideo 950 + manual + + corrected acsc + + remove bogus kf0 + + add bel + + tvi955: + + + fix typo + + vi200: + + + add acsc string, including right/down-arrow + + wy50: + + + corrected acsc + + wy50 and wy60: + + + add shifted function-keys as kF1 to kF16 + + xterm+x11hilite: + + + eliminate unused p5 parameter. + + A few entries use extensions (user-defined terminal capabilities): + * use xterm+sm+1006 (aka "SGR 1006 mouse") for konsole-base and + putty + * add Smol/Rmol user-defined capability to tmux and vte-2018 + * add Smulx user-defined capability to tmux, vte-2018 + + Documentation + + As usual, this release + * improves documentation by describing new features, + * attempts to improve the description of features which users have + found confusing + * fills in overlooked descriptions of features which were described + in the NEWS file but treated sketchily in manual pages. + + In addition to providing background information to explain these + features and show how they evolved, there are corrections, + clarifications, etc.: + * Corrections: + + correct error-returns listed in manual pages for a few form + functions + + corrected prototypes in several manpages using script to + extract those in compilable form. + + fix typo in term.5, improve explanation of format + * Clarify in manual pages that vwprintw and vwscanw are obsolete. + They have not been part of X/Open Curses since 2007. + * New/improved history and portability sections: + + curs_addch.3x gives some background for ACS symbols. + + curs_getcchar.3x explains a difference between ncurses and + X/Open Curses. + + curs_getstr.3x gives historical/portability background for + the length parameter of wgetnstr. + + curs_slk.3x lists a few differences between SVr4 curses and + X/Open Curses for soft-keys. + + curs_terminfo.3x explains that the initial implementation of + terminfo in SVr2 was mostly replaced by other developers in + SVr3. + + infocmp.1 explains that the initial version of terminfo had + no tool for decompiling descriptions. That came later, with + SVr3, with a different developer. + + tabs.1 tells more than you wanted to know about the tool. + + tic.1 explains that the initial version of terminfo had a + rudimentary tool (based on termcap) for compiling entries. + The tool used with Unix was developed by others for SVr3. + + toe.1 explains the origin of this tool. + * Improvements for user_caps.5: + + mention meml, memu and box1 + + expanded description of XM + + add a clarification regarding the RGB capability. + + mention user_caps.5 in the tic and infocmp manual pages. + * Other improvements: + + curs_add_wch.3x adds note about Unicode terminology for the + line-drawing characters. + + curs_color.3x improves discussion of error returns and + extensions. + + curs_mouse.3x explains how the kmous and XM capabilities are + used for xterm-mouse input. + + curs_refresh.3x improves documentation regarding the virtual + and physical screens. + + curs_util.3x mentions a difference between SVr4 and X/Open + Curses for unctrl.h + + curs_variables.3x improves description of the init_tabs + capability and TABSIZE variable. + + ncurses.3x improves documentation regarding feature-test + macros in curses.h + + resizeterm.3x about top-level windows which touch the + screen's borders. + + tput.1 clarifies how tput determines the terminal size. + + There are no new manual pages (all of the manual page updates are to + existing pages). + + Some of the improvements are more subtle, relating to the way the + information is presented. For instance, the generated terminfo.5 file + uses a different table layout, allowing it to use space on wide + terminals more effectively. + + Interesting bug-fixes + + While there were many bugs fixed during development of ncurses 6.2, + only a few (the reason for this release) were both important and + interesting. Most of the bug-fixes were for local issues which did not + affect compatibility across releases. Since those are detailed in the + NEWS file no elaboration is needed here. + + The interesting bugs were in tic/infocmp's handling of user-defined + capabilities. These were not recent bugs. Initially it was a simple + problem: + * The user-defined capabilities can be any type (boolean, number or + string), but once given a type all uses of the name must conform + to that type--unless some special support for a particular + multi-typed name is built into ncurses. + * One of simpleterm's contributors copied some definitions for using + tmux's user-defined capabilities in late in 2016. + +diff --git a/st.info b/st.info +@@ -185,7 +185,10 @@ st| simpleterm, + tsl=\E]0;, + xenl, + vpa=\E[%i%p1%dd, +- ++# Tmux unofficial extensions, see TERMINFO EXTENSIONS in tmux(1) ++ Se, ++ Ss, ++ Tc, + + st-256color| simpleterm with 256 colors, + use=st, + + * Later, in (referring to a version from mid-2017), a user asked to + have it updated in ncurses. + * However, it had an error from the change in late 2016. The + terminal description made what tmux expected to be string actually + a boolean. + Over the years, there were problems with each of simpleterm's + terminal descriptions. I repaired those, and usually dealt with + the problem. + * The difference in this case was that when compiling the terminal + database, tic may have in memory the definitions for more than one + terminal description (so that it can resolve "use=" clauses). + Seeing two different types for the same name, in certain + situations it would incorrectly merge the symbol tables for the + two terminal descriptions. + * On simpleterm's side, their bug was finally fixed in late 2019, + three years after the bug was created. + + For ncurses, the elapsed time to fix this bug was less than three + years. Someone reported a problem with the terminal description a few + weeks after releasing ncurses 6.1 (in tmux #1264), and the terminal + description was updated that week (ncurses patch 20180224): + +20180224 + + modify _nc_resolve_uses2() to detect incompatible types when merging + a "use=" clause of extended capabilities. The problem was seen in a + defective terminfo integrated from simpleterm sources in 20171111, + compounded by repair in 20180121. + + correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD + + The larger part of that change added a check to prevent a simple merge + of terminal descriptions where the same user-defined name was used + with different types. But it raised some questions: + * Was there a reliable way to manage terminal descriptions which + used the same extended name in different ways? + * Should ncurses provide a registry of well-known extended names, + with their types? + + Since the correction to terminfo.src could have been readily adopted + by packagers, there was nothing more to be done from ncurses' + standpoint on that part. But improving ncurses to prevent issues like + that is the reason for making a release. + + Nothing more (constructive) was mentioned with regard to simpleterm. + But a few problems were found in the handling of user-defined + capabilities: + * Forward-references to user-defined capabilities in a "use=" clause + did not allocate new data for each use. In tic, successive + compilation of terminal entries could add user-defined + capabilities to the wrong terminal entry. + This was not noticed before, since xterm's terminal descriptions + were the main users of the feature, and almost all of the uses of + the building-blocks which contained user-defined capabilities were + backward-references. + * There is one (documented) case where ncurses 6.1 supports a + user-defined capability that could be any type (i.e., "RGB"). The + check added in February 2018 to guard against mismatches did not + handle all of the combinations needed. + + Both of these issues dated from the original implementation of + user-defined capabilities. Fixing them does not change the terminal + database, but a older tic without the fixes will not be able to handle + terminfo sources which rely upon those fixes. Starting in June 2019, + the download link for the terminfo source file was capped at that + date. The development sources have an up-to-date copy of the file, for + people with a legitimate need for it. + + The "-c" (check) option of tic is not very useful if it cannot offer + advice on parameters needed for user-defined capabilities. The various + Caps files were reorganized to reduce redundancy, and in the common + portion (Caps-ncurses), a registry of user-defined capabilities is + provided for use by tic. While users can still define their own custom + capabilities, tic will not offer any advice when their parameters do + not match. + + In ncurses 6.2, tic makes a special check to allow any type for RGB, + but its being able to do this relies upon fixes made in the ncurses + library in mid-2019. + + Configuration changes + + Major changes + + There are no major changes. Several new options were added to ease + integration of packages with systems using different versions of GNAT + and ncurses. Also, improvements were made to configure checks. + + Configuration options + + There are a few new/modified configure options: + + --with-config-suffix + helps work around a filename conflict with Debian packages + versus test-packages. + + --with-ada-libname + allows one to rename the "AdaCurses" library (at least one + packager prefers a lowercase name). + + --with-fallbacks + now ensures there is a value, and adds the fallback information + to top-level Makefile summary. + + --with-pcre2 + check for pcre-posix library to help with MinGW port. + + --with-tic-path and + + --with-infocmp-path + help work around problems building fallback source using + pre-6.0 tic/infocmp. + + --with-versioned-syms + option value can now be a relative pathname. + + Portability + + Many of the portability changes are implemented via the configure + script: + * ignore $TERMINFO as a default value in configure script if it came + from the infocmp -Q option. + * distinguish gcc from icc and clang when the --enable-warnings + option is not used, to avoid unnecessary warnings about + unrecognized inline options + * consistently prepend new libraries as they are found during + configuration, rather than relying upon the linker to resolve + order dependencies of libraries. + * modified configure scripts to reduce relinking/ranlib during + library install : + + use "install -p" when available, to avoid need for ranlib of + static libraries. + + scripts which use "--disable-relink;" add a 1-second sleep to + work around tools which use whole-second timestamps, e.g., in + utime rather than the actual file system resolution. + * add configure check for getenv to work around implementation shown + in Emscripten which overwrites the previous return value on each + call. + Use that to optionally suppress START_TRACE macro, whose call to + getenv may not work properly + * change target configure level for _XOPEN_SOURCE to 600 to address + use of vsscanf and setenv. + * reduce use of _GNU_SOURCE for current glibc where _DEFAULT_SOURCE + combines with _XOPEN_SOURCE + Allow for Cygwin's newlib when checking for the _DEFAULT_SOURCE + symbol. + MidnightBSD is now checked for the _XOPEN_SOURCE-related + definitions. + * If the check for va_copy or __va_copy fails, + + configure now tries copying the pointers for va_list, or as + an array. + + alternatively, it checks for __builtin_va_copy(), which could + be used with AIX xlc in c89 mode. + * several changes to support a port to Ultrix 3.1: + + check if "b" binary feature of fopen works + + check for missing feature of locale.h + + add fallback for strstr() in test-programs + + add fallback for STDOUT_FILENO in test-programs + * The test/configure script (used for ncurses-examples) is improved: + + work around non-ncurses termcap.h file, e.g., in Slackware. + + check for TABSIZE variable. + + checks for the X11/Intrinsic.h header, accommodate recent + MacOS changes which largely emptied /usr/include. + + Here are some of the other portability fixes: + * added dummy "check" rule in top-level and test-Makefile to + simplify building test-packages for ArchLinux. + * dropped library-dependency on psapi for MinGW port, since + win_driver.c defines PSAPI_VERSION to 2, making it use + GetProcessImageFileName from kernel32.dll + * made build-fixes for configuration using --program-suffix with + Ada95, noticed with MacOS but applicable to other platforms + without libpanelw, etc. + * modified ncurses/Makefile.in to fix a case where Debian/testing + changes to the ld --as-needed configuration broke ncurses-examples + test packages. + * used _WIN32/_WIN64 in preference to __MINGW32__/__MINGW64__ + symbols to simplify building with Microsoft Visual C++, since the + former are defined in both compiler configurations. + _________________________________________________________________ + +Features of ncurses + + The ncurses package is fully upward-compatible with SVr4 (System V + Release 4) curses: + * All of the SVr4 calls have been implemented (and are documented). + * ncurses supports all of the for SVr4 curses features including + keyboard mapping, color, forms-drawing with ACS characters, and + automatic recognition of keypad and function keys. + * ncurses provides these SVr4 add-on libraries (not part of X/Open + Curses): + + the panels library, supporting a stack of windows with + backing store. + + the menus library, supporting a uniform but flexible + interface for menu programming. + + the form library, supporting data collection through + on-screen forms. + * ncurses's terminal database is fully compatible with that used by + SVr4 curses. + + ncurses supports user-defined capabilities which it can see, + but which are hidden from SVr4 curses applications using the + same terminal database. + + It can be optionally configured to match the format used in + related systems such as AIX and Tru64. + + Alternatively, ncurses can be configured to use hashed + databases rather than the directory of files used by SVr4 + curses. + * The ncurses utilities have options to allow you to filter terminfo + entries for use with less capable curses/terminfo versions such as + the HP/UX and AIX ports. + + The ncurses package also has many useful extensions over SVr4: + * The API is 8-bit clean and base-level conformant with the X/OPEN + curses specification, XSI curses (that is, it implements all BASE + level features, and most EXTENDED features). It includes many + function calls not supported under SVr4 curses (but portability of + all calls is documented so you can use the SVr4 subset only). + * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost + corner of the screen if your terminal has an insert-character + capability. + * Ada95 and C++ bindings. + * Support for mouse event reporting with X Window xterm and FreeBSD + and OS/2 console windows. + * Extended mouse support via Alessandro Rubini's gpm package. + * The function wresize allows you to resize windows, preserving + their data. + * The function use_default_colors allows you to use the terminal's + default colors for the default color pair, achieving the effect of + transparent colors. + * The functions keyok and define_key allow you to better control the + use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by + defining more than one control sequence to map to a given key + code. + * Support for 256-color terminals, such as modern xterm. + * Support for 16-color terminals, such as aixterm and modern xterm. + * Better cursor-movement optimization. The package now features a + cursor-local-movement computation more efficient than either BSD's + or System V's. + * Super hardware scrolling support. The screen-update code + incorporates a novel, simple, and cheap algorithm that enables it + to make optimal use of hardware scrolling, line-insertion, and + line-deletion for screen-line movements. This algorithm is more + powerful than the 4.4BSD curses quickch routine. + * Real support for terminals with the magic-cookie glitch. The + screen-update code will refrain from drawing a highlight if the + magic- cookie unattributed spaces required just before the + beginning and after the end would step on a non-space character. + It will automatically shift highlight boundaries when doing so + would make it possible to draw the highlight without changing the + visual appearance of the screen. + * It is possible to generate the library with a list of pre-loaded + fallback entries linked to it so that it can serve those terminal + types even when no terminfo tree or termcap file is accessible + (this may be useful for support of screen-oriented programs that + must run in single-user mode). + * The tic/captoinfo utility provided with ncurses has the ability to + translate many termcaps from the XENIX, IBM and AT&T extension + sets. + * A BSD-like tset utility is provided. + * The ncurses library and utilities will automatically read terminfo + entries from $HOME/.terminfo if it exists, and compile to that + directory if it exists and the user has no write access to the + system directory. This feature makes it easier for users to have + personal terminfo entries without giving up access to the system + terminfo directory. + * You may specify a path of directories to search for compiled + descriptions with the environment variable TERMINFO_DIRS (this + generalizes the feature provided by TERMINFO under stock System + V.) + * In terminfo source files, use capabilities may refer not just to + other entries in the same source file (as in System V) but also to + compiled entries in either the system terminfo directory or the + user's $HOME/.terminfo directory. + * The table-of-entries utility toe makes it easy for users to see + exactly what terminal types are available on the system. + * The library meets the XSI requirement that every macro entry point + have a corresponding function which may be linked (and will be + prototype-checked) if the macro definition is disabled with + #undef. + * Extensive documentation is provided (see the Additional Reading + section of the ncurses FAQ for online documentation). + +Applications using ncurses + + The ncurses distribution includes a selection of test programs + (including a few games). These are available separately as + ncurses-examples + + The ncurses library has been tested with a wide variety of + applications including: + + aptitude + FrontEnd to Apt, the debian package manager + + https://wiki.debian.org/Aptitude + + cdk + Curses Development Kit + + https://invisible-island.net/cdk/ + + ded + directory-editor + + https://invisible-island.net/ded/ + + dialog + the underlying application used in Slackware's setup, and the + basis for similar install/configure applications on many + systems. + + https://invisible-island.net/dialog/ + + lynx + the text WWW browser + + https://lynx.invisible-island.net/ + + mutt + mail utility + + http://www.mutt.org/ + + ncftp + file-transfer utility + + https://www.ncftp.com/ + + nvi + New vi uses ncurses. + + https://sites.google.com/a/bostic.com/keithbostic/vi + + ranger + A console file manager with VI key bindings in Python. + + https://ranger.github.io/ + + tin + newsreader, supporting color, MIME + + http://www.tin.org/ + + vifm + File manager with vi like keybindings + + https://vifm.info/ + + as well as some that use ncurses for the terminfo support alone: + + minicom + terminal emulator for serial modem connections + + https://alioth.debian.org/projects/minicom/ + + mosh + a replacement for ssh. + + https://mosh.mit.edu/ + + tack + terminfo action checker + + https://invisible-island.net/ncurses/tack.html + + tmux + terminal multiplexor + + https://github.com/tmux/tmux/wiki + + vile + vi-like-emacs may be built to use the terminfo, termcap or + curses interfaces. + + https://invisible-island.net/vile/ + + and finally, those which use only the termcap interface: + + emacs + text editor + + https://www.gnu.org/software/emacs/ + + less + The most commonly used pager (a program that displays text + files). + + http://www.greenwoodsoftware.com/less/ + + screen + terminal multiplexor + + https://www.gnu.org/software/screen/ + + vim + text editor + + https://www.vim.org/ + +Development activities + + Zeyd Ben-Halim started ncurses from a previous package pcurses, + written by Pavel Curtis. Eric S. Raymond continued development. + Juergen Pfeifer wrote most of the form and menu libraries. + + Ongoing development work is done by Thomas E. Dickey. Thomas E. Dickey + has acted as the maintainer for the Free Software Foundation, which + holds a copyright on ncurses for releases 4.2 through 6.1. Following + the release of ncurses 6.1, effective as of release 6.2, copyright for + ncurses reverted to Thomas E. Dickey (see the ncurses FAQ for + additional information). + + Contact the current maintainers at + + bug-ncurses@gnu.org + + To join the ncurses mailing list, please write email to + + bug-ncurses-request@gnu.org + + containing the line: + + subscribe @ + + This list is open to anyone interested in helping with the development + and testing of this package. + + Beta versions of ncurses are made available at + + ftp://ftp.invisible-island.net/ncurses/current/ and + https://invisible-mirror.net/archives/ncurses/current/ . + + Patches to the current release are made available at + + ftp://ftp.invisible-island.net/ncurses/6.1/ and + https://invisible-mirror.net/archives/ncurses/6.1/ . + + There is an archive of the mailing list here: + + http://lists.gnu.org/archive/html/bug-ncurses (also https) + +Related resources + + The release notes make scattered references to these pages, which may + be interesting by themselves: + * ncurses licensing + * Symbol versioning in ncurses + * Comments on ncurses versus slang (S-Lang) + * tack - terminfo action checker + * tctest - termcap library checker + * Terminal Database + +Other resources + + The distribution provides a newer version of the terminfo-format + terminal description file once maintained by Eric Raymond . Unlike the + older version, the termcap and terminfo data are provided in the same + file, which also provides several user-definable extensions beyond the + X/Open specification. + + You can find lots of information on terminal-related topics not + covered in the terminfo file at Richard Shuford's archive . The + collection of computer manuals at bitsavers.org has also been useful. + + * Overview + * Release Notes + + Library improvements + o New features + o Other improvements + + Program improvements + o Utilities + o Examples + + Terminal database + + Documentation + + Interesting bug-fixes + + Configuration changes + o Major changes + o Configuration options + + Portability + * Features of ncurses + * Applications using ncurses + * Development activities + * Related resources + * Other resources Copied: vendor/ncurses/6.2-20200215/AUTHORS (from r358125, vendor/ncurses/dist/AUTHORS) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ncurses/6.2-20200215/AUTHORS Wed Feb 19 17:00:21 2020 (r358126, copy of r358125, vendor/ncurses/dist/AUTHORS) @@ -0,0 +1,40 @@ +------------------------------------------------------------------------------- +-- Copyright 2020 Thomas E. Dickey -- +-- Copyright 2006,2017 Free Software Foundation, Inc. -- +-- -- +-- Permission is hereby granted, free of charge, to any person obtaining a -- +-- copy of this software and associated documentation files (the -- +-- "Software"), to deal in the Software without restriction, including -- +-- without limitation the rights to use, copy, modify, merge, publish, -- +-- distribute, distribute with modifications, sublicense, and/or sell copies -- +-- of the Software, and to permit persons to whom the Software is furnished -- +-- to do so, subject to the following conditions: -- +-- -- *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Feb 19 17:09:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C421224039F; Wed, 19 Feb 2020 17:09:09 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N42F32bKz4MRH; Wed, 19 Feb 2020 17:09:09 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EE0A3C04B; Wed, 19 Feb 2020 17:09:08 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JH98q8082222; Wed, 19 Feb 2020 17:09:08 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JH98Mt082220; Wed, 19 Feb 2020 17:09:08 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002191709.01JH98Mt082220@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 19 Feb 2020 17:09:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358127 - in head: contrib/ncurses contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/misc contrib/ncurses/nc... X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: in head: contrib/ncurses contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/misc contrib/ncurses/ncurses contrib/ncurses/ncu... X-SVN-Commit-Revision: 358127 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 17:09:09 -0000 Author: bapt Date: Wed Feb 19 17:09:08 2020 New Revision: 358127 URL: https://svnweb.freebsd.org/changeset/base/358127 Log: Update to 6.2-20200215 While I didn't plan another upgrade, This version incorporate fixes from kevans@ so let's upgrade to it Modified: head/contrib/ncurses/ANNOUNCE head/contrib/ncurses/AUTHORS head/contrib/ncurses/COPYING head/contrib/ncurses/INSTALL head/contrib/ncurses/MANIFEST head/contrib/ncurses/Makefile.in head/contrib/ncurses/Makefile.os2 head/contrib/ncurses/NEWS head/contrib/ncurses/README head/contrib/ncurses/README.MinGW head/contrib/ncurses/README.emx head/contrib/ncurses/TO-DO head/contrib/ncurses/VERSION head/contrib/ncurses/aclocal.m4 head/contrib/ncurses/announce.html.in head/contrib/ncurses/configure head/contrib/ncurses/configure.in head/contrib/ncurses/convert_configure.pl head/contrib/ncurses/dist.mk head/contrib/ncurses/doc/html/announce.html head/contrib/ncurses/doc/html/hackguide.html head/contrib/ncurses/doc/html/ncurses-intro.html head/contrib/ncurses/form/Makefile.in head/contrib/ncurses/form/READ.ME head/contrib/ncurses/form/f_trace.c head/contrib/ncurses/form/fld_arg.c head/contrib/ncurses/form/fld_attr.c head/contrib/ncurses/form/fld_current.c head/contrib/ncurses/form/fld_def.c head/contrib/ncurses/form/fld_dup.c head/contrib/ncurses/form/fld_ftchoice.c head/contrib/ncurses/form/fld_ftlink.c head/contrib/ncurses/form/fld_info.c head/contrib/ncurses/form/fld_just.c head/contrib/ncurses/form/fld_link.c head/contrib/ncurses/form/fld_max.c head/contrib/ncurses/form/fld_move.c head/contrib/ncurses/form/fld_newftyp.c head/contrib/ncurses/form/fld_opts.c head/contrib/ncurses/form/fld_pad.c head/contrib/ncurses/form/fld_page.c head/contrib/ncurses/form/fld_stat.c head/contrib/ncurses/form/fld_type.c head/contrib/ncurses/form/fld_user.c head/contrib/ncurses/form/form.h head/contrib/ncurses/form/form.priv.h head/contrib/ncurses/form/frm_cursor.c head/contrib/ncurses/form/frm_data.c head/contrib/ncurses/form/frm_def.c head/contrib/ncurses/form/frm_driver.c head/contrib/ncurses/form/frm_hook.c head/contrib/ncurses/form/frm_opts.c head/contrib/ncurses/form/frm_page.c head/contrib/ncurses/form/frm_post.c head/contrib/ncurses/form/frm_req_name.c head/contrib/ncurses/form/frm_scale.c head/contrib/ncurses/form/frm_sub.c head/contrib/ncurses/form/frm_user.c head/contrib/ncurses/form/frm_win.c head/contrib/ncurses/form/fty_alnum.c head/contrib/ncurses/form/fty_alpha.c head/contrib/ncurses/form/fty_enum.c head/contrib/ncurses/form/fty_generic.c head/contrib/ncurses/form/fty_int.c head/contrib/ncurses/form/fty_ipv4.c head/contrib/ncurses/form/fty_num.c head/contrib/ncurses/form/fty_regex.c head/contrib/ncurses/form/headers head/contrib/ncurses/form/llib-lform head/contrib/ncurses/form/llib-lformt head/contrib/ncurses/form/llib-lformtw head/contrib/ncurses/form/llib-lformw head/contrib/ncurses/form/modules head/contrib/ncurses/include/Caps head/contrib/ncurses/include/Caps-ncurses head/contrib/ncurses/include/Caps.aix4 head/contrib/ncurses/include/Caps.hpux11 head/contrib/ncurses/include/Caps.keys head/contrib/ncurses/include/Caps.osf1r5 head/contrib/ncurses/include/Caps.uwin head/contrib/ncurses/include/MKhashsize.sh head/contrib/ncurses/include/MKkey_defs.sh head/contrib/ncurses/include/MKncurses_def.sh head/contrib/ncurses/include/MKparametrized.sh head/contrib/ncurses/include/MKterm.h.awk.in head/contrib/ncurses/include/Makefile.in head/contrib/ncurses/include/capdefaults.c head/contrib/ncurses/include/curses.h.in head/contrib/ncurses/include/edit_cfg.sh head/contrib/ncurses/include/hashed_db.h head/contrib/ncurses/include/headers head/contrib/ncurses/include/nc_alloc.h head/contrib/ncurses/include/nc_mingw.h head/contrib/ncurses/include/nc_panel.h head/contrib/ncurses/include/nc_string.h head/contrib/ncurses/include/nc_termios.h head/contrib/ncurses/include/nc_tparm.h head/contrib/ncurses/include/ncurses_cfg.hin head/contrib/ncurses/include/ncurses_defs head/contrib/ncurses/include/ncurses_dll.h.in head/contrib/ncurses/include/ncurses_mingw.h head/contrib/ncurses/include/term_entry.h head/contrib/ncurses/include/termcap.h.in head/contrib/ncurses/include/tic.h head/contrib/ncurses/include/unctrl.h.in head/contrib/ncurses/man/MKada_config.in head/contrib/ncurses/man/MKncu_config.in head/contrib/ncurses/man/MKterminfo.sh head/contrib/ncurses/man/Makefile.in head/contrib/ncurses/man/captoinfo.1m head/contrib/ncurses/man/clear.1 head/contrib/ncurses/man/curs_add_wch.3x head/contrib/ncurses/man/curs_add_wchstr.3x head/contrib/ncurses/man/curs_addch.3x head/contrib/ncurses/man/curs_addchstr.3x head/contrib/ncurses/man/curs_addstr.3x head/contrib/ncurses/man/curs_addwstr.3x head/contrib/ncurses/man/curs_attr.3x head/contrib/ncurses/man/curs_beep.3x head/contrib/ncurses/man/curs_bkgd.3x head/contrib/ncurses/man/curs_bkgrnd.3x head/contrib/ncurses/man/curs_border.3x head/contrib/ncurses/man/curs_border_set.3x head/contrib/ncurses/man/curs_clear.3x head/contrib/ncurses/man/curs_color.3x head/contrib/ncurses/man/curs_delch.3x head/contrib/ncurses/man/curs_deleteln.3x head/contrib/ncurses/man/curs_extend.3x head/contrib/ncurses/man/curs_get_wch.3x head/contrib/ncurses/man/curs_get_wstr.3x head/contrib/ncurses/man/curs_getcchar.3x head/contrib/ncurses/man/curs_getch.3x head/contrib/ncurses/man/curs_getstr.3x head/contrib/ncurses/man/curs_getyx.3x head/contrib/ncurses/man/curs_in_wch.3x head/contrib/ncurses/man/curs_in_wchstr.3x head/contrib/ncurses/man/curs_inch.3x head/contrib/ncurses/man/curs_inchstr.3x head/contrib/ncurses/man/curs_initscr.3x head/contrib/ncurses/man/curs_inopts.3x head/contrib/ncurses/man/curs_ins_wch.3x head/contrib/ncurses/man/curs_ins_wstr.3x head/contrib/ncurses/man/curs_insch.3x head/contrib/ncurses/man/curs_insstr.3x head/contrib/ncurses/man/curs_instr.3x head/contrib/ncurses/man/curs_inwstr.3x head/contrib/ncurses/man/curs_kernel.3x head/contrib/ncurses/man/curs_legacy.3x head/contrib/ncurses/man/curs_memleaks.3x head/contrib/ncurses/man/curs_mouse.3x head/contrib/ncurses/man/curs_move.3x head/contrib/ncurses/man/curs_opaque.3x head/contrib/ncurses/man/curs_outopts.3x head/contrib/ncurses/man/curs_overlay.3x head/contrib/ncurses/man/curs_pad.3x head/contrib/ncurses/man/curs_print.3x head/contrib/ncurses/man/curs_printw.3x head/contrib/ncurses/man/curs_refresh.3x head/contrib/ncurses/man/curs_scanw.3x head/contrib/ncurses/man/curs_scr_dump.3x head/contrib/ncurses/man/curs_scroll.3x head/contrib/ncurses/man/curs_slk.3x head/contrib/ncurses/man/curs_sp_funcs.3x head/contrib/ncurses/man/curs_termattrs.3x head/contrib/ncurses/man/curs_termcap.3x head/contrib/ncurses/man/curs_terminfo.3x head/contrib/ncurses/man/curs_threads.3x head/contrib/ncurses/man/curs_touch.3x head/contrib/ncurses/man/curs_trace.3x head/contrib/ncurses/man/curs_util.3x head/contrib/ncurses/man/curs_variables.3x head/contrib/ncurses/man/curs_window.3x head/contrib/ncurses/man/default_colors.3x head/contrib/ncurses/man/define_key.3x head/contrib/ncurses/man/form.3x head/contrib/ncurses/man/form_cursor.3x head/contrib/ncurses/man/form_data.3x head/contrib/ncurses/man/form_driver.3x head/contrib/ncurses/man/form_field.3x head/contrib/ncurses/man/form_field_attributes.3x head/contrib/ncurses/man/form_field_buffer.3x head/contrib/ncurses/man/form_field_info.3x head/contrib/ncurses/man/form_field_just.3x head/contrib/ncurses/man/form_field_new.3x head/contrib/ncurses/man/form_field_opts.3x head/contrib/ncurses/man/form_field_userptr.3x head/contrib/ncurses/man/form_field_validation.3x head/contrib/ncurses/man/form_fieldtype.3x head/contrib/ncurses/man/form_hook.3x head/contrib/ncurses/man/form_new.3x head/contrib/ncurses/man/form_new_page.3x head/contrib/ncurses/man/form_opts.3x head/contrib/ncurses/man/form_page.3x head/contrib/ncurses/man/form_post.3x head/contrib/ncurses/man/form_requestname.3x head/contrib/ncurses/man/form_userptr.3x head/contrib/ncurses/man/form_variables.3x head/contrib/ncurses/man/form_win.3x head/contrib/ncurses/man/infocmp.1m head/contrib/ncurses/man/infotocap.1m head/contrib/ncurses/man/key_defined.3x head/contrib/ncurses/man/keybound.3x head/contrib/ncurses/man/keyok.3x head/contrib/ncurses/man/legacy_coding.3x head/contrib/ncurses/man/make_sed.sh head/contrib/ncurses/man/man_db.renames head/contrib/ncurses/man/manhtml.aliases head/contrib/ncurses/man/manhtml.externs head/contrib/ncurses/man/manlinks.sed head/contrib/ncurses/man/menu.3x head/contrib/ncurses/man/menu_attributes.3x head/contrib/ncurses/man/menu_cursor.3x head/contrib/ncurses/man/menu_driver.3x head/contrib/ncurses/man/menu_format.3x head/contrib/ncurses/man/menu_hook.3x head/contrib/ncurses/man/menu_items.3x head/contrib/ncurses/man/menu_mark.3x head/contrib/ncurses/man/menu_new.3x head/contrib/ncurses/man/menu_opts.3x head/contrib/ncurses/man/menu_pattern.3x head/contrib/ncurses/man/menu_post.3x head/contrib/ncurses/man/menu_requestname.3x head/contrib/ncurses/man/menu_spacing.3x head/contrib/ncurses/man/menu_userptr.3x head/contrib/ncurses/man/menu_win.3x head/contrib/ncurses/man/mitem_current.3x head/contrib/ncurses/man/mitem_name.3x head/contrib/ncurses/man/mitem_new.3x head/contrib/ncurses/man/mitem_opts.3x head/contrib/ncurses/man/mitem_userptr.3x head/contrib/ncurses/man/mitem_value.3x head/contrib/ncurses/man/mitem_visible.3x head/contrib/ncurses/man/ncurses.3x head/contrib/ncurses/man/new_pair.3x head/contrib/ncurses/man/panel.3x head/contrib/ncurses/man/resizeterm.3x head/contrib/ncurses/man/scr_dump.5 head/contrib/ncurses/man/tabs.1 head/contrib/ncurses/man/term.5 head/contrib/ncurses/man/term.7 head/contrib/ncurses/man/term_variables.3x head/contrib/ncurses/man/terminfo.head head/contrib/ncurses/man/terminfo.tail head/contrib/ncurses/man/tic.1m head/contrib/ncurses/man/toe.1m head/contrib/ncurses/man/tput.1 head/contrib/ncurses/man/tset.1 head/contrib/ncurses/man/user_caps.5 head/contrib/ncurses/man/wresize.3x head/contrib/ncurses/menu/Makefile.in head/contrib/ncurses/menu/READ.ME head/contrib/ncurses/menu/eti.h head/contrib/ncurses/menu/headers head/contrib/ncurses/menu/llib-lmenu head/contrib/ncurses/menu/llib-lmenut head/contrib/ncurses/menu/llib-lmenutw head/contrib/ncurses/menu/llib-lmenuw head/contrib/ncurses/menu/m_attribs.c head/contrib/ncurses/menu/m_cursor.c head/contrib/ncurses/menu/m_driver.c head/contrib/ncurses/menu/m_format.c head/contrib/ncurses/menu/m_global.c head/contrib/ncurses/menu/m_hook.c head/contrib/ncurses/menu/m_item_cur.c head/contrib/ncurses/menu/m_item_nam.c head/contrib/ncurses/menu/m_item_new.c head/contrib/ncurses/menu/m_item_opt.c head/contrib/ncurses/menu/m_item_top.c head/contrib/ncurses/menu/m_item_use.c head/contrib/ncurses/menu/m_item_val.c head/contrib/ncurses/menu/m_item_vis.c head/contrib/ncurses/menu/m_items.c head/contrib/ncurses/menu/m_new.c head/contrib/ncurses/menu/m_opts.c head/contrib/ncurses/menu/m_pad.c head/contrib/ncurses/menu/m_pattern.c head/contrib/ncurses/menu/m_post.c head/contrib/ncurses/menu/m_req_name.c head/contrib/ncurses/menu/m_scale.c head/contrib/ncurses/menu/m_spacing.c head/contrib/ncurses/menu/m_sub.c head/contrib/ncurses/menu/m_trace.c head/contrib/ncurses/menu/m_userptr.c head/contrib/ncurses/menu/m_win.c head/contrib/ncurses/menu/menu.h head/contrib/ncurses/menu/menu.priv.h head/contrib/ncurses/menu/mf_common.h head/contrib/ncurses/menu/modules head/contrib/ncurses/misc/Makefile.in head/contrib/ncurses/misc/chkdef.cmd head/contrib/ncurses/misc/cleantic.cmd head/contrib/ncurses/misc/cmpdef.cmd head/contrib/ncurses/misc/csort head/contrib/ncurses/misc/emx.src head/contrib/ncurses/misc/gen-pkgconfig.in head/contrib/ncurses/misc/gen_edit.sh head/contrib/ncurses/misc/magic head/contrib/ncurses/misc/makedef.cmd head/contrib/ncurses/misc/makellib head/contrib/ncurses/misc/ncurses-config.in head/contrib/ncurses/misc/ncurses.supp head/contrib/ncurses/misc/run_tic.in head/contrib/ncurses/misc/shlib head/contrib/ncurses/misc/tdlint head/contrib/ncurses/mk-0th.awk head/contrib/ncurses/mk-1st.awk head/contrib/ncurses/mk-2nd.awk head/contrib/ncurses/mk-hdr.awk head/contrib/ncurses/ncurses/Makefile.in head/contrib/ncurses/ncurses/README head/contrib/ncurses/ncurses/README.IZ head/contrib/ncurses/ncurses/SigAction.h head/contrib/ncurses/ncurses/base/MKkeyname.awk head/contrib/ncurses/ncurses/base/MKlib_gen.sh head/contrib/ncurses/ncurses/base/MKunctrl.awk head/contrib/ncurses/ncurses/base/README head/contrib/ncurses/ncurses/base/define_key.c head/contrib/ncurses/ncurses/base/key_defined.c head/contrib/ncurses/ncurses/base/keybound.c head/contrib/ncurses/ncurses/base/keyok.c head/contrib/ncurses/ncurses/base/legacy_coding.c head/contrib/ncurses/ncurses/base/lib_addch.c head/contrib/ncurses/ncurses/base/lib_addstr.c head/contrib/ncurses/ncurses/base/lib_beep.c head/contrib/ncurses/ncurses/base/lib_bkgd.c head/contrib/ncurses/ncurses/base/lib_box.c head/contrib/ncurses/ncurses/base/lib_chgat.c head/contrib/ncurses/ncurses/base/lib_clear.c head/contrib/ncurses/ncurses/base/lib_clearok.c head/contrib/ncurses/ncurses/base/lib_clrbot.c head/contrib/ncurses/ncurses/base/lib_clreol.c head/contrib/ncurses/ncurses/base/lib_color.c head/contrib/ncurses/ncurses/base/lib_colorset.c head/contrib/ncurses/ncurses/base/lib_delch.c head/contrib/ncurses/ncurses/base/lib_delwin.c head/contrib/ncurses/ncurses/base/lib_dft_fgbg.c head/contrib/ncurses/ncurses/base/lib_driver.c head/contrib/ncurses/ncurses/base/lib_echo.c head/contrib/ncurses/ncurses/base/lib_endwin.c head/contrib/ncurses/ncurses/base/lib_erase.c head/contrib/ncurses/ncurses/base/lib_flash.c head/contrib/ncurses/ncurses/base/lib_freeall.c head/contrib/ncurses/ncurses/base/lib_getch.c head/contrib/ncurses/ncurses/base/lib_getstr.c head/contrib/ncurses/ncurses/base/lib_hline.c head/contrib/ncurses/ncurses/base/lib_immedok.c head/contrib/ncurses/ncurses/base/lib_inchstr.c head/contrib/ncurses/ncurses/base/lib_initscr.c head/contrib/ncurses/ncurses/base/lib_insch.c head/contrib/ncurses/ncurses/base/lib_insdel.c head/contrib/ncurses/ncurses/base/lib_insnstr.c head/contrib/ncurses/ncurses/base/lib_instr.c head/contrib/ncurses/ncurses/base/lib_isendwin.c head/contrib/ncurses/ncurses/base/lib_leaveok.c head/contrib/ncurses/ncurses/base/lib_mouse.c head/contrib/ncurses/ncurses/base/lib_move.c head/contrib/ncurses/ncurses/base/lib_mvwin.c head/contrib/ncurses/ncurses/base/lib_newterm.c head/contrib/ncurses/ncurses/base/lib_newwin.c head/contrib/ncurses/ncurses/base/lib_nl.c head/contrib/ncurses/ncurses/base/lib_overlay.c head/contrib/ncurses/ncurses/base/lib_pad.c head/contrib/ncurses/ncurses/base/lib_printw.c head/contrib/ncurses/ncurses/base/lib_redrawln.c head/contrib/ncurses/ncurses/base/lib_refresh.c head/contrib/ncurses/ncurses/base/lib_restart.c head/contrib/ncurses/ncurses/base/lib_scanw.c head/contrib/ncurses/ncurses/base/lib_screen.c head/contrib/ncurses/ncurses/base/lib_scroll.c head/contrib/ncurses/ncurses/base/lib_scrollok.c head/contrib/ncurses/ncurses/base/lib_scrreg.c head/contrib/ncurses/ncurses/base/lib_set_term.c head/contrib/ncurses/ncurses/base/lib_slk.c head/contrib/ncurses/ncurses/base/lib_slkatr_set.c head/contrib/ncurses/ncurses/base/lib_slkatrof.c head/contrib/ncurses/ncurses/base/lib_slkatron.c head/contrib/ncurses/ncurses/base/lib_slkatrset.c head/contrib/ncurses/ncurses/base/lib_slkattr.c head/contrib/ncurses/ncurses/base/lib_slkclear.c head/contrib/ncurses/ncurses/base/lib_slkcolor.c head/contrib/ncurses/ncurses/base/lib_slkinit.c head/contrib/ncurses/ncurses/base/lib_slklab.c head/contrib/ncurses/ncurses/base/lib_slkrefr.c head/contrib/ncurses/ncurses/base/lib_slkset.c head/contrib/ncurses/ncurses/base/lib_slktouch.c head/contrib/ncurses/ncurses/base/lib_touch.c head/contrib/ncurses/ncurses/base/lib_ungetch.c head/contrib/ncurses/ncurses/base/lib_vline.c head/contrib/ncurses/ncurses/base/lib_wattroff.c head/contrib/ncurses/ncurses/base/lib_wattron.c head/contrib/ncurses/ncurses/base/lib_winch.c head/contrib/ncurses/ncurses/base/lib_window.c head/contrib/ncurses/ncurses/base/nc_panel.c head/contrib/ncurses/ncurses/base/new_pair.c head/contrib/ncurses/ncurses/base/resizeterm.c head/contrib/ncurses/ncurses/base/safe_sprintf.c head/contrib/ncurses/ncurses/base/sigaction.c head/contrib/ncurses/ncurses/base/tries.c head/contrib/ncurses/ncurses/base/use_window.c head/contrib/ncurses/ncurses/base/version.c head/contrib/ncurses/ncurses/base/vsscanf.c head/contrib/ncurses/ncurses/base/wresize.c head/contrib/ncurses/ncurses/build.priv.h head/contrib/ncurses/ncurses/curses.priv.h head/contrib/ncurses/ncurses/fifo_defs.h head/contrib/ncurses/ncurses/llib-lncurses head/contrib/ncurses/ncurses/llib-lncursest head/contrib/ncurses/ncurses/llib-lncursestw head/contrib/ncurses/ncurses/llib-lncursesw head/contrib/ncurses/ncurses/llib-ltic head/contrib/ncurses/ncurses/llib-ltict head/contrib/ncurses/ncurses/llib-ltictw head/contrib/ncurses/ncurses/llib-lticw head/contrib/ncurses/ncurses/llib-ltinfo head/contrib/ncurses/ncurses/llib-ltinfot head/contrib/ncurses/ncurses/llib-ltinfotw head/contrib/ncurses/ncurses/llib-ltinfow head/contrib/ncurses/ncurses/modules head/contrib/ncurses/ncurses/new_pair.h head/contrib/ncurses/ncurses/report_offsets.c head/contrib/ncurses/ncurses/tinfo/MKcaptab.awk head/contrib/ncurses/ncurses/tinfo/MKcaptab.sh head/contrib/ncurses/ncurses/tinfo/MKcodes.awk head/contrib/ncurses/ncurses/tinfo/MKfallback.sh head/contrib/ncurses/ncurses/tinfo/MKkeys_list.sh head/contrib/ncurses/ncurses/tinfo/MKnames.awk head/contrib/ncurses/ncurses/tinfo/MKuserdefs.sh head/contrib/ncurses/ncurses/tinfo/README head/contrib/ncurses/ncurses/tinfo/access.c head/contrib/ncurses/ncurses/tinfo/add_tries.c head/contrib/ncurses/ncurses/tinfo/alloc_entry.c head/contrib/ncurses/ncurses/tinfo/alloc_ttype.c head/contrib/ncurses/ncurses/tinfo/captoinfo.c head/contrib/ncurses/ncurses/tinfo/comp_error.c head/contrib/ncurses/ncurses/tinfo/comp_expand.c head/contrib/ncurses/ncurses/tinfo/comp_hash.c head/contrib/ncurses/ncurses/tinfo/comp_parse.c head/contrib/ncurses/ncurses/tinfo/comp_scan.c head/contrib/ncurses/ncurses/tinfo/db_iterator.c head/contrib/ncurses/ncurses/tinfo/doalloc.c head/contrib/ncurses/ncurses/tinfo/entries.c head/contrib/ncurses/ncurses/tinfo/free_ttype.c head/contrib/ncurses/ncurses/tinfo/getenv_num.c head/contrib/ncurses/ncurses/tinfo/hashed_db.c head/contrib/ncurses/ncurses/tinfo/home_terminfo.c head/contrib/ncurses/ncurses/tinfo/init_keytry.c head/contrib/ncurses/ncurses/tinfo/lib_acs.c head/contrib/ncurses/ncurses/tinfo/lib_baudrate.c head/contrib/ncurses/ncurses/tinfo/lib_cur_term.c head/contrib/ncurses/ncurses/tinfo/lib_data.c head/contrib/ncurses/ncurses/tinfo/lib_has_cap.c head/contrib/ncurses/ncurses/tinfo/lib_kernel.c head/contrib/ncurses/ncurses/tinfo/lib_longname.c head/contrib/ncurses/ncurses/tinfo/lib_napms.c head/contrib/ncurses/ncurses/tinfo/lib_options.c head/contrib/ncurses/ncurses/tinfo/lib_print.c head/contrib/ncurses/ncurses/tinfo/lib_raw.c head/contrib/ncurses/ncurses/tinfo/lib_setup.c head/contrib/ncurses/ncurses/tinfo/lib_termcap.c head/contrib/ncurses/ncurses/tinfo/lib_termname.c head/contrib/ncurses/ncurses/tinfo/lib_tgoto.c head/contrib/ncurses/ncurses/tinfo/lib_ti.c head/contrib/ncurses/ncurses/tinfo/lib_tparm.c head/contrib/ncurses/ncurses/tinfo/lib_tputs.c head/contrib/ncurses/ncurses/tinfo/lib_ttyflags.c head/contrib/ncurses/ncurses/tinfo/make_hash.c head/contrib/ncurses/ncurses/tinfo/make_keys.c head/contrib/ncurses/ncurses/tinfo/name_match.c head/contrib/ncurses/ncurses/tinfo/obsolete.c head/contrib/ncurses/ncurses/tinfo/parse_entry.c head/contrib/ncurses/ncurses/tinfo/read_entry.c head/contrib/ncurses/ncurses/tinfo/read_termcap.c head/contrib/ncurses/ncurses/tinfo/strings.c head/contrib/ncurses/ncurses/tinfo/tinfo_driver.c head/contrib/ncurses/ncurses/tinfo/trim_sgr0.c head/contrib/ncurses/ncurses/tinfo/use_screen.c head/contrib/ncurses/ncurses/tinfo/write_entry.c head/contrib/ncurses/ncurses/trace/README head/contrib/ncurses/ncurses/trace/lib_trace.c head/contrib/ncurses/ncurses/trace/lib_traceatr.c head/contrib/ncurses/ncurses/trace/lib_tracebits.c head/contrib/ncurses/ncurses/trace/lib_tracechr.c head/contrib/ncurses/ncurses/trace/lib_tracedmp.c head/contrib/ncurses/ncurses/trace/lib_tracemse.c head/contrib/ncurses/ncurses/trace/trace_buf.c head/contrib/ncurses/ncurses/trace/trace_tries.c head/contrib/ncurses/ncurses/trace/trace_xnames.c head/contrib/ncurses/ncurses/trace/varargs.c head/contrib/ncurses/ncurses/trace/visbuf.c head/contrib/ncurses/ncurses/tty/MKexpanded.sh head/contrib/ncurses/ncurses/tty/hardscroll.c head/contrib/ncurses/ncurses/tty/hashmap.c head/contrib/ncurses/ncurses/tty/lib_mvcur.c head/contrib/ncurses/ncurses/tty/lib_tstp.c head/contrib/ncurses/ncurses/tty/lib_twait.c head/contrib/ncurses/ncurses/tty/lib_vidattr.c head/contrib/ncurses/ncurses/tty/tty_update.c head/contrib/ncurses/ncurses/widechar/charable.c head/contrib/ncurses/ncurses/widechar/lib_add_wch.c head/contrib/ncurses/ncurses/widechar/lib_box_set.c head/contrib/ncurses/ncurses/widechar/lib_cchar.c head/contrib/ncurses/ncurses/widechar/lib_erasewchar.c head/contrib/ncurses/ncurses/widechar/lib_get_wch.c head/contrib/ncurses/ncurses/widechar/lib_get_wstr.c head/contrib/ncurses/ncurses/widechar/lib_hline_set.c head/contrib/ncurses/ncurses/widechar/lib_in_wch.c head/contrib/ncurses/ncurses/widechar/lib_in_wchnstr.c head/contrib/ncurses/ncurses/widechar/lib_ins_wch.c head/contrib/ncurses/ncurses/widechar/lib_inwstr.c head/contrib/ncurses/ncurses/widechar/lib_key_name.c head/contrib/ncurses/ncurses/widechar/lib_pecho_wchar.c head/contrib/ncurses/ncurses/widechar/lib_slk_wset.c head/contrib/ncurses/ncurses/widechar/lib_unget_wch.c head/contrib/ncurses/ncurses/widechar/lib_vid_attr.c head/contrib/ncurses/ncurses/widechar/lib_vline_set.c head/contrib/ncurses/ncurses/widechar/lib_wacs.c head/contrib/ncurses/ncurses/widechar/lib_wunctrl.c head/contrib/ncurses/ncurses/widechar/widechars.c head/contrib/ncurses/ncurses/win32con/gettimeofday.c head/contrib/ncurses/ncurses/win32con/wcwidth.c head/contrib/ncurses/ncurses/win32con/win_driver.c head/contrib/ncurses/panel/Makefile.in head/contrib/ncurses/panel/headers head/contrib/ncurses/panel/llib-lpanel head/contrib/ncurses/panel/llib-lpanelt head/contrib/ncurses/panel/llib-lpaneltw head/contrib/ncurses/panel/llib-lpanelw head/contrib/ncurses/panel/modules head/contrib/ncurses/panel/p_above.c head/contrib/ncurses/panel/p_below.c head/contrib/ncurses/panel/p_bottom.c head/contrib/ncurses/panel/p_delete.c head/contrib/ncurses/panel/p_hidden.c head/contrib/ncurses/panel/p_hide.c head/contrib/ncurses/panel/p_move.c head/contrib/ncurses/panel/p_new.c head/contrib/ncurses/panel/p_replace.c head/contrib/ncurses/panel/p_show.c head/contrib/ncurses/panel/p_top.c head/contrib/ncurses/panel/p_update.c head/contrib/ncurses/panel/p_user.c head/contrib/ncurses/panel/p_win.c head/contrib/ncurses/panel/panel.c head/contrib/ncurses/panel/panel.h head/contrib/ncurses/panel/panel.priv.h head/contrib/ncurses/progs/MKtermsort.sh head/contrib/ncurses/progs/Makefile.in head/contrib/ncurses/progs/capconvert head/contrib/ncurses/progs/clear.c head/contrib/ncurses/progs/clear.sh head/contrib/ncurses/progs/clear_cmd.c head/contrib/ncurses/progs/clear_cmd.h head/contrib/ncurses/progs/dump_entry.c head/contrib/ncurses/progs/dump_entry.h head/contrib/ncurses/progs/infocmp.c head/contrib/ncurses/progs/modules head/contrib/ncurses/progs/progs.priv.h head/contrib/ncurses/progs/reset_cmd.c head/contrib/ncurses/progs/reset_cmd.h head/contrib/ncurses/progs/tabs.c head/contrib/ncurses/progs/tic.c head/contrib/ncurses/progs/toe.c head/contrib/ncurses/progs/tparm_type.c head/contrib/ncurses/progs/tparm_type.h head/contrib/ncurses/progs/tput.c head/contrib/ncurses/progs/transform.c head/contrib/ncurses/progs/tset.c head/contrib/ncurses/progs/tty_settings.c head/contrib/ncurses/progs/tty_settings.h head/lib/ncurses/ncurses/ncurses_cfg.h Directory Properties: head/contrib/ncurses/ (props changed) Modified: head/contrib/ncurses/ANNOUNCE ============================================================================== --- head/contrib/ncurses/ANNOUNCE Wed Feb 19 17:00:21 2020 (r358126) +++ head/contrib/ncurses/ANNOUNCE Wed Feb 19 17:09:08 2020 (r358127) @@ -1,4 +1,4 @@ - Announcing ncurses 6.1 + Announcing ncurses 6.2 Overview @@ -17,7 +17,7 @@ Overview * It is used in almost every system based on the Linux kernel (aside from some embedded applications). * It is used as the system curses library on OpenBSD, FreeBSD and - OSX. + MacOS. * It is used in environments such as Cygwin and MinGW. The first of these was EMX on OS/2 Warp. * It is used (though usually not as the system curses) on all of the @@ -26,611 +26,374 @@ Overview * It should work readily on any ANSI/POSIX-conforming unix. The distribution includes the library and support utilities, including - * [1]captoinfo, a termcap conversion tool - * [2]clear, utility for clearing the screen - * [3]infocmp, the terminfo decompiler - * [4]tabs, set tabs on a terminal - * [5]tic, the terminfo compiler - * [6]toe, list (table of) terminfo entries - * [7]tput, utility for retrieving terminal capabilities in shell + * captoinfo, a termcap conversion tool + * clear, utility for clearing the screen + * infocmp, the terminfo decompiler + * tabs, set tabs on a terminal + * tic, the terminfo compiler + * toe, list (table of) terminfo entries + * tput, utility for retrieving terminal capabilities in shell scripts - * [8]tset, to initialize the terminal + * tset, to initialize the terminal Full manual pages are provided for the library and tools. - The ncurses distribution is available at ncurses' [9]homepage: + The ncurses distribution is available at ncurses' homepage: - [10]ftp://ftp.invisible-island.net/ncurses/ or - [11]https://invisible-mirror.net/archives/ncurses/ . + ftp://ftp.invisible-island.net/ncurses/ or + https://invisible-mirror.net/archives/ncurses/ . It is also available via anonymous FTP at the GNU distribution site - [12]ftp://ftp.gnu.org/gnu/ncurses/ . + ftp://ftp.gnu.org/gnu/ncurses/ . Release Notes - These notes are for ncurses 6.1, released January 27, 2018. + These notes are for ncurses 6.2, released February 12, 2020. This release is designed to be source-compatible with ncurses 5.0 - through 6.0; providing extensions to the application binary interface + through 6.1; providing extensions to the application binary interface (ABI). Although the source can still be configured to support the - ncurses 5 ABI, the intent of the release is to provide extensions to - the ncurses 6 ABI: - * improve integration of tput and tset - * provide support for extended numeric capabilities. + ncurses 5 ABI, the reason for the release is to reflect improvements + to the ncurses 6 ABI and the supporting utility programs. There are, of course, numerous other improvements, listed in this announcement. - The release notes also mention some bug-fixes, but are focused on new - features and improvements to existing features since ncurses 6.0 - release. + The most important bug-fixes/improvements dealt with user-defined + capabilities in terminal descriptions. The release notes also mention + some other bug-fixes, but are focused on new features and improvements + to existing features since ncurses 6.1 release. Library improvements New features - The improved integration of tput and tset made only small changes to - the libraries. However, supporting extended numeric capabilities - required a few changes: - * The TERMINAL structure in is now opaque. Doing that - allowed making the structure larger, to hold the extended numeric - data. - A few applications required changes during development of - ncurses 6.1 because those applications misused the members of that - structure, e.g., directly modifying it rather than using - [13]def_prog_mode. - * Having made TERMINAL opaque (and because none of the library - functions use anything except a pointer to TERMINAL), it was - possible to increase the size of the structure, adding to the end. - Existing applications which were linked to the ncurses 6.0 - high-level (ncurses, ncursesw) and low-level (tinfo, tinfo) - libraries should not require re-linking since the binary interface - did not change, nor did the structure offsets with TERMINAL - change. - A few applications use the inner TERMTYPE structure's offsets to - refer to terminfo capabilities within that structure. Again, those - do not require modification because their offsets within TERMINAL - did not change. - * When configured for wide-characters, i.e., "ncursesw" the TERMINAL - structure is extended. - The new data in TERMINAL holds the same information as TERMTYPE, - but with larger numbers ("int" versus "short"). It is named - TERMTYPE2. - The library uses this structure internally in preference to - TERMTYPE, referring to TERMTYPE only to initialize it for - applications that use the capabilities defined in - * When configured for 8-bit (narrow) characters, the TERMTYPE2 - structure is not used. - * The updated application binary interface is 6.1.20171230 (used for - new [14]versioned symbols), although the interface changes were - developed several months previously. + There are several new features: + * O_EDGE_INSERT_STAY tells the form library to optionally delay + cursor movement on a field edge/boundary + * O_INPUT_FIELD extension to form library allows a dynamic field to + shrink if the new limit is smaller than the current field size. + * added exit_curses and exit_terminfo to replace internal symbols + for leak-checking. + * added curses_trace, to replace trace(). - The motivation for making this extension came from noticing that - [15]termcap applications could (though not [16]realistically) use - larger numbers than would fit in 16-bits, and the fact that the number - of color pairs for a 256-color xterm could not be expressed in - terminfo (i.e., 32767 versus 65536). Also, a few terminals support - direct-colors, which could use the extension. - - Generally speaking, applications that use internal details of a - library are unsupported. There was exactly one exception for ncurses: - the tack program used the internal details of TERMINAL, because it - provides an ncurses-specific feature for interactively modifying a - terminfo description and writing the updated description to a - text-file. It was possible to not only separate tack from these - [17]internal details of ncurses, but to generalize it so that the - program works with Unix curses (omitting the ncurses-specific - feature). That was released as [18]tack 1.08 in July 2017. - - While making changes to tack to eliminate its dependency upon ncurses - internals, the publicly-visible details of those internals were - reviewed, and some symbols were moved to private header files, while - others were marked explicitly as ncurses internals. Future releases of - ncurses may eliminate some of those symbols (such as those used by - tack 1.07) because they are neither part of the API or the ABI. - - Using the TERMTYPE2 extended numeric capabilities, it is possible to - support both color pair values and color values past 32767. Taking - compatibility into account, developers readily understand that neither - function signatures nor structure offsets change. Also, existing - functions have to operate with the extended numbers. Most of that work - is internal to the library. For the external interfaces, a hybrid - approach was used: - * X/Open Curses defined function prototypes such as wattr_set with - an unused parameter, for "future" use. After 25 years, the future - is here: ncurses uses the parameter to augment color pair values - as described in the [19]manual page. - * Other functions such as those defining color pairs did not have a - corresponding reserved parameter. For those, ncurses defines - extended versions such as init_extended_pair (versus init_pair), - init_extended_color (versus init_color). - Additionally, to improve performance other changes (and extensions) are provided in this release: - * Several new functions simplify management of large sets of color - pairs: reset_color_pairs, alloc_pair, find_pair and free_pair. - * New "RGB" extension capability for direct-color support is used to - improve performance of color_content. - * The internal colorpair_t is now a struct, eliminating an internal - 8-bit limit on colors - * Allocation for SCREEN's color-pair table starts small, grows on - demand up to the limit given in the terminal description. - * setcchar and getcchar now treat a negative color-pair as an error. + * mouse decoding now handles shift/control/alt logic when decoding + xterm's 1006 mode + * ncurses now defines a limit for wgetnstr, wgetn_wstr when length + is negative or "too large". + * reordered loop-limit checks in winsnstr in case the string has no + terminating null and only the number of characters is used. + * there is now no buffer-size limit when reading the $TERMCAP + variable. + * the $TERMCAP variable may be interpreted as a fallback to a + terminfo entry + * mvcur now decides whether to use hard-tabs, using xt, tbc and hts + as clues. + * extended colors are improved by modifying an internal call to + vid_puts to pass extended color pairs e.g., from tty_update.c and + lib_mvcur.c + * the initialization functions now avoid relying upon persistent + data for the result from getenv + * scrolling is improved: + + a limit check in newline_forces_scroll handles the case where + the row is inside scroll-margins, but not at the end. + + improved loop limits in _nc_scroll_window handle a case where + the scrolled data is a pad which is taller than the window. Other improvements - These are new or revised features: - * modify c++/etip.h.in to accommodate deprecation of throw and - throws in c++17 - * add new function unfocus_current_field - * add option to preserve leading whitespace in form fields - * add a macro for is_linetouched and adjust the function's return - value to make it possible for most applications to check for an - error-return. - * add build-time utility report_offsets to help show when the - various configurations of tinfo library are compatible or not. + These are revised features: + * used "const" in some prototypes rather than NCURSES_CONST where + X/Open Curses was updated to do this, e.g., wscanw, newterm, the + terminfo interface. Also use "const" for consistency in the + termcap interface, which was withdrawn by X/Open Curses in Issue 5 + (2007). As of Issue 7, X/Open Curses still lacks "const" for + certain return values, e.g., keyname. + * modified wbkgd and wbkgrnd to improve compatibility with SVr4 + curses, changing the way the window rendition is updated when the + background character is modified + * improved terminfo write/read by modifying the fourth item of the + extended header to denote the number of valid strings in the + extended string table (see term(5)). + * modified the initialization checks for mouse so that the + xterm+sm+1006 block will work with terminal descriptions not + mentioning xterm. These were done to limit or ultimately deprecate features: - * drop two symbols obsoleted in 2004: _nc_check_termtype, and - _nc_resolve_uses - * move _nc_tracebits, _tracedump and _tracemouse to curses.priv.h, - since they are not part of the suggested ABI6. - * mark some structs in form/menu/panel libraries as potentially - opaque without modifying API/ABI. - * ifdef'd header-file definition of mouse_trafo with - NCURSES_NOMACROS - * remove initialization-check for calling napms in the term-driver - configuration; none is needed. - * modify trace to avoid overwriting existing file + * deprecated safe-sprintf, since the vsnprintf function, which does + what was needed, was standardized long ago. + * marked vwprintw and vwscanw as deprecated; recommend using + vw_printw and vw_scanw, respectively. + * added deprecation warnings for internal functions called by older + versions of tack. + * removed unused _nc_import_termtype2 function. These are improvements to existing features: - * modify make_hash to allow building with address-sanitizer, - assuming that --disable-leaks is configured. - * move SCREEN field for use_tioctl data before the ncursesw fields, - and limit that to the sp-funcs configuration to improve termlib - compatibility - * modify db-iterator: - + ignore zero-length files in db-iterator; these are useful for - instance to suppress $HOME/.terminfo when not wanted. - + modify update_getenv to ensure that environment variables - which are not initially set will be checked later if an - application happens to set them - * modify _nc_outc_wrapper to use the standard output if the screen - was not initialized, rather than returning an error. - * improve checks for low-level terminfo functions when the terminal - has not been initialized. - * modify set_curterm to update ttytype[] data used by longname/p> - * modify _nc_get_screensize to allow for use_env and use_tioctl - state to be per-screen when sp-funcs are configured, better - matching the behavior when using the term-driver configuration. - * remove an early-return from _nc_do_color, which can interfere with - data needed by bkgd when ncurses is configured with extended - colors - * incorporate A_COLOR mask into COLOR_PAIR, in case user application - provides an out-of-range pair number - * modify logic for endwin-state to be able to detect the case where - the screen was never initialized, using that to trigger a flush of - ncurses' buffer for mvcur, e.g., in the sample program dots_mvcur - for the term-driver configuration. + * check parameter of set_escdelay, return ERR if negative. + * check parameter of set_tabsize, return ERR if not greater than + zero + * correct a status-check in _nc_read_tic_entry() so that if reading + a hex/b64 $TERMINFO, and the $TERM does not match, fall-through to + the compiled-in search list. + * amend check for repeat_char to handle a case where setlocale() was + called after initscr + * move macro for is_linetouched inside NCURSES_NOMACROS ifndef. + * use _nc_copy_termtype2 rather than direct assignment in setupterm, + in case it is called repeatedly using fallback terminfo + descriptions + * improve workaround for Solaris wcwidth versus line-drawing + characters + * add checks in repair_subwindows to keep the current position and + scroll-margins inside the resized subwindow. + * correct a buffer-limit in write_entry.c for systems that use + caseless filenames. + * improved build-time utility report_offsets: + + add categories, e.g., "w" for wide-character, "t" for threads + to make the report more readable. Reorganized the structures + reported to make the categories more apparent. + + add NCURSES_GLOBALS and NCURSES_PRESCREEN to report to show + how similar the different libtinfo configurations are. + * modified some header files to ensure that those include necessary + files except for the previously-documented cases + * added some traces in initialization to show whether a fallback + entry is used. + * made minor optimization to reduce calls to _nc_reserve_pairs These are corrections to existing features: - * fixes for writing extended color pairs in putwin. - * modify no-leaks code for lib_cur_term.c to account for the tgetent - cache. - * amend handling of the repeat_char capability in EmitRange to avoid - scope creep: translate the character to the alternate character - set when the alternate character set is enabled, and do not use - repeat_char for characters past 255. - * improve wide-character implementation of myADDNSTR in - frm_driver.c, which was inconsistent with the normal - implementation. - * modify winnstr and winchnstr to return error if the output pointer - is null, as well as adding a null pointer check of the window - pointer for better compatibility with other implementations. - * modify setupterm to save original tty-modes so that erasechar - works as expected. Also modify _nc_setupscreen to avoid redundant - calls to get original tty-modes. - * modify wattr_set and wattr_get to return ERR if win-parameter is - null, as documented. - * correct order of initialization for traces in use_env and - use_tioctl versus first _tracef calls. - * correct parameters for copywin call in _nc_Synchronize_Attributes - * flush the standard output in _nc_flush for the case where SP is - zero, e.g., when called via putp. This fixes a scenario where - "tput flash" did not work after changes in 20130112. - * amend internal use of tputs to consistently use the number of - lines affected, e.g., for insert/delete character operations. - While merging terminfo source early in 1995, several descriptions - used the "*" proportional delay for these operations, prompting a - change in doupdate. - * correct return-value of extended putwin. - * double-width multibyte characters were not counted properly in - winsnstr and wins_nwstr. - * amend fix for _nc_ripoffline from 20091031 to make test/ditto.c - work in threaded configuration. - * modify _nc_viscbuf2 and _tracecchar_t2 to trace wide-characters as - a whole rather than their multibyte equivalents. - * minor fix in wadd_wchnstr to ensure that each cell has nonzero - width. - * move PUTC_INIT calls next to wcrtomb calls, to avoid carry-over of - error status when processing Unicode values which are not mapped. - * add missing assignment in lib_getch.c to make notimeout work + * fix a special case in PutAttrChar where a cell is marked as + alternate-character set, but the terminal does not actually + support the given graphic character. This would happen in an older + terminal such as vt52, which lacks most line-drawing capability. + * corrected flag for "seq" method of db 1.8.5 interface, needed by + toe on some of the BSDs. + * modify comparison in make_hash.c to correct a special case in + collision handling for Caps-hpux11 + * add extended_slk_color{,_sp} symbols to the appropriate + package/*.{map,sym} files + * modify lib_setup to avoid calling pthread_self() without first + verifying that the address is valid, i.e., for weak symbols + * add a couple of broken-linker symbols to the list of versioned + symbols to help with link-time optimization versus weak symbols. Program improvements - While reviewing user feedback, it became apparent that the differences - between [20]reset (an alias for tset) and "tput reset" were confusing: - * one ([21]tset) updated the terminal modes, but used only part of - the terminfo capabilities for initialization, while - * the other ([22]tput) used all of the terminal capabilities while - neglecting the terminal modes. + Several improvements were made to the utility programs: - On further investigation, it turned out that the differences were - largely an accident due to the way those programs had evolved. + clear - This release eliminates the unnecessary differences, using the same - approach for tput's init (initialization), reset and clear operations - as the separate [23]reset and [24]clear programs. Doing this does not - change the command-line options; existing scripts are unaffected. + + improved logic for clearing with the E3 extension, in case + the terminal scrolls content onto its saved-lines before + actually clearing the display, by clearing the saved-lines + after clearing the display - These are the user-visible changes for the three programs (tput, tset - and clear): - * add the terminal-mode parts of "reset" (aka tset) to the "tput - reset" command, making the two almost the same except for - window-size. - * improve tput's check for being called as "init" or "reset" to - allow for transformed names. - * add "clear" as a possible link/alias to tput. - * amend changes for tput to reset tty modes to "sane" if the program - is run as "reset", like tset. Likewise, ensure that tset sends - either reset- or init-strings. - * add -x option to clear/tput to make the E3 extension optional - * add functionality of "tset -w" to tput, like the "-c" feature this - is not optional in tput. - * add options -T and -V to clear command for compatibility with - tput. - * drop long-obsolete "-n" option from tset. - * modify tset's assignment to TERM in its output to reflect the name - by which the terminal description is found, rather than the - primary name. That was an unnecessary part from the initial - conversion of tset from termcap to terminfo. The termcap library - in 4.3BSD did this to avoid using the short 2-character name - * remove a restriction in tput's support for termcap names which - omitted capabilities normally not shown in termcap translations - * add usage message to clear command - * improve usage messages for tset and tput. + infocmp - Other user-visible improvements and new features include: - * modify tic/infocmp display of numeric values to use hexadecimal - when they are "close" to a power of two, making the result more - readable. - * add "-W" option to tic/infocmp to force long strings to wrap. - + This is in addition to the "-w" option which attempts to fit - capabilities into a given line-length. - + If "-f" option splits line, do not further split it with - "-W". - + Begin a new line when adding "use=" after a wrapped line. - * add "-q" option to infocmp to suppress the "Reconstructed from" - comment from the header, and a corresponding option to tic to - suppress all comments from the "tic -I" output. - * Sorted options in usage message for infocmp, to make it simpler to - see unused letters. - * Updated usage message for tic, adding "-0" option. - * add infocmp/tic "-Q" option, which allows one to dump the compiled - form of the terminal entry, in hexadecimal or base64: - + A "b64:" prefix in the TERMINFO variable tells the terminfo - reader to use base64 according to RFC-3548 as well as - RFC-4648 url/filename-safe format. - + A "hex:" prefix tells the terminfo reader to accept - hexadecimal data as generated by "infocmp -0qQ1". + + omit filtering of "OTxx" names which are used for obsolete + capabilities, when the output is sorted by long-names. This + change helps when making a table of the short/long capability + names. - Other less-visible improvements and new features include: - * modify utility headers such as tic.h to make it clearer which are - externals that are used by tack. - * add "reset" to list of programs whose names might change in - manpages due to program-transformation configure options. - * modify "-T" option of clear and tput to call use_tioctl to obtain - the operating system's notion of the screensize if possible. - * add check in tput for init/reset operands to ensure those use a - terminal. - * modify programs clear, tabs, tput and tset to pass the actual tty - file descriptor to setupterm rather than the standard output or - error, making padding work. - * change tset's initialization to allow it to get settings from the - standard input as well as /dev/tty, to be more effective when - output or error are redirected. - * amend check in tput, tabs and clear to allow those to use the - database-only features in cron if a "-T" option gives a suitable - terminal name. - * improve error message from tset/reset when both stderr/stdout are - redirected to a file or pipe. + tic - Several of the less apparent features deal with translation of - terminfo to termcap (and the reverse), with corresponding checks by - tic: - * modify check in fmt_entry to handle a cancelled reset string. Make - similar fixes in other parts of dump_entry.c and tput.c - * correct read of terminfo entry in which all strings are absent or - explicitly cancelled. Before this fix, the result was that all - were treated as only absent. - * modify infocmp to suppress mixture of absent/cancelled - capabilities that would only show as "NULL, NULL", unless the "-q" - option is used, e.g., to show "-, @" or "@, -". - * correct a warning from tic about keys which are the same, to skip - over missing/cancelled values. - * add check in tic for use of bold, etc., video attributes in the - color capabilities, accounting whether the feature is listed in - ncv. - * add check in tic for unnecessary use of "2" to denote a shifted - special key. - * improve check in tic for delays by also warning about beep/flash - when a delay is not embedded, or if those use the VT100 reverse - video escape without using a delay. - * improve checks in trim_sgr0, comp_parse.c and parse_entry.c, for - cancelled string capabilities. - * add check in tic for some syntax errors of delays, as well as use - of proportional delays for non-line capabilities. - * add check in tic for conflict between ritm, rmso, rmul versus - sgr0. - * add check in _nc_parse_entry for invalid entry name, setting the - name to "invalid" to avoid problems storing entries. - * improve _nc_tparm_analyze, using that to extend the checks made by - tic for reporting inconsistencies between the expected number of - parameters for a capability and the actual. - * remove tic warning about "^?" in string capabilities, which was - marked as an extension; however all Unix implementations support - this and X/Open Curses does not address it. On the other hand, - [25]BSD termcap did not support this feature (until the - [26]mid-1990s). - in _nc_infotocap, added a check to ensure that terminfo "^?" is - not written to termcap. - * modify sscanf calls in _nc_infotocap for patterns "%{number}%+%c" - and "%'char'%+%c" to check that the final character is really "c", - avoiding a case in icl6404 which cannot be converted to termcap. - * in _nc_tic_expand and _nc_infotocap, improved string-length check - when deciding whether to use "^X" or "\xxx" format for control - characters, to make the output of tic/infocmp more predictable. - * limited termcap "%d" width to 2 digits on input, and use "%2" in - preference to "%02" on output. - * correct terminfo/termcap conversion of "%02" and "%03" into "%2" - and "%3"; the result repeated the last character. + + added check for consistent alternate character set + capabilities. + + added check for paired indn/rin. + + added check for terminals with parm_dch vs parm_ich. + + added check for the case where setf/setb are given using + different strings, but provide identical results to + setaf/setab. + + corrected check for ich1. + + changed a too-large terminal entry from a fatal error to a + warning. + toe + + + ignores any hex/b64 $TERMINFO value in the list of terminfo + databases. + + tset + + + replace check in reset command for obsolete "pt" capability + using tbc and hts capabilities as clues + + modify reset to allow for tabstops at intervals other than 8. + + change reset's behavior for margins to simply clear + soft-margins if possible, rather than clearing and then + setting them according to the terminal's width. + + tput + + + add "x" to getopt string so that "tput -x clear" works. + + Several changes were made to the generated ncurses*config scripts and + the analogous ".pc" files to reduce differences between the + configurations they report: + * modified the ncurse*-config and pc-files to more closely match for + the -I and -l options. + * filtered out linker-specs from the --libs report. + * amended the ncurses*-config and pc-files to take into account the + rpath hack which differed between those files. + * modified generated ncurses*config and ncurses.pc, ncursesw.pc, + etc., to list helper libraries such as gpm for static linking. + Examples - Along with the library and utilities, many improvements were made to - the [27]ncurses-examples. + Along with the library and utilities, improvements were made to the + ncurses-examples. Most of this activity aimed at improving the + test-packages. A few changes are more generally useful, e.g., for the + main ncurses test-program, and for analyzing traces using the + tracemunch script: + * improve recovery from error when reading command-character in + test/ncurses.c, showing the relevant error message and not exiting + on EINTR. + * improve tracemunch, by keeping track of TERMINAL* values, and if + tracing was first turned on after initialization, attempt to show + distinct screen, window and terminal names anyway. + * modify tracemunch to accept filename parameters in addition to use + as a pipe/filter. + * update tracemunch to work with perl 5.26.2, which changed the + rules for escaping regular expressions. + * add some checks in tracemunch for undefined variables. + * modify TurnOn/TurnOff macros (in lib_vidattr.c and lib_vid_attr.c) + to avoid expansion of "CUR" in trace. - These changes were made to demonstrate new extensions in ncurses: - * add demo_new_pair program, to demonstrate [28]alloc_pair, - [29]find_pair and [30]free_pair functions. - This program iterates over the possible color combinations, - allocating or initializing color pairs. For best results, choose - screen-width dividing evenly into the number of colors. e.g., + There are other new demo/test programs and reusable examples: - 32x64,32x128 256 colors - 24x44,24x88 88 colors - 32x64,24x128 16 colors + color_content + Demonstrate the color_content and extended_color_content + functions. - * add extended_color program, like the older color_set program, but - using the extended color functions, with and without the - SP-functions interface. - * add picsmap program to fill in some testing issues not met by - dots, using this as the third example in a comparison of the - [31]ncurses versus slang libraries. - The program can directly read X bitmap and pixmap files, - displaying a picture. It can read other image files using - ImageMagick's convert program to translate the image into text. - For 16-, 88- and 256-color terminal descriptions, picsmap can load - a palette file which tells it which color palette entries to use. - For direct-colors, the terminal descriptions use the RGB extension - capability. + demo_tabs + A simple demo of tabs in curses. - There are other new example programs and a few scripts: - * add dots_xcurses program to illustrate a different approach used - for extended colors which can be contrasted with dots_curses. - * add list_keys program show function keys for one or more terminal - descriptions. It uses ncurses's convention of modifiers for - special keys, based on xterm. - * add padview program, to compare pads with direct updates in the - view program. - * add sp_tinfo program to exercise the SP-functions extension of the - low-level terminfo library. - * add test-programs for termattrs and term_attrs functions. - * add test_sgr program to exercise all combinations of the sgr - capability. - * add tput-colorcube demo script, imitating xterm's 88- and - 256-color scripts using tput. - * add tput-initc script to demonstrate how tput may be used to - initialize a color palette from a data file. + dump_window + A portable curses screen-dump, used to compare ncurses screen + contents with Solaris. + pair_content + Demonstrate the pair_content and extended_pair_content + functions. + + report_hashing + Check hash-tables used for terminfo and termcap names. + + parse_rgb + Sample implementation of the ncurses RGB extension from + user_caps.5, used in picsmap and savescreen programs. + A variety of improvements were made to existing programs, both new features as well as options added to make the set of programs more consistent. + * add "-l" option to test/background, to dump screen contents in a + form that lets different curses implementations be compared. + * add "@" command to test/ncurses F-test, to allow rapid jump to + different character pages. + * added enum, regex examples to test/demo_forms + * amend Scaled256() macro in test/picsmap.c to cover the full range + 0..1000 + * corrected pathname used in Ada95 sample programs for explain.txt, + to work with test-packages, and used an awk script to split the + resulting pathname when it would be too long for a single line. + * ignore interrupted system-call in test/ncurses's command-line, + e.g., if the terminal were resized. + * improved ifdef's for TABSIZE variable, to help with AIX/HPUX + ports. - The ncurses program is the largest; a proportionately large number of - changes were made to it: - * modify a/A screens to make exiting on an escape character depend - on the start of keypad and timeout modes, to allow better testing - of function-keys. - add "t" toggle for notimeout function. - * modify layout of b/B screens to allow for additional annotation on - the right margin; some terminals with partial support did not - display well. - * modify c/C screens to allow for extended color pairs. - add z/Z zoom feature to make extended color pairs easier to test. - modify test-screens to take advantage of wide screens, reducing - the number of lines used for 88- and 256-colors. - * modify "d" edit-color screen to optionally read xterm color - palette directly from terminal, as well as handling KEY_RESIZE and - screen-repainting with control/L and control/R. - * add examples to "F" screen for WACS_D_PLUS and WACS_T_PLUS. - * improve "g" screen, correcting ifdef which made the legend not - reflect changes to keypad- and scroll-modes. Added check for - return-value of putwin. - * make "s" test easier to understand which subtests are available - add a corresponding "S" wide-character overlap test-screen. - * add "v" screen to show baudrate and other values. - - These changes were made to the other examples: - * modify blue program to use Unicode values for card-glyphs when - available, as well as improving the check for CP437 and CP850. - * improve demo_menus program, allowing mouse-click on the - menu-headers to switch the active menu. This requires a new - extension option O_MOUSE_MENU to tell the menu driver to put mouse - events which do not apply to the active menu back into the queue - so that the application can handle the event. - * correct logic in demo_terminfo program for "-f" option - * modify ditto program to allow $XTERM_PROG environment variable to - override "xterm" as the name of the program to run in the threaded - configuration. - * add several options to the "dots" test-programs. - * modify filter program: - + illustrate an alternative to getnstr, that polls for input - while updating a clock on the right margin as well as - responding to window size-changes. - + adapt logic used in [32]dialog [33]"--keep-tite" option for - filter program as the "-a" option. When set, filter attempts - to suppress the alternate screen. - * modify knight program to provide the "slow" solution for small - screens using "R", noting that Warnsdorf's method is easily done - with "a". - * modify the savescreen program to add test patterns that exercise - 88-, 256-, etc., colors. - * add options to test_arrays, for selecting termcap vs terminfo, - etc. - * modify the view program: - + expand tabs using the ncurses library rather than in the - test-program. - + eliminate the "-n" option by simply reading the whole file. - + implement page up/down commands. - + remove the very old SIGWINCH example; just use KEY_RESIZE. - * improve animation in xmas program by adding a time-delay in - blinkit. - * modify several test-programs which call use_default_colors to - consistently do this only if the "-d" option is given. - * modify the install-rule for ncurses-examples to put the data files - in the data directory, e.g., /usr/share/ncurses-examples. - * modify several test programs to use new popup_msgs function, - adapted from the help-screen used in the edit_field program. - * modify test data for xterm palettes to use the newer - color4/color12 values. - * improve the tracemunch script: - + show screenXX pointers and thread identifiers as names. - + chang address-parameters of add_wch, color_content and - pair_content to dummy parameters. - Terminal database There are several new terminal descriptions: - dumb-emacs-ansi, dvtm, dvtm-256color, fbterm, iterm2, linux-m1 - minitel entries, putty-noapp, viewdata, and vt100+4bsd - building-block. + alacritty, domterm, kitty, mintty, mintty-direct, ms-terminal, + n7900, nsterm-build309, nsterm-direct, screen5, ti703, ti707, + ti703-w, ti707-w vscode, vscode-direct, xterm-mono, xterm.js - xterm+noalt, xterm+titlestack, xterm+alt1049, xterm+alt+title - building blocks and xterm+direct, xterm+indirect, xterm-direct. - from [34]xterm patch #331. - - several other "-direct" descriptions to address the differences of - other terminal emulators versus xterm-direct. - There are many changes to existing terminal descriptions. Some were updates to several descriptions: - * use xterm+sm+1006 in several terminal descriptions which were - validated as supporting the extended mouse feature for their - respective terminal emulators. - * corrected sgr/sgr0 strings in a few cases reported by tic, making - those correspond to the non-sgr settings where they differ, but - otherwise use ECMA-48 consistently. - * add 0.1sec mandatory delay to flash capabilities using the VT100 - reverse-video control + * use ansi+rep in a dozen places + * add rs1 to konsole, mlterm + * improve several flash capabilities with trailing mandatory delays + * drop ich1 from rxvt-basic, Eterm and mlterm to improve + compatibility with old non-curses programs + * add/use xterm+keypad in xterm-new + * use xterm+sl-twm for consistency, nine places + * improve xm example in xterm+x11mouse and xterm+sm_1006. while others affected specific descriptions. These were retested, to - take into account new/undocumented changes by their developers: + take into account changes by their developers: - iterm, minitel, st, viewdata, nsterm + terminator, st - while these are specific fixes based on user reports, or warnings from - tic: + while these are specific fixes based on reviewing documentation, user + reports, or warnings from tic: - [35]ansi building blocks + adds200: - + restored rmir/smir in ansi+idc to better match original - ansiterm+idc, add alias ansiterm + + fix typo - [36]icl6402 + gnome-256color - + corrected missing comma-separator between string capabilities - in icl6402 and m2-nam + + base entry on "gnome", not "vte", for consistency - [37]interix + interix - + updated using tack and SFU with Windows 7 Ultimate. - + used ^? for kdch1 + + trim unnecessary setf/setb - [38]linux + linux-16color - + made linux3.0 entry the default linux entry - + modify linux2.6 entry to improve line-drawing so that the - linux3.0 entry can be used in non-UTF-8 mode - + omitted selection of ISO-8859-1 for G0 in enacs capability - from linux2.6 entry, to avoid conflict with the user-defined - mapping. The reset feature uses ISO-8859-1 in any case. - + modify flash capability for linux and wyse entries to put the - delay between the reverse/normal escapes rather than after - + modify linux-16color to not mask dim, standout or reverse - with the ncv capability + + accommodate Linux console driver incompatibility introduced + in early 2018 - [39]pccon entries + nsterm-256color: - + fixed some inconsistencies in the pccon* entries - + add bold to pccon+sgr+acs and pccon-base - + add keys f12-f124 to pccon+keys + + add nsterm-build309 to replace nsterm-256color, assigning the + latter as an alias of nsterm, to make mouse work with + nsterm-256color - [40]tmux + regent40: - + corrected sgr string, which used screen's "standout" code - rather than the standard code. - + add settings corresponding to xterm-keys option to reflect - upcoming change to make that option "on" by default - + uncanceled Ms + + renumber function-keys to match manual - [41]vt100 + regent60: - + modify vt100 rs2 string to reset vt52 mode and scrolling - regions - + corrected rs2 string for vt100-nam - + made minor fixes for vt100+4bsd, e.g., delay in sgr for - consistency + + add cd (clr_eos) + + corrected acsc + + add shifted function-keys - [42]vte + tvi950: - + moved SGR 24 and 27 from vte-2014 to vte-2012 - + add a few capabilities fixed in recent VTE development + + added function-key definitions to agree with Televideo 950 + manual + + corrected acsc + + remove bogus kf0 + + add bel - [43]xterm + tvi955: - + add rep to xterm-new, available since [44]late 1996. - + modify xterm+256color and xterm+256setaf to use correct - number of color pairs. - + modify rs1 for xterm-16color, xterm-88color and - xterm-256color to reset palette using oc string as in linux - entry. - + add rs1 capability to xterm-256color - + add oc capability to xterm+256color, allowing palette reset - for xterm - + add op to xterm+256setaf - + modify xterm-r5, xterm-r6 and xterm-xf86-v32 to use xterm+kbs - to match [45]xterm #272, reflecting packager's changes - + used ANSI reply for u8 in xterm-new, to reflect vt220-style - responses that could be returned. - + made xterm-pcolor sgr consistent with other capabilities + + fix typo + vi200: + + + add acsc string, including right/down-arrow + + wy50: + + + corrected acsc + + wy50 and wy60: + + + add shifted function-keys as kF1 to kF16 + + xterm+x11hilite: + + + eliminate unused p5 parameter. + A few entries use extensions (user-defined terminal capabilities): - * add rmxx/smxx ECMA-48 strikeout extension to tmux and xterm-basic - * used RGB capability in new *-direct entries to denote direct-color - feature. + * use xterm+sm+1006 (aka "SGR 1006 mouse") for konsole-base and + putty + * add Smol/Rmol user-defined capability to tmux and vte-2018 + * add Smulx user-defined capability to tmux, vte-2018 Documentation @@ -639,273 +402,279 @@ Release Notes * attempts to improve the description of features which users have found confusing * fills in overlooked descriptions of features which were described - in the [46]NEWS file but treated sketchily in manual pages. + in the NEWS file but treated sketchily in manual pages. - In particular, - * Since the underlying features for [47]tset, [48]tput, and - [49]clear have been better integrated, the documentation now - includes information on how those tools evolved. - In addition to explaining the improved integration of the tools, - the manual pages made it easier to see how the tools are similar - and how they are different. - * The addch manual page has additional information on - [50]portability and differences from other implementations. - * The discussion of color-pairs in the attributes manual page is - improved in its [51]history section. - * The documentation of the chtype, cchar_t types and the attribute - values which can be stored in those types, in particular the - [52]history and [53]portability sections of the attributes manual - page, has been improved. - * improve discussion of [54]portability in the mouse manual. - * The pad manual page has a section on the [55]origin and - portability of pads. - * Differences between SVr4 and X/Open Curses soft-keys are discussed - in a new section on [56]portability. - * There are updated/improved notes on portability in the - [57]resizeterm and [58]wresize manual pages. - In addition to providing background information to explain these features and show how they evolved, there are corrections, clarifications, etc.: - * add note in the [59]addch manual about line-drawing when it - depends upon UTF-8. - * improve discussion of line-drawing characters in the [60]add_wch - manual. - * explain in [61]clear's manual page that it writes to the standard - output. - * improve description of [62]endwin. - * improve discussion of field validation in the [63]form driver - manual page. - * clarify the use of wint_t vs wchar_t in [64]get_wstr manual page. - * clarify in the [65]getch manual that the keypad mode affects an - application's ability to read KEY_MOUSE codes, but does not affect - KEY_RESIZE. - trim some obsolete/incorrect wording about EINTR from the getch - manual page - improve manual pages for [66]getch and [67]get_wch to point out - that they might return user-defined values which have no - predefined names in - * improve description of the -R option in the [68]infocmp manual - page - * clarify in the [69]resizeterm manual page how KEY_RESIZE is pushed - onto the input stream. - * document return value of [70]use_extended_names - * document differences in [71]ESCDELAY versus AIX's implementation - in the variables manual page. - * The _nc_free_tinfo function is now documented in the - [72]memory-leaks manual page, because it could be used in tack for - memory-leak checking. - * add a note to the [73]tic manual page about -W versus -f options. - * improve terminfo manual description of [74]terminfo syntax. - improve terminfo manual page discussion of [75]control- and - graphics- characters. - improve [76]color-handling section in terminfo manual page - * clarify description in [77]tput manual page regarding support for - termcap names - update [78]tput manual page to reflect changes to manipulate - terminal modes by sharing functions with tset. - * clarify in manual pages that the optional verbose option level of - [79]tic and [80]infocmp is available only when ncurses is - configured for tracing. - * improve manual page description of [81]tset/reset versus - window-size. - * improve description of [82]tgoto parameters + * Corrections: + + correct error-returns listed in manual pages for a few form + functions + + corrected prototypes in several manpages using script to + extract those in compilable form. + + fix typo in term.5, improve explanation of format + * Clarify in manual pages that vwprintw and vwscanw are obsolete. + They have not been part of X/Open Curses since 2007. + * New/improved history and portability sections: + + curs_addch.3x gives some background for ACS symbols. + + curs_getcchar.3x explains a difference between ncurses and + X/Open Curses. + + curs_getstr.3x gives historical/portability background for + the length parameter of wgetnstr. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Feb 19 18:48:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 63D2A241EC9; Wed, 19 Feb 2020 18:48:47 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N6FC27jHz3Gdc; Wed, 19 Feb 2020 18:48:47 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1A3FFD352; Wed, 19 Feb 2020 18:48:47 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JIml2o044005; Wed, 19 Feb 2020 18:48:47 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JImkQ9044003; Wed, 19 Feb 2020 18:48:46 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002191848.01JImkQ9044003@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Wed, 19 Feb 2020 18:48:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358128 - in head: lib/libmemstat sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in head: lib/libmemstat sys/vm X-SVN-Commit-Revision: 358128 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 18:48:47 -0000 Author: jeff Date: Wed Feb 19 18:48:46 2020 New Revision: 358128 URL: https://svnweb.freebsd.org/changeset/base/358128 Log: Use per-domain locks for the bucket cache. This gives much better concurrency when there are a large number of cores per-domain and multiple domains. Avoid taking the lock entirely if it will not be productive. ROUNDROBIN domains will have mixed memory in each domain and will load balance to all domains. While here refactor the zone/domain separation and bucket limits to simplify callers. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D23673 Modified: head/lib/libmemstat/memstat_uma.c head/sys/vm/uma_core.c head/sys/vm/uma_int.h Modified: head/lib/libmemstat/memstat_uma.c ============================================================================== --- head/lib/libmemstat/memstat_uma.c Wed Feb 19 17:09:08 2020 (r358127) +++ head/lib/libmemstat/memstat_uma.c Wed Feb 19 18:48:46 2020 (r358128) @@ -425,12 +425,13 @@ memstat_kvm_uma(struct memory_type_list *list, void *k (unsigned long )uz.uz_frees); mtp->mt_failures = kvm_counter_u64_fetch(kvm, (unsigned long )uz.uz_fails); + mtp->mt_xdomain = kvm_counter_u64_fetch(kvm, + (unsigned long )uz.uz_xdomain); mtp->mt_sleeps = uz.uz_sleeps; /* See comment above in memstat_sysctl_uma(). */ if (mtp->mt_numallocs < mtp->mt_numfrees) mtp->mt_numallocs = mtp->mt_numfrees; - mtp->mt_xdomain = uz.uz_xdomain; if (kz.uk_flags & UMA_ZFLAG_INTERNAL) goto skip_percpu; for (i = 0; i < mp_maxid + 1; i++) { @@ -454,8 +455,9 @@ skip_percpu: mtp->mt_byteslimit = mtp->mt_countlimit * mtp->mt_size; mtp->mt_count = mtp->mt_numallocs - mtp->mt_numfrees; for (i = 0; i < ndomains; i++) { - ret = kread(kvm, &uz.uz_domain[i], &uzd, - sizeof(uzd), 0); + ret = kread(kvm, + &uz.uz_cpu[mp_maxid + 1] + i * sizeof(uzd), + &uzd, sizeof(uzd), 0); if (ret != 0) continue; for (ubp = Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Wed Feb 19 17:09:08 2020 (r358127) +++ head/sys/vm/uma_core.c Wed Feb 19 18:48:46 2020 (r358128) @@ -285,6 +285,8 @@ static void zone_dtor(void *, int, void *); static inline void item_dtor(uma_zone_t zone, void *item, int size, void *udata, enum zfreeskip skip); static int zero_init(void *, int, int); +static void zone_free_bucket(uma_zone_t zone, uma_bucket_t bucket, void *udata, + int itemdomain, bool ws); static void zone_foreach(void (*zfunc)(uma_zone_t, void *), void *); static void zone_foreach_unlocked(void (*zfunc)(uma_zone_t, void *), void *); static void zone_timeout(uma_zone_t zone, void *); @@ -518,6 +520,9 @@ bucket_free(uma_zone_t zone, uma_bucket_t bucket, void { struct uma_bucket_zone *ubz; + if (bucket->ub_cnt != 0) + bucket_drain(zone, bucket); + KASSERT(bucket->ub_cnt == 0, ("bucket_free: Freeing a non free bucket.")); KASSERT(bucket->ub_seq == SMR_SEQ_INVALID, @@ -538,17 +543,122 @@ bucket_zone_drain(void) } /* + * Acquire the domain lock and record contention. + */ +static uma_zone_domain_t +zone_domain_lock(uma_zone_t zone, int domain) +{ + uma_zone_domain_t zdom; + bool lockfail; + + zdom = ZDOM_GET(zone, domain); + lockfail = false; + if (ZDOM_OWNED(zdom)) + lockfail = true; + ZDOM_LOCK(zdom); + /* This is unsynchronized. The counter does not need to be precise. */ + if (lockfail && zone->uz_bucket_size < zone->uz_bucket_size_max) + zone->uz_bucket_size++; + return (zdom); +} + +/* + * Search for the domain with the least cached items and return it, breaking + * ties with a preferred domain by returning it. + */ +static __noinline int +zone_domain_lowest(uma_zone_t zone, int pref) +{ + long least, nitems; + int domain; + int i; + + least = LONG_MAX; + domain = 0; + for (i = 0; i < vm_ndomains; i++) { + nitems = ZDOM_GET(zone, i)->uzd_nitems; + if (nitems < least) { + domain = i; + least = nitems; + } else if (nitems == least && (i == pref || domain == pref)) + domain = pref; + } + + return (domain); +} + +/* + * Search for the domain with the most cached items and return it or the + * preferred domain if it has enough to proceed. + */ +static __noinline int +zone_domain_highest(uma_zone_t zone, int pref) +{ + long most, nitems; + int domain; + int i; + + if (ZDOM_GET(zone, pref)->uzd_nitems > BUCKET_MAX) + return (pref); + + most = 0; + domain = 0; + for (i = 0; i < vm_ndomains; i++) { + nitems = ZDOM_GET(zone, i)->uzd_nitems; + if (nitems > most) { + domain = i; + most = nitems; + } + } + + return (domain); +} + +/* + * Safely subtract cnt from imax. + */ +static void +zone_domain_imax_sub(uma_zone_domain_t zdom, int cnt) +{ + long new; + long old; + + old = zdom->uzd_imax; + do { + if (old <= cnt) + new = 0; + else + new = old - cnt; + } while (atomic_fcmpset_long(&zdom->uzd_imax, &old, new) == 0); +} + +/* + * Set the maximum imax value. + */ +static void +zone_domain_imax_set(uma_zone_domain_t zdom, int nitems) +{ + long old; + + old = zdom->uzd_imax; + do { + if (old >= nitems) + break; + } while (atomic_fcmpset_long(&zdom->uzd_imax, &old, nitems) == 0); +} + +/* * Attempt to satisfy an allocation by retrieving a full bucket from one of the * zone's caches. If a bucket is found the zone is not locked on return. */ static uma_bucket_t -zone_fetch_bucket(uma_zone_t zone, uma_zone_domain_t zdom) +zone_fetch_bucket(uma_zone_t zone, uma_zone_domain_t zdom, bool reclaim) { uma_bucket_t bucket; int i; bool dtor = false; - ZONE_LOCK_ASSERT(zone); + ZDOM_LOCK_ASSERT(zdom); if ((bucket = STAILQ_FIRST(&zdom->uzd_buckets)) == NULL) return (NULL); @@ -560,14 +670,24 @@ zone_fetch_bucket(uma_zone_t zone, uma_zone_domain_t z return (NULL); bucket->ub_seq = SMR_SEQ_INVALID; dtor = (zone->uz_dtor != NULL) || UMA_ALWAYS_CTORDTOR; + if (STAILQ_NEXT(bucket, ub_link) != NULL) + zdom->uzd_seq = STAILQ_NEXT(bucket, ub_link)->ub_seq; } MPASS(zdom->uzd_nitems >= bucket->ub_cnt); STAILQ_REMOVE_HEAD(&zdom->uzd_buckets, ub_link); zdom->uzd_nitems -= bucket->ub_cnt; - if (zdom->uzd_imin > zdom->uzd_nitems) + + /* + * Shift the bounds of the current WSS interval to avoid + * perturbing the estimate. + */ + if (reclaim) { + zdom->uzd_imin -= lmin(zdom->uzd_imin, bucket->ub_cnt); + zone_domain_imax_sub(zdom, bucket->ub_cnt); + } else if (zdom->uzd_imin > zdom->uzd_nitems) zdom->uzd_imin = zdom->uzd_nitems; - zone->uz_bkt_count -= bucket->ub_cnt; - ZONE_UNLOCK(zone); + + ZDOM_UNLOCK(zdom); if (dtor) for (i = 0; i < bucket->ub_cnt; i++) item_dtor(zone, bucket->ub_bucket[i], zone->uz_size, @@ -579,22 +699,39 @@ zone_fetch_bucket(uma_zone_t zone, uma_zone_domain_t z /* * Insert a full bucket into the specified cache. The "ws" parameter indicates * whether the bucket's contents should be counted as part of the zone's working - * set. + * set. The bucket may be freed if it exceeds the bucket limit. */ static void -zone_put_bucket(uma_zone_t zone, uma_zone_domain_t zdom, uma_bucket_t bucket, +zone_put_bucket(uma_zone_t zone, int domain, uma_bucket_t bucket, void *udata, const bool ws) { + uma_zone_domain_t zdom; - ZONE_LOCK_ASSERT(zone); - KASSERT(!ws || zone->uz_bkt_count < zone->uz_bkt_max, + /* We don't cache empty buckets. This can happen after a reclaim. */ + if (bucket->ub_cnt == 0) + goto out; + zdom = zone_domain_lock(zone, domain); + + KASSERT(!ws || zdom->uzd_nitems < zone->uz_bucket_max, ("%s: zone %p overflow", __func__, zone)); - STAILQ_INSERT_TAIL(&zdom->uzd_buckets, bucket, ub_link); + /* + * Conditionally set the maximum number of items. + */ zdom->uzd_nitems += bucket->ub_cnt; - if (ws && zdom->uzd_imax < zdom->uzd_nitems) - zdom->uzd_imax = zdom->uzd_nitems; - zone->uz_bkt_count += bucket->ub_cnt; + if (__predict_true(zdom->uzd_nitems < zone->uz_bucket_max)) { + if (ws) + zone_domain_imax_set(zdom, zdom->uzd_nitems); + if (STAILQ_EMPTY(&zdom->uzd_buckets)) + zdom->uzd_seq = bucket->ub_seq; + STAILQ_INSERT_TAIL(&zdom->uzd_buckets, bucket, ub_link); + ZDOM_UNLOCK(zdom); + return; + } + zdom->uzd_nitems -= bucket->ub_cnt; + ZDOM_UNLOCK(zdom); +out: + bucket_free(zone, bucket, udata); } /* Pops an item out of a per-cpu cache bucket. */ @@ -736,6 +873,40 @@ cache_bucket_swap(uma_cache_bucket_t b1, uma_cache_buc cache_bucket_copy(b2, &b3); } +/* + * Attempt to fetch a bucket from a zone on behalf of the current cpu cache. + */ +static uma_bucket_t +cache_fetch_bucket(uma_zone_t zone, uma_cache_t cache, int domain) +{ + uma_zone_domain_t zdom; + uma_bucket_t bucket; + + /* + * Avoid the lock if possible. + */ + zdom = ZDOM_GET(zone, domain); + if (zdom->uzd_nitems == 0) + return (NULL); + + if ((cache_uz_flags(cache) & UMA_ZONE_SMR) != 0 && + !smr_poll(zone->uz_smr, zdom->uzd_seq, false)) + return (NULL); + + /* + * Check the zone's cache of buckets. + */ + zdom = zone_domain_lock(zone, domain); + if ((bucket = zone_fetch_bucket(zone, zdom, false)) != NULL) { + KASSERT(bucket->ub_cnt != 0, + ("cache_fetch_bucket: Returning an empty bucket.")); + return (bucket); + } + ZDOM_UNLOCK(zdom); + + return (NULL); +} + static void zone_log_warning(uma_zone_t zone) { @@ -787,10 +958,12 @@ zone_domain_update_wss(uma_zone_domain_t zdom) { long wss; + ZDOM_LOCK(zdom); MPASS(zdom->uzd_imax >= zdom->uzd_imin); wss = zdom->uzd_imax - zdom->uzd_imin; zdom->uzd_imax = zdom->uzd_imin = zdom->uzd_nitems; zdom->uzd_wss = (4 * wss + zdom->uzd_wss) / 5; + ZDOM_UNLOCK(zdom); } /* @@ -853,10 +1026,8 @@ zone_timeout(uma_zone_t zone, void *unused) KEG_UNLOCK(keg, 0); update_wss: - ZONE_LOCK(zone); for (int i = 0; i < vm_ndomains; i++) - zone_domain_update_wss(&zone->uz_domain[i]); - ZONE_UNLOCK(zone); + zone_domain_update_wss(ZDOM_GET(zone, i)); } /* @@ -975,7 +1146,7 @@ bucket_drain(uma_zone_t zone, uma_bucket_t bucket) { int i; - if (bucket == NULL || bucket->ub_cnt == 0) + if (bucket->ub_cnt == 0) return; if ((zone->uz_flags & UMA_ZONE_SMR) != 0 && @@ -1033,20 +1204,16 @@ cache_drain(uma_zone_t zone) CPU_FOREACH(cpu) { cache = &zone->uz_cpu[cpu]; bucket = cache_bucket_unload_alloc(cache); - if (bucket != NULL) { - bucket_drain(zone, bucket); + if (bucket != NULL) bucket_free(zone, bucket, NULL); - } bucket = cache_bucket_unload_free(cache); if (bucket != NULL) { bucket->ub_seq = seq; - bucket_drain(zone, bucket); bucket_free(zone, bucket, NULL); } bucket = cache_bucket_unload_cross(cache); if (bucket != NULL) { bucket->ub_seq = seq; - bucket_drain(zone, bucket); bucket_free(zone, bucket, NULL); } } @@ -1060,10 +1227,8 @@ cache_shrink(uma_zone_t zone, void *unused) if (zone->uz_flags & UMA_ZFLAG_INTERNAL) return; - ZONE_LOCK(zone); zone->uz_bucket_size = (zone->uz_bucket_size_min + zone->uz_bucket_size) / 2; - ZONE_UNLOCK(zone); } static void @@ -1078,11 +1243,8 @@ cache_drain_safe_cpu(uma_zone_t zone, void *unused) b1 = b2 = b3 = NULL; critical_enter(); - if (zone->uz_flags & UMA_ZONE_FIRSTTOUCH) - domain = PCPU_GET(domain); - else - domain = 0; cache = &zone->uz_cpu[curcpu]; + domain = PCPU_GET(domain); b1 = cache_bucket_unload_alloc(cache); /* @@ -1095,24 +1257,14 @@ cache_drain_safe_cpu(uma_zone_t zone, void *unused) } critical_exit(); - ZONE_LOCK(zone); - if (b1 != NULL && b1->ub_cnt != 0) { - zone_put_bucket(zone, &zone->uz_domain[domain], b1, false); - b1 = NULL; - } - if (b2 != NULL && b2->ub_cnt != 0) { - zone_put_bucket(zone, &zone->uz_domain[domain], b2, false); - b2 = NULL; - } - ZONE_UNLOCK(zone); - if (b1 != NULL) - bucket_free(zone, b1, NULL); + zone_free_bucket(zone, b1, NULL, domain, false); if (b2 != NULL) - bucket_free(zone, b2, NULL); + zone_free_bucket(zone, b2, NULL, domain, false); if (b3 != NULL) { - bucket_drain(zone, b3); - bucket_free(zone, b3, NULL); + /* Adjust the domain so it goes to zone_free_cross. */ + domain = (domain + 1) % vm_ndomains; + zone_free_bucket(zone, b3, NULL, domain, false); } } @@ -1161,33 +1313,32 @@ bucket_cache_reclaim(uma_zone_t zone, bool drain) { uma_zone_domain_t zdom; uma_bucket_t bucket; - long target, tofree; + long target; int i; + /* + * Shrink the zone bucket size to ensure that the per-CPU caches + * don't grow too large. + */ + if (zone->uz_bucket_size > zone->uz_bucket_size_min) + zone->uz_bucket_size--; + for (i = 0; i < vm_ndomains; i++) { /* * The cross bucket is partially filled and not part of * the item count. Reclaim it individually here. */ - zdom = &zone->uz_domain[i]; - ZONE_CROSS_LOCK(zone); - bucket = zdom->uzd_cross; - zdom->uzd_cross = NULL; - ZONE_CROSS_UNLOCK(zone); - if (bucket != NULL) { - bucket_drain(zone, bucket); - bucket_free(zone, bucket, NULL); + zdom = ZDOM_GET(zone, i); + if ((zone->uz_flags & UMA_ZONE_SMR) == 0) { + ZONE_CROSS_LOCK(zone); + bucket = zdom->uzd_cross; + zdom->uzd_cross = NULL; + ZONE_CROSS_UNLOCK(zone); + if (bucket != NULL) + bucket_free(zone, bucket, NULL); } /* - * Shrink the zone bucket size to ensure that the per-CPU caches - * don't grow too large. - */ - ZONE_LOCK(zone); - if (i == 0 && zone->uz_bucket_size > zone->uz_bucket_size_min) - zone->uz_bucket_size--; - - /* * If we were asked to drain the zone, we are done only once * this bucket cache is empty. Otherwise, we reclaim items in * excess of the zone's estimated working set size. If the @@ -1195,30 +1346,17 @@ bucket_cache_reclaim(uma_zone_t zone, bool drain) * then the estimate will grow at the end of this interval and * we ignore the historical average. */ + ZDOM_LOCK(zdom); target = drain ? 0 : lmax(zdom->uzd_wss, zdom->uzd_nitems - zdom->uzd_imin); while (zdom->uzd_nitems > target) { - bucket = STAILQ_FIRST(&zdom->uzd_buckets); + bucket = zone_fetch_bucket(zone, zdom, true); if (bucket == NULL) break; - tofree = bucket->ub_cnt; - STAILQ_REMOVE_HEAD(&zdom->uzd_buckets, ub_link); - zdom->uzd_nitems -= tofree; - zone->uz_bkt_count -= tofree; - - /* - * Shift the bounds of the current WSS interval to avoid - * perturbing the estimate. - */ - zdom->uzd_imax -= lmin(zdom->uzd_imax, tofree); - zdom->uzd_imin -= lmin(zdom->uzd_imin, tofree); - - ZONE_UNLOCK(zone); - bucket_drain(zone, bucket); bucket_free(zone, bucket, NULL); - ZONE_LOCK(zone); + ZDOM_LOCK(zdom); } - ZONE_UNLOCK(zone); + ZDOM_UNLOCK(zdom); } } @@ -1312,7 +1450,8 @@ zone_reclaim(uma_zone_t zone, int waitok, bool drain) while (zone->uz_flags & UMA_ZFLAG_RECLAIMING) { if (waitok == M_NOWAIT) goto out; - msleep(zone, &zone->uz_lock, PVM, "zonedrain", 1); + msleep(zone, &ZDOM_GET(zone, 0)->uzd_lock, PVM, "zonedrain", + 1); } zone->uz_flags |= UMA_ZFLAG_RECLAIMING; ZONE_UNLOCK(zone); @@ -2089,15 +2228,14 @@ keg_ctor(void *mem, int size, void *udata, int flags) keg_layout(keg); /* - * Use a first-touch NUMA policy for all kegs that pmap_extract() - * will work on with the exception of critical VM structures - * necessary for paging. + * Use a first-touch NUMA policy for kegs that pmap_extract() will + * work on. Use round-robin for everything else. * * Zones may override the default by specifying either. */ #ifdef NUMA if ((keg->uk_flags & - (UMA_ZFLAG_HASH | UMA_ZONE_VM | UMA_ZONE_ROUNDROBIN)) == 0) + (UMA_ZONE_ROUNDROBIN | UMA_ZFLAG_CACHE | UMA_ZONE_NOTPAGE)) == 0) keg->uk_flags |= UMA_ZONE_FIRSTTOUCH; else if ((keg->uk_flags & UMA_ZONE_FIRSTTOUCH) == 0) keg->uk_flags |= UMA_ZONE_ROUNDROBIN; @@ -2199,6 +2337,7 @@ zone_alloc_counters(uma_zone_t zone, void *unused) zone->uz_allocs = counter_u64_alloc(M_WAITOK); zone->uz_frees = counter_u64_alloc(M_WAITOK); zone->uz_fails = counter_u64_alloc(M_WAITOK); + zone->uz_xdomain = counter_u64_alloc(M_WAITOK); } static void @@ -2316,21 +2455,16 @@ zone_alloc_sysctl(uma_zone_t zone, void *unused) "sleeps", CTLFLAG_RD, &zone->uz_sleeps, 0, "Total zone limit sleeps"); SYSCTL_ADD_U64(NULL, SYSCTL_CHILDREN(oid), OID_AUTO, - "bucket_max", CTLFLAG_RD, &zone->uz_bkt_max, 0, - "Maximum number of items in the bucket cache"); - SYSCTL_ADD_U64(NULL, SYSCTL_CHILDREN(oid), OID_AUTO, - "bucket_cnt", CTLFLAG_RD, &zone->uz_bkt_count, 0, - "Number of items in the bucket cache"); + "bucket_max", CTLFLAG_RD, &zone->uz_bucket_max, 0, + "Maximum number of items in each domain's bucket cache"); /* * Per-domain zone information. */ domainoid = SYSCTL_ADD_NODE(NULL, SYSCTL_CHILDREN(zone->uz_oid), OID_AUTO, "domain", CTLFLAG_RD, NULL, ""); - if ((zone->uz_flags & UMA_ZONE_FIRSTTOUCH) == 0) - domains = 1; for (i = 0; i < domains; i++) { - zdom = &zone->uz_domain[i]; + zdom = ZDOM_GET(zone, i); oid = SYSCTL_ADD_NODE(NULL, SYSCTL_CHILDREN(domainoid), OID_AUTO, VM_DOMAIN(i)->vmd_name, CTLFLAG_RD, NULL, ""); SYSCTL_ADD_LONG(NULL, SYSCTL_CHILDREN(oid), OID_AUTO, @@ -2367,8 +2501,8 @@ zone_alloc_sysctl(uma_zone_t zone, void *unused) SYSCTL_ADD_COUNTER_U64(NULL, SYSCTL_CHILDREN(oid), OID_AUTO, "fails", CTLFLAG_RD, &zone->uz_fails, "Number of allocation failures"); - SYSCTL_ADD_U64(NULL, SYSCTL_CHILDREN(oid), OID_AUTO, - "xdomain", CTLFLAG_RD, &zone->uz_xdomain, 0, + SYSCTL_ADD_COUNTER_U64(NULL, SYSCTL_CHILDREN(oid), OID_AUTO, + "xdomain", CTLFLAG_RD, &zone->uz_xdomain, "Free calls from the wrong domain"); } @@ -2415,6 +2549,7 @@ zone_ctor(void *mem, int size, void *udata, int flags) { struct uma_zone_count cnt; struct uma_zctor_args *arg = udata; + uma_zone_domain_t zdom; uma_zone_t zone = mem; uma_zone_t z; uma_keg_t keg; @@ -2427,16 +2562,13 @@ zone_ctor(void *mem, int size, void *udata, int flags) zone->uz_init = NULL; zone->uz_fini = NULL; zone->uz_sleeps = 0; - zone->uz_xdomain = 0; zone->uz_bucket_size = 0; zone->uz_bucket_size_min = 0; zone->uz_bucket_size_max = BUCKET_MAX; zone->uz_flags = (arg->flags & UMA_ZONE_SMR); zone->uz_warning = NULL; /* The domain structures follow the cpu structures. */ - zone->uz_domain = - (struct uma_zone_domain *)&zone->uz_cpu[mp_maxid + 1]; - zone->uz_bkt_max = ULONG_MAX; + zone->uz_bucket_max = ULONG_MAX; timevalclear(&zone->uz_ratecheck); /* Count the number of duplicate names. */ @@ -2444,11 +2576,13 @@ zone_ctor(void *mem, int size, void *udata, int flags) cnt.count = 0; zone_foreach(zone_count, &cnt); zone->uz_namecnt = cnt.count; - ZONE_LOCK_INIT(zone, (arg->flags & UMA_ZONE_MTXCLASS)); ZONE_CROSS_LOCK_INIT(zone); - for (i = 0; i < vm_ndomains; i++) - STAILQ_INIT(&zone->uz_domain[i].uzd_buckets); + for (i = 0; i < vm_ndomains; i++) { + zdom = ZDOM_GET(zone, i); + ZDOM_LOCK_INIT(zone, zdom, (arg->flags & UMA_ZONE_MTXCLASS)); + STAILQ_INIT(&zdom->uzd_buckets); + } #ifdef INVARIANTS if (arg->uminit == trash_init && arg->fini == trash_fini) @@ -2466,6 +2600,15 @@ zone_ctor(void *mem, int size, void *udata, int flags) zone->uz_import = arg->import; zone->uz_release = arg->release; zone->uz_arg = arg->arg; +#ifdef NUMA + /* + * Cache zones are round-robin unless a policy is + * specified because they may have incompatible + * constraints. + */ + if ((zone->uz_flags & UMA_ZONE_FIRSTTOUCH) == 0) + zone->uz_flags |= UMA_ZONE_ROUNDROBIN; +#endif rw_wlock(&uma_rwlock); LIST_INSERT_HEAD(&uma_cachezones, zone, uz_link); rw_wunlock(&uma_rwlock); @@ -2600,6 +2743,7 @@ zone_dtor(void *arg, int size, void *udata) { uma_zone_t zone; uma_keg_t keg; + int i; zone = (uma_zone_t)arg; @@ -2611,13 +2755,8 @@ zone_dtor(void *arg, int size, void *udata) rw_wlock(&uma_rwlock); LIST_REMOVE(zone, uz_link); rw_wunlock(&uma_rwlock); - /* - * XXX there are some races here where - * the zone can be drained but zone lock - * released and then refilled before we - * remove it... we dont care for now - */ zone_reclaim(zone, M_WAITOK, true); + /* * We only destroy kegs from non secondary/non cache zones. */ @@ -2631,8 +2770,10 @@ zone_dtor(void *arg, int size, void *udata) counter_u64_free(zone->uz_allocs); counter_u64_free(zone->uz_frees); counter_u64_free(zone->uz_fails); + counter_u64_free(zone->uz_xdomain); free(zone->uz_ctlname, M_UMA); - ZONE_LOCK_FINI(zone); + for (i = 0; i < vm_ndomains; i++) + ZDOM_LOCK_FINI(ZDOM_GET(zone, i)); ZONE_CROSS_LOCK_FINI(zone); } @@ -3235,10 +3376,9 @@ uma_zalloc_arg(uma_zone_t zone, void *udata, int flags static __noinline bool cache_alloc(uma_zone_t zone, uma_cache_t cache, void *udata, int flags) { - uma_zone_domain_t zdom; uma_bucket_t bucket; int domain; - bool lockfail; + bool new; CRITICAL_ASSERT(curthread); @@ -3249,7 +3389,7 @@ cache_alloc(uma_zone_t zone, uma_cache_t cache, void * * SMR Zones can't re-use the free bucket until the sequence has * expired. */ - if ((zone->uz_flags & UMA_ZONE_SMR) == 0 && + if ((cache_uz_flags(cache) & UMA_ZONE_SMR) == 0 && cache->uc_freebucket.ucb_cnt != 0) { cache_bucket_swap(&cache->uc_freebucket, &cache->uc_allocbucket); @@ -3261,8 +3401,12 @@ cache_alloc(uma_zone_t zone, uma_cache_t cache, void * */ bucket = cache_bucket_unload_alloc(cache); critical_exit(); - if (bucket != NULL) + + if (bucket != NULL) { + KASSERT(bucket->ub_cnt == 0, + ("cache_alloc: Entered with non-empty alloc bucket.")); bucket_free(zone, bucket, udata); + } /* Short-circuit for zones without buckets and low memory. */ if (zone->uz_bucket_size == 0 || bucketdisable) { @@ -3272,60 +3416,23 @@ cache_alloc(uma_zone_t zone, uma_cache_t cache, void * /* * Attempt to retrieve the item from the per-CPU cache has failed, so - * we must go back to the zone. This requires the zone lock, so we + * we must go back to the zone. This requires the zdom lock, so we * must drop the critical section, then re-acquire it when we go back * to the cache. Since the critical section is released, we may be * preempted or migrate. As such, make sure not to maintain any * thread-local state specific to the cache from prior to releasing * the critical section. */ - lockfail = 0; - if (ZONE_TRYLOCK(zone) == 0) { - /* Record contention to size the buckets. */ - ZONE_LOCK(zone); - lockfail = 1; - } + domain = PCPU_GET(domain); + if ((cache_uz_flags(cache) & UMA_ZONE_ROUNDROBIN) != 0) + domain = zone_domain_highest(zone, domain); + bucket = cache_fetch_bucket(zone, cache, domain); + if (bucket == NULL) { + bucket = zone_alloc_bucket(zone, udata, domain, flags); + new = true; + } else + new = false; - /* See if we lost the race to fill the cache. */ - critical_enter(); - cache = &zone->uz_cpu[curcpu]; - if (cache->uc_allocbucket.ucb_bucket != NULL) { - ZONE_UNLOCK(zone); - return (true); - } - - /* - * Check the zone's cache of buckets. - */ - if (zone->uz_flags & UMA_ZONE_FIRSTTOUCH) { - domain = PCPU_GET(domain); - zdom = &zone->uz_domain[domain]; - } else { - domain = UMA_ANYDOMAIN; - zdom = &zone->uz_domain[0]; - } - - if ((bucket = zone_fetch_bucket(zone, zdom)) != NULL) { - KASSERT(bucket->ub_cnt != 0, - ("uma_zalloc_arg: Returning an empty bucket.")); - cache_bucket_load_alloc(cache, bucket); - return (true); - } - /* We are no longer associated with this CPU. */ - critical_exit(); - - /* - * We bump the uz count when the cache size is insufficient to - * handle the working set. - */ - if (lockfail && zone->uz_bucket_size < zone->uz_bucket_size_max) - zone->uz_bucket_size++; - ZONE_UNLOCK(zone); - - /* - * Fill a bucket and attempt to use it as the alloc bucket. - */ - bucket = zone_alloc_bucket(zone, udata, domain, flags); CTR3(KTR_UMA, "uma_zalloc: zone %s(%p) bucket zone returned %p", zone->uz_name, zone, bucket); if (bucket == NULL) { @@ -3338,24 +3445,25 @@ cache_alloc(uma_zone_t zone, uma_cache_t cache, void * * initialized bucket to make this less likely or claim * the memory directly. */ - ZONE_LOCK(zone); critical_enter(); cache = &zone->uz_cpu[curcpu]; if (cache->uc_allocbucket.ucb_bucket == NULL && - ((zone->uz_flags & UMA_ZONE_FIRSTTOUCH) == 0 || + ((cache_uz_flags(cache) & UMA_ZONE_FIRSTTOUCH) == 0 || domain == PCPU_GET(domain))) { + if (new) + atomic_add_long(&ZDOM_GET(zone, domain)->uzd_imax, + bucket->ub_cnt); cache_bucket_load_alloc(cache, bucket); - zdom->uzd_imax += bucket->ub_cnt; - } else if (zone->uz_bkt_count >= zone->uz_bkt_max) { - critical_exit(); - ZONE_UNLOCK(zone); - bucket_drain(zone, bucket); - bucket_free(zone, bucket, udata); - critical_enter(); return (true); - } else - zone_put_bucket(zone, zdom, bucket, false); - ZONE_UNLOCK(zone); + } + + /* + * We lost the race, release this bucket and start over. + */ + critical_exit(); + zone_put_bucket(zone, domain, bucket, udata, false); + critical_enter(); + return (true); } @@ -3748,6 +3856,8 @@ zone_alloc_bucket(uma_zone_t zone, void *udata, int do /* Avoid allocs targeting empty domains. */ if (domain != UMA_ANYDOMAIN && VM_DOMAIN_EMPTY(domain)) domain = UMA_ANYDOMAIN; + if ((zone->uz_flags & UMA_ZONE_ROUNDROBIN) != 0) + domain = UMA_ANYDOMAIN; if (zone->uz_max_items > 0) maxbucket = zone_alloc_limit(zone, zone->uz_bucket_size, @@ -3874,18 +3984,19 @@ uma_zfree_smr(uma_zone_t zone, void *item) { uma_cache_t cache; uma_cache_bucket_t bucket; - int domain, itemdomain, uz_flags; + int itemdomain, uz_flags; #ifdef UMA_ZALLOC_DEBUG KASSERT((zone->uz_flags & UMA_ZONE_SMR) != 0, ("uma_zfree_smr: called with non-SMR zone.\n")); KASSERT(item != NULL, ("uma_zfree_smr: Called with NULL pointer.")); + SMR_ASSERT_NOT_ENTERED(zone->uz_smr); if (uma_zfree_debug(zone, item, NULL) == EJUSTRETURN) return; #endif cache = &zone->uz_cpu[curcpu]; uz_flags = cache_uz_flags(cache); - domain = itemdomain = 0; + itemdomain = 0; #ifdef NUMA if ((uz_flags & UMA_ZONE_FIRSTTOUCH) != 0) itemdomain = _vm_phys_domain(pmap_kextract((vm_offset_t)item)); @@ -3896,9 +4007,8 @@ uma_zfree_smr(uma_zone_t zone, void *item) /* SMR Zones must free to the free bucket. */ bucket = &cache->uc_freebucket; #ifdef NUMA - domain = PCPU_GET(domain); if ((uz_flags & UMA_ZONE_FIRSTTOUCH) != 0 && - domain != itemdomain) { + PCPU_GET(domain) != itemdomain) { bucket = &cache->uc_crossbucket; } #endif @@ -3922,7 +4032,7 @@ uma_zfree_arg(uma_zone_t zone, void *item, void *udata { uma_cache_t cache; uma_cache_bucket_t bucket; - int domain, itemdomain, uz_flags; + int itemdomain, uz_flags; /* Enable entropy collection for RANDOM_ENABLE_UMA kernel option */ random_harvest_fast_uma(&zone, sizeof(zone), RANDOM_UMA); @@ -3970,7 +4080,7 @@ uma_zfree_arg(uma_zone_t zone, void *item, void *udata * current cache; when we re-acquire the critical section, we must * detect and handle migration if it has occurred. */ - domain = itemdomain = 0; + itemdomain = 0; #ifdef NUMA if ((uz_flags & UMA_ZONE_FIRSTTOUCH) != 0) itemdomain = _vm_phys_domain(pmap_kextract((vm_offset_t)item)); @@ -3986,9 +4096,8 @@ uma_zfree_arg(uma_zone_t zone, void *item, void *udata */ bucket = &cache->uc_allocbucket; #ifdef NUMA - domain = PCPU_GET(domain); if ((uz_flags & UMA_ZONE_FIRSTTOUCH) != 0 && - domain != itemdomain) { + PCPU_GET(domain) != itemdomain) { bucket = &cache->uc_crossbucket; } else #endif @@ -4047,7 +4156,7 @@ zone_free_cross(uma_zone_t zone, uma_bucket_t bucket, while (bucket->ub_cnt > 0) { item = bucket->ub_bucket[bucket->ub_cnt - 1]; domain = _vm_phys_domain(pmap_kextract((vm_offset_t)item)); - zdom = &zone->uz_domain[domain]; + zdom = ZDOM_GET(zone, domain); if (zdom->uzd_cross == NULL) { zdom->uzd_cross = bucket_alloc(zone, udata, M_NOWAIT); if (zdom->uzd_cross == NULL) @@ -4063,37 +4172,23 @@ zone_free_cross(uma_zone_t zone, uma_bucket_t bucket, bucket->ub_cnt--; } ZONE_CROSS_UNLOCK(zone); - if (!STAILQ_EMPTY(&fullbuckets)) { - ZONE_LOCK(zone); - while ((b = STAILQ_FIRST(&fullbuckets)) != NULL) { - STAILQ_REMOVE_HEAD(&fullbuckets, ub_link); - if (zone->uz_bkt_count >= zone->uz_bkt_max) { - ZONE_UNLOCK(zone); - bucket_drain(zone, b); - bucket_free(zone, b, udata); - ZONE_LOCK(zone); - } else { - domain = _vm_phys_domain( - pmap_kextract( - (vm_offset_t)b->ub_bucket[0])); - zdom = &zone->uz_domain[domain]; - zone_put_bucket(zone, zdom, b, true); - } - } - ZONE_UNLOCK(zone); - } - if (bucket->ub_cnt != 0) - bucket_drain(zone, bucket); - bucket->ub_seq = SMR_SEQ_INVALID; + if (bucket->ub_cnt == 0) + bucket->ub_seq = SMR_SEQ_INVALID; bucket_free(zone, bucket, udata); + + while ((b = STAILQ_FIRST(&fullbuckets)) != NULL) { + STAILQ_REMOVE_HEAD(&fullbuckets, ub_link); + domain = _vm_phys_domain(pmap_kextract( + (vm_offset_t)b->ub_bucket[0])); + zone_put_bucket(zone, domain, b, udata, true); + } } #endif static void zone_free_bucket(uma_zone_t zone, uma_bucket_t bucket, void *udata, - int domain, int itemdomain) + int itemdomain, bool ws) { - uma_zone_domain_t zdom; #ifdef NUMA /* @@ -4102,7 +4197,8 @@ zone_free_bucket(uma_zone_t zone, uma_bucket_t bucket, * simply cache them. Otherwise we need to sort them back to * correct domains. */ - if (domain != itemdomain && vm_ndomains > 2) { + if ((zone->uz_flags & UMA_ZONE_FIRSTTOUCH) != 0 && + vm_ndomains > 2 && PCPU_GET(domain) != itemdomain) { zone_free_cross(zone, bucket, udata); return; } @@ -4110,32 +4206,14 @@ zone_free_bucket(uma_zone_t zone, uma_bucket_t bucket, /* * Attempt to save the bucket in the zone's domain bucket cache. - * - * We bump the uz count when the cache size is insufficient to - * handle the working set. */ - if (ZONE_TRYLOCK(zone) == 0) { - /* Record contention to size the buckets. */ - ZONE_LOCK(zone); - if (zone->uz_bucket_size < zone->uz_bucket_size_max) - zone->uz_bucket_size++; - } - CTR3(KTR_UMA, "uma_zfree: zone %s(%p) putting bucket %p on free list", zone->uz_name, zone, bucket); /* ub_cnt is pointing to the last free item */ - KASSERT(bucket->ub_cnt == bucket->ub_entries, - ("uma_zfree: Attempting to insert partial bucket onto the full list.\n")); - if (zone->uz_bkt_count >= zone->uz_bkt_max) { - ZONE_UNLOCK(zone); - bucket_drain(zone, bucket); - bucket_free(zone, bucket, udata); - } else { - zdom = &zone->uz_domain[itemdomain]; - zone_put_bucket(zone, zdom, bucket, true); - ZONE_UNLOCK(zone); - } + if ((zone->uz_flags & UMA_ZONE_ROUNDROBIN) != 0) + itemdomain = zone_domain_lowest(zone, itemdomain); + zone_put_bucket(zone, itemdomain, bucket, udata, ws); } /* @@ -4152,7 +4230,6 @@ cache_free(uma_zone_t zone, uma_cache_t cache, void *u { uma_cache_bucket_t cbucket; uma_bucket_t newbucket, bucket; - int domain; CRITICAL_ASSERT(curthread); @@ -4169,18 +4246,18 @@ cache_free(uma_zone_t zone, uma_cache_t cache, void *u */ cbucket = &cache->uc_freebucket; #ifdef NUMA - if ((zone->uz_flags & UMA_ZONE_FIRSTTOUCH) != 0) { - domain = PCPU_GET(domain); - if (domain != itemdomain) { + if ((cache_uz_flags(cache) & UMA_ZONE_FIRSTTOUCH) != 0) { + if (PCPU_GET(domain) != itemdomain) { cbucket = &cache->uc_crossbucket; if (cbucket->ucb_cnt != 0) - atomic_add_64(&zone->uz_xdomain, + counter_u64_add(zone->uz_xdomain, cbucket->ucb_cnt); } - } else + } #endif - itemdomain = domain = 0; bucket = cache_bucket_unload(cbucket); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Feb 19 19:51:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 543DC243BEB; Wed, 19 Feb 2020 19:51:10 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N7dB1Kzpz46VB; Wed, 19 Feb 2020 19:51:10 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1C5CDDFA6; Wed, 19 Feb 2020 19:51:10 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JJp9gf084044; Wed, 19 Feb 2020 19:51:09 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JJp9v6084043; Wed, 19 Feb 2020 19:51:09 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002191951.01JJp9v6084043@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Wed, 19 Feb 2020 19:51:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358129 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 358129 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 19:51:10 -0000 Author: jeff Date: Wed Feb 19 19:51:09 2020 New Revision: 358129 URL: https://svnweb.freebsd.org/changeset/base/358129 Log: Since r357940 it is no longer possible to use a single type cast for all atomic_*_ptr functions. Modified: head/sys/sys/smr.h Modified: head/sys/sys/smr.h ============================================================================== --- head/sys/sys/smr.h Wed Feb 19 18:48:46 2020 (r358128) +++ head/sys/sys/smr.h Wed Feb 19 19:51:09 2020 (r358129) @@ -120,7 +120,7 @@ typedef struct { \ */ #define smr_serialized_load(p, ex) ({ \ SMR_ASSERT(ex, "smr_serialized_load"); \ - (__typeof((p)->__ptr))atomic_load_ptr((uintptr_t *)&(p)->__ptr);\ + (__typeof((p)->__ptr))atomic_load_ptr(&(p)->__ptr); \ }) /* @@ -155,7 +155,7 @@ typedef struct { \ */ #define smr_unserialized_load(p, ex) ({ \ SMR_ASSERT(ex, "smr_unserialized_load"); \ - (__typeof((p)->__ptr))atomic_load_ptr((uintptr_t *)&(p)->__ptr);\ + (__typeof((p)->__ptr))atomic_load_ptr(&(p)->__ptr); \ }) /* From owner-svn-src-all@freebsd.org Wed Feb 19 19:58:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 23FAD243F4A; Wed, 19 Feb 2020 19:58:32 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N7nh0pWKz4K50; Wed, 19 Feb 2020 19:58:32 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D9C5E021; Wed, 19 Feb 2020 19:58:32 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JJwVSj087648; Wed, 19 Feb 2020 19:58:31 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JJwVBx087647; Wed, 19 Feb 2020 19:58:31 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002191958.01JJwVBx087647@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Wed, 19 Feb 2020 19:58:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358130 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358130 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 19:58:32 -0000 Author: jeff Date: Wed Feb 19 19:58:31 2020 New Revision: 358130 URL: https://svnweb.freebsd.org/changeset/base/358130 Log: Use SMR to provide a safe unlocked lookup for vm_radix. The tree is kept correct for readers with store barriers and careful ordering. The existing object lock serializes writers. Consumers will be introduced in later commits. Reviewed by: markj, kib Differential Revision: https://reviews.freebsd.org/D23446 Modified: head/sys/vm/vm_radix.c head/sys/vm/vm_radix.h Modified: head/sys/vm/vm_radix.c ============================================================================== --- head/sys/vm/vm_radix.c Wed Feb 19 19:51:09 2020 (r358129) +++ head/sys/vm/vm_radix.c Wed Feb 19 19:58:31 2020 (r358130) @@ -58,11 +58,14 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include #include +#include #include #include @@ -95,26 +98,47 @@ __FBSDID("$FreeBSD$"); #define VM_RADIX_UNITLEVEL(lev) \ ((vm_pindex_t)1 << ((lev) * VM_RADIX_WIDTH)) +enum vm_radix_access { SMR, LOCKED, UNSERIALIZED }; + +struct vm_radix_node; +SMR_TYPE_DECLARE(smrnode_t, struct vm_radix_node *); + struct vm_radix_node { - vm_pindex_t rn_owner; /* Owner of record. */ - uint16_t rn_count; /* Valid children. */ - uint16_t rn_clev; /* Current level. */ - void *rn_child[VM_RADIX_COUNT]; /* Child nodes. */ + vm_pindex_t rn_owner; /* Owner of record. */ + uint16_t rn_count; /* Valid children. */ + uint8_t rn_clev; /* Current level. */ + int8_t rn_last; /* zero last ptr. */ + smrnode_t rn_child[VM_RADIX_COUNT]; /* Child nodes. */ }; static uma_zone_t vm_radix_node_zone; +static smr_t vm_radix_smr; +static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, + enum vm_radix_access access); + /* * Allocate a radix node. */ -static __inline struct vm_radix_node * +static struct vm_radix_node * vm_radix_node_get(vm_pindex_t owner, uint16_t count, uint16_t clevel) { struct vm_radix_node *rnode; - rnode = uma_zalloc(vm_radix_node_zone, M_NOWAIT); + rnode = uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT); if (rnode == NULL) return (NULL); + + /* + * We want to clear the last child pointer after the final section + * has exited so lookup can not return false negatives. It is done + * here because it will be cache-cold in the dtor callback. + */ + if (rnode->rn_last != 0) { + vm_radix_node_store(&rnode->rn_child[rnode->rn_last - 1], + NULL, UNSERIALIZED); + rnode->rn_last = 0; + } rnode->rn_owner = owner; rnode->rn_count = count; rnode->rn_clev = clevel; @@ -125,10 +149,24 @@ vm_radix_node_get(vm_pindex_t owner, uint16_t count, u * Free radix node. */ static __inline void -vm_radix_node_put(struct vm_radix_node *rnode) +vm_radix_node_put(struct vm_radix_node *rnode, int8_t last) { +#ifdef INVARIANTS + int slot; - uma_zfree(vm_radix_node_zone, rnode); + KASSERT(rnode->rn_count == 0, + ("vm_radix_node_put: rnode %p has %d children", rnode, + rnode->rn_count)); + for (slot = 0; slot < VM_RADIX_COUNT; slot++) { + if (slot == last) + continue; + KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) == + NULL, ("vm_radix_node_put: rnode %p has a child", rnode)); + } +#endif + /* Off by one so a freshly zero'd node is not assigned to. */ + rnode->rn_last = last + 1; + uma_zfree_smr(vm_radix_node_zone, rnode); } /* @@ -156,23 +194,59 @@ vm_radix_trimkey(vm_pindex_t index, uint16_t level) } /* + * Fetch a node pointer from a slot in another node. + */ +static __inline struct vm_radix_node * +vm_radix_node_load(smrnode_t *p, enum vm_radix_access access) +{ + + switch (access) { + case UNSERIALIZED: + return (smr_unserialized_load(p, true)); + case LOCKED: + return (smr_serialized_load(p, true)); + case SMR: + return (smr_entered_load(p, vm_radix_smr)); + } +} + +static __inline void +vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v, + enum vm_radix_access access) +{ + + + switch (access) { + case UNSERIALIZED: + smr_unserialized_store(p, v, true); + break; + case LOCKED: + smr_serialized_store(p, v, true); + break; + case SMR: + panic("vm_radix_node_store: Not supported in smr section."); + } +} + +/* * Get the root node for a radix tree. */ static __inline struct vm_radix_node * -vm_radix_getroot(struct vm_radix *rtree) +vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access) { - return ((struct vm_radix_node *)rtree->rt_root); + return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access)); } /* * Set the root node for a radix tree. */ static __inline void -vm_radix_setroot(struct vm_radix *rtree, struct vm_radix_node *rnode) +vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode, + enum vm_radix_access access) { - rtree->rt_root = (uintptr_t)rnode; + vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access); } /* @@ -200,12 +274,13 @@ vm_radix_topage(struct vm_radix_node *rnode) */ static __inline void vm_radix_addpage(struct vm_radix_node *rnode, vm_pindex_t index, uint16_t clev, - vm_page_t page) + vm_page_t page, enum vm_radix_access access) { int slot; slot = vm_radix_slot(index, clev); - rnode->rn_child[slot] = (void *)((uintptr_t)page | VM_RADIX_ISLEAF); + vm_radix_node_store(&rnode->rn_child[slot], + (struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF), access); } /* @@ -248,51 +323,23 @@ vm_radix_keybarr(struct vm_radix_node *rnode, vm_pinde static void vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode) { + struct vm_radix_node *child; int slot; KASSERT(rnode->rn_count <= VM_RADIX_COUNT, ("vm_radix_reclaim_allnodes_int: bad count in rnode %p", rnode)); for (slot = 0; rnode->rn_count != 0; slot++) { - if (rnode->rn_child[slot] == NULL) + child = vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED); + if (child == NULL) continue; - if (!vm_radix_isleaf(rnode->rn_child[slot])) - vm_radix_reclaim_allnodes_int(rnode->rn_child[slot]); - rnode->rn_child[slot] = NULL; + if (!vm_radix_isleaf(child)) + vm_radix_reclaim_allnodes_int(child); + vm_radix_node_store(&rnode->rn_child[slot], NULL, UNSERIALIZED); rnode->rn_count--; } - vm_radix_node_put(rnode); + vm_radix_node_put(rnode, -1); } -#ifdef INVARIANTS -/* - * Radix node zone destructor. - */ -static void -vm_radix_node_zone_dtor(void *mem, int size __unused, void *arg __unused) -{ - struct vm_radix_node *rnode; - int slot; - - rnode = mem; - KASSERT(rnode->rn_count == 0, - ("vm_radix_node_put: rnode %p has %d children", rnode, - rnode->rn_count)); - for (slot = 0; slot < VM_RADIX_COUNT; slot++) - KASSERT(rnode->rn_child[slot] == NULL, - ("vm_radix_node_put: rnode %p has a child", rnode)); -} -#endif - -static int -vm_radix_node_zone_init(void *mem, int size __unused, int flags __unused) -{ - struct vm_radix_node *rnode; - - rnode = mem; - bzero(rnode, sizeof(*rnode)); - return (0); -} - #ifndef UMA_MD_SMALL_ALLOC void vm_radix_reserve_kva(void); /* @@ -325,13 +372,9 @@ vm_radix_zinit(void) { vm_radix_node_zone = uma_zcreate("RADIX NODE", - sizeof(struct vm_radix_node), NULL, -#ifdef INVARIANTS - vm_radix_node_zone_dtor, -#else - NULL, -#endif - vm_radix_node_zone_init, NULL, VM_RADIX_PAD, UMA_ZONE_VM); + sizeof(struct vm_radix_node), NULL, NULL, NULL, NULL, + VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR | UMA_ZONE_ZINIT); + vm_radix_smr = uma_zone_get_smr(vm_radix_node_zone); } /* @@ -342,8 +385,8 @@ int vm_radix_insert(struct vm_radix *rtree, vm_page_t page) { vm_pindex_t index, newind; - void **parentp; struct vm_radix_node *rnode, *tmp; + smrnode_t *parentp; vm_page_t m; int slot; uint16_t clev; @@ -354,12 +397,12 @@ vm_radix_insert(struct vm_radix *rtree, vm_page_t page * The owner of record for root is not really important because it * will never be used. */ - rnode = vm_radix_getroot(rtree); + rnode = vm_radix_root_load(rtree, LOCKED); if (rnode == NULL) { rtree->rt_root = (uintptr_t)page | VM_RADIX_ISLEAF; return (0); } - parentp = (void **)&rtree->rt_root; + parentp = (smrnode_t *)&rtree->rt_root; for (;;) { if (vm_radix_isleaf(rnode)) { m = vm_radix_topage(rnode); @@ -371,20 +414,24 @@ vm_radix_insert(struct vm_radix *rtree, vm_page_t page clev + 1), 2, clev); if (tmp == NULL) return (ENOMEM); - *parentp = tmp; - vm_radix_addpage(tmp, index, clev, page); - vm_radix_addpage(tmp, m->pindex, clev, m); + /* These writes are not yet visible due to ordering. */ + vm_radix_addpage(tmp, index, clev, page, UNSERIALIZED); + vm_radix_addpage(tmp, m->pindex, clev, m, UNSERIALIZED); + /* Synchronize to make leaf visible. */ + vm_radix_node_store(parentp, tmp, LOCKED); return (0); } else if (vm_radix_keybarr(rnode, index)) break; slot = vm_radix_slot(index, rnode->rn_clev); - if (rnode->rn_child[slot] == NULL) { + parentp = &rnode->rn_child[slot]; + tmp = vm_radix_node_load(parentp, LOCKED); + if (tmp == NULL) { rnode->rn_count++; - vm_radix_addpage(rnode, index, rnode->rn_clev, page); + vm_radix_addpage(rnode, index, rnode->rn_clev, page, + LOCKED); return (0); } - parentp = &rnode->rn_child[slot]; - rnode = rnode->rn_child[slot]; + rnode = tmp; } /* @@ -397,10 +444,13 @@ vm_radix_insert(struct vm_radix *rtree, vm_page_t page tmp = vm_radix_node_get(vm_radix_trimkey(index, clev + 1), 2, clev); if (tmp == NULL) return (ENOMEM); - *parentp = tmp; - vm_radix_addpage(tmp, index, clev, page); slot = vm_radix_slot(newind, clev); - tmp->rn_child[slot] = rnode; + /* These writes are not yet visible due to ordering. */ + vm_radix_addpage(tmp, index, clev, page, UNSERIALIZED); + vm_radix_node_store(&tmp->rn_child[slot], rnode, UNSERIALIZED); + /* Serializing write to make the above visible. */ + vm_radix_node_store(parentp, tmp, LOCKED); + return (0); } @@ -413,7 +463,7 @@ vm_radix_is_singleton(struct vm_radix *rtree) { struct vm_radix_node *rnode; - rnode = vm_radix_getroot(rtree); + rnode = vm_radix_root_load(rtree, LOCKED); if (rnode == NULL) return (FALSE); return (vm_radix_isleaf(rnode)); @@ -423,33 +473,63 @@ vm_radix_is_singleton(struct vm_radix *rtree) * Returns the value stored at the index. If the index is not present, * NULL is returned. */ -vm_page_t -vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) +static __always_inline vm_page_t +_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index, + enum vm_radix_access access) { struct vm_radix_node *rnode; vm_page_t m; int slot; - rnode = vm_radix_getroot(rtree); + rnode = vm_radix_root_load(rtree, access); while (rnode != NULL) { if (vm_radix_isleaf(rnode)) { m = vm_radix_topage(rnode); if (m->pindex == index) return (m); - else - break; - } else if (vm_radix_keybarr(rnode, index)) break; + } + if (vm_radix_keybarr(rnode, index)) + break; slot = vm_radix_slot(index, rnode->rn_clev); - rnode = rnode->rn_child[slot]; + rnode = vm_radix_node_load(&rnode->rn_child[slot], access); } return (NULL); } /* - * Look up the nearest entry at a position bigger than or equal to index. + * Returns the value stored at the index assuming there is an external lock. + * + * If the index is not present, NULL is returned. */ vm_page_t +vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) +{ + + return _vm_radix_lookup(rtree, index, LOCKED); +} + +/* + * Returns the value stored at the index without requiring an external lock. + * + * If the index is not present, NULL is returned. + */ +vm_page_t +vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) +{ + vm_page_t m; + + smr_enter(vm_radix_smr); + m = _vm_radix_lookup(rtree, index, SMR); + smr_exit(vm_radix_smr); + + return (m); +} + +/* + * Look up the nearest entry at a position greater than or equal to index. + */ +vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) { struct vm_radix_node *stack[VM_RADIX_LIMIT]; @@ -461,7 +541,7 @@ vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t #endif int slot, tos; - rnode = vm_radix_getroot(rtree); + rnode = vm_radix_root_load(rtree, LOCKED); if (rnode == NULL) return (NULL); else if (vm_radix_isleaf(rnode)) { @@ -477,7 +557,7 @@ vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t * If the keys differ before the current bisection node, * then the search key might rollback to the earliest * available bisection node or to the smallest key - * in the current node (if the owner is bigger than the + * in the current node (if the owner is greater than the * search key). */ if (vm_radix_keybarr(rnode, index)) { @@ -512,7 +592,7 @@ ascend: ("vm_radix_lookup_ge: keybarr failed")); } slot = vm_radix_slot(index, rnode->rn_clev); - child = rnode->rn_child[slot]; + child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); if (vm_radix_isleaf(child)) { m = vm_radix_topage(child); if (m->pindex >= index) @@ -530,7 +610,8 @@ ascend: do { index += inc; slot++; - child = rnode->rn_child[slot]; + child = vm_radix_node_load(&rnode->rn_child[slot], + LOCKED); if (vm_radix_isleaf(child)) { m = vm_radix_topage(child); if (m->pindex >= index) @@ -543,7 +624,7 @@ ascend: ("vm_radix_lookup_ge: child is radix node")); /* - * If a page or edge bigger than the search slot is not found + * If a page or edge greater than the search slot is not found * in the current node, ascend to the next higher-level node. */ goto ascend; @@ -572,7 +653,7 @@ vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t #endif int slot, tos; - rnode = vm_radix_getroot(rtree); + rnode = vm_radix_root_load(rtree, LOCKED); if (rnode == NULL) return (NULL); else if (vm_radix_isleaf(rnode)) { @@ -625,7 +706,7 @@ ascend: ("vm_radix_lookup_le: keybarr failed")); } slot = vm_radix_slot(index, rnode->rn_clev); - child = rnode->rn_child[slot]; + child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); if (vm_radix_isleaf(child)) { m = vm_radix_topage(child); if (m->pindex <= index) @@ -643,7 +724,8 @@ ascend: do { index -= inc; slot--; - child = rnode->rn_child[slot]; + child = vm_radix_node_load(&rnode->rn_child[slot], + LOCKED); if (vm_radix_isleaf(child)) { m = vm_radix_topage(child); if (m->pindex <= index) @@ -677,16 +759,16 @@ descend: vm_page_t vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) { - struct vm_radix_node *rnode, *parent; + struct vm_radix_node *rnode, *parent, *tmp; vm_page_t m; int i, slot; - rnode = vm_radix_getroot(rtree); + rnode = vm_radix_root_load(rtree, LOCKED); if (vm_radix_isleaf(rnode)) { m = vm_radix_topage(rnode); if (m->pindex != index) return (NULL); - vm_radix_setroot(rtree, NULL); + vm_radix_root_store(rtree, NULL, LOCKED); return (m); } parent = NULL; @@ -694,34 +776,42 @@ vm_radix_remove(struct vm_radix *rtree, vm_pindex_t in if (rnode == NULL) return (NULL); slot = vm_radix_slot(index, rnode->rn_clev); - if (vm_radix_isleaf(rnode->rn_child[slot])) { - m = vm_radix_topage(rnode->rn_child[slot]); + tmp = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + if (vm_radix_isleaf(tmp)) { + m = vm_radix_topage(tmp); if (m->pindex != index) return (NULL); - rnode->rn_child[slot] = NULL; + vm_radix_node_store(&rnode->rn_child[slot], NULL, LOCKED); rnode->rn_count--; if (rnode->rn_count > 1) return (m); for (i = 0; i < VM_RADIX_COUNT; i++) - if (rnode->rn_child[i] != NULL) + if (vm_radix_node_load(&rnode->rn_child[i], + LOCKED) != NULL) break; KASSERT(i != VM_RADIX_COUNT, ("%s: invalid node configuration", __func__)); + tmp = vm_radix_node_load(&rnode->rn_child[i], LOCKED); if (parent == NULL) - vm_radix_setroot(rtree, rnode->rn_child[i]); + vm_radix_root_store(rtree, tmp, LOCKED); else { slot = vm_radix_slot(index, parent->rn_clev); - KASSERT(parent->rn_child[slot] == rnode, + KASSERT(vm_radix_node_load( + &parent->rn_child[slot], LOCKED) == rnode, ("%s: invalid child value", __func__)); - parent->rn_child[slot] = rnode->rn_child[i]; + vm_radix_node_store(&parent->rn_child[slot], + tmp, LOCKED); } + /* + * The child is still valid and we can not zero the + * pointer until all smr references are gone. + */ rnode->rn_count--; - rnode->rn_child[i] = NULL; - vm_radix_node_put(rnode); + vm_radix_node_put(rnode, i); return (m); } parent = rnode; - rnode = rnode->rn_child[slot]; + rnode = tmp; } } @@ -735,10 +825,10 @@ vm_radix_reclaim_allnodes(struct vm_radix *rtree) { struct vm_radix_node *root; - root = vm_radix_getroot(rtree); + root = vm_radix_root_load(rtree, LOCKED); if (root == NULL) return; - vm_radix_setroot(rtree, NULL); + vm_radix_root_store(rtree, NULL, UNSERIALIZED); if (!vm_radix_isleaf(root)) vm_radix_reclaim_allnodes_int(root); } @@ -750,13 +840,13 @@ vm_radix_reclaim_allnodes(struct vm_radix *rtree) vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage) { - struct vm_radix_node *rnode; + struct vm_radix_node *rnode, *tmp; vm_page_t m; vm_pindex_t index; int slot; index = newpage->pindex; - rnode = vm_radix_getroot(rtree); + rnode = vm_radix_root_load(rtree, LOCKED); if (rnode == NULL) panic("%s: replacing page on an empty trie", __func__); if (vm_radix_isleaf(rnode)) { @@ -769,19 +859,19 @@ vm_radix_replace(struct vm_radix *rtree, vm_page_t new } for (;;) { slot = vm_radix_slot(index, rnode->rn_clev); - if (vm_radix_isleaf(rnode->rn_child[slot])) { - m = vm_radix_topage(rnode->rn_child[slot]); + tmp = vm_radix_node_load(&rnode->rn_child[slot], LOCKED); + if (vm_radix_isleaf(tmp)) { + m = vm_radix_topage(tmp); if (m->pindex == index) { - rnode->rn_child[slot] = - (void *)((uintptr_t)newpage | - VM_RADIX_ISLEAF); + vm_radix_node_store(&rnode->rn_child[slot], + (struct vm_radix_node *)((uintptr_t)newpage | + VM_RADIX_ISLEAF), LOCKED); return (m); } else break; - } else if (rnode->rn_child[slot] == NULL || - vm_radix_keybarr(rnode->rn_child[slot], index)) + } else if (tmp == NULL || vm_radix_keybarr(tmp, index)) break; - rnode = rnode->rn_child[slot]; + rnode = tmp; } panic("%s: original replacing page not found", __func__); } @@ -798,7 +888,7 @@ vm_radix_wait(void) */ DB_SHOW_COMMAND(radixnode, db_show_radixnode) { - struct vm_radix_node *rnode; + struct vm_radix_node *rnode, *tmp; int i; if (!have_addr) @@ -807,12 +897,13 @@ DB_SHOW_COMMAND(radixnode, db_show_radixnode) db_printf("radixnode %p, owner %jx, children count %u, level %u:\n", (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_count, rnode->rn_clev); - for (i = 0; i < VM_RADIX_COUNT; i++) - if (rnode->rn_child[i] != NULL) + for (i = 0; i < VM_RADIX_COUNT; i++) { + tmp = vm_radix_node_load(&rnode->rn_child[i], UNSERIALIZED); + if (tmp != NULL) db_printf("slot: %d, val: %p, page: %p, clev: %d\n", - i, (void *)rnode->rn_child[i], - vm_radix_isleaf(rnode->rn_child[i]) ? - vm_radix_topage(rnode->rn_child[i]) : NULL, + i, (void *)tmp, + vm_radix_isleaf(tmp) ? vm_radix_topage(tmp) : NULL, rnode->rn_clev); + } } #endif /* DDB */ Modified: head/sys/vm/vm_radix.h ============================================================================== --- head/sys/vm/vm_radix.h Wed Feb 19 19:51:09 2020 (r358129) +++ head/sys/vm/vm_radix.h Wed Feb 19 19:58:31 2020 (r358130) @@ -43,6 +43,7 @@ boolean_t vm_radix_is_singleton(struct vm_radix *rtree vm_page_t vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index); vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index); vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index); +vm_page_t vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index); void vm_radix_reclaim_allnodes(struct vm_radix *rtree); vm_page_t vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index); vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage); From owner-svn-src-all@freebsd.org Wed Feb 19 21:13:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 40D99245628; Wed, 19 Feb 2020 21:13:00 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48N9Rc0wY0z3Gnq; Wed, 19 Feb 2020 21:13:00 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 18310EF9D; Wed, 19 Feb 2020 21:13:00 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JLCxBj036273; Wed, 19 Feb 2020 21:12:59 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JLCxfB036271; Wed, 19 Feb 2020 21:12:59 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002192112.01JLCxfB036271@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 19 Feb 2020 21:12:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358132 - in head: . share/mk X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in head: . share/mk X-SVN-Commit-Revision: 358132 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 21:13:00 -0000 Author: dim Date: Wed Feb 19 21:12:59 2020 New Revision: 358132 URL: https://svnweb.freebsd.org/changeset/base/358132 Log: Take LINKER_FREEBSD_VERSION from numerical field after dash Summary: With COMPILER_FREEBSD_VERSION, we use a numeric value that we bump each time we make a change that requires re-bootstrapping, but with the linker variant, we instead take the entire part after "FreeBSD", as in this example version output: LLD 9.0.1 (FreeBSD c1a0a213378a458fbea1a5c77b315c7dce08fd05-1300006) (compatible with GNU linkers) E.g., LINKER_FREEBSD_VERSION is currently being set to "c1a0a213378a458fbea1a5c77b315c7dce08fd05-1300006". This means that *any* new upstream lld version will cause re-bootstrapping. We should only look at the numerical field we append after a dash instead. This review attempts to make it so. The only thing I am not happy about is the post-processing of awk output in Makefile.inc1. I notice that our awk does not have gensub(), so it can't substitute a numbered sub-regex with \1, \2, etc. Suggestions welcome. :) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23691 Modified: head/Makefile.inc1 head/share/mk/bsd.linker.mk Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Wed Feb 19 21:03:06 2020 (r358131) +++ head/Makefile.inc1 Wed Feb 19 21:12:59 2020 (r358132) @@ -272,9 +272,10 @@ WANT_LINKER_TYPE= !make(test-system-compiler) .if ${WANT_LINKER_TYPE} == "lld" WANT_LINKER_FREEBSD_VERSION_FILE= lib/clang/include/VCSVersion.inc -WANT_LINKER_FREEBSD_VERSION!= \ +_WANT_LINKER_FREEBSD_VERSION!= \ awk '$$2 == "LLD_REVISION" {gsub(/"/, "", $$3); print $$3}' \ ${SRCDIR}/${WANT_LINKER_FREEBSD_VERSION_FILE} || echo unknown +WANT_LINKER_FREEBSD_VERSION=${_WANT_LINKER_FREEBSD_VERSION:C/.*-(.*)/\1/} WANT_LINKER_VERSION_FILE= lib/clang/include/lld/Common/Version.inc WANT_LINKER_VERSION!= \ awk '$$2 == "LLD_VERSION" {split($$3, a, "."); print a[1] * 10000 + a[2] * 100 + a[3]}' \ Modified: head/share/mk/bsd.linker.mk ============================================================================== --- head/share/mk/bsd.linker.mk Wed Feb 19 21:03:06 2020 (r358131) +++ head/share/mk/bsd.linker.mk Wed Feb 19 21:12:59 2020 (r358132) @@ -69,9 +69,11 @@ _v= ${_ld_version:M[1-9]*.[0-9]*:[1]} .elif ${_ld_version:[1]} == "LLD" ${X_}LINKER_TYPE= lld _v= ${_ld_version:[2]} -${X_}LINKER_FREEBSD_VERSION!= \ - ${${ld}} --version | \ - awk '$$3 ~ /FreeBSD/ {print substr($$4, 1, length($$4)-1)}' +.if ${_ld_version:[3]} == "(FreeBSD" +${X_}LINKER_FREEBSD_VERSION:= ${_ld_version:[4]:C/.*-(.*)\)/\1/} +.else +${X_}LINKER_FREEBSD_VERSION= 0 +.endif .else .warning Unknown linker from ${ld}=${${ld}}: ${_ld_version}, defaulting to bfd ${X_}LINKER_TYPE= bfd From owner-svn-src-all@freebsd.org Wed Feb 19 22:34:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 28CC62471C3; Wed, 19 Feb 2020 22:34:24 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NCFW2xBpz413f; Wed, 19 Feb 2020 22:34:23 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 47FFBFEE0; Wed, 19 Feb 2020 22:34:23 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01JMYNo1084608; Wed, 19 Feb 2020 22:34:23 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01JMYNxX084607; Wed, 19 Feb 2020 22:34:23 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002192234.01JMYNxX084607@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Wed, 19 Feb 2020 22:34:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358133 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358133 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 22:34:24 -0000 Author: jeff Date: Wed Feb 19 22:34:22 2020 New Revision: 358133 URL: https://svnweb.freebsd.org/changeset/base/358133 Log: Silence a gcc warning about no return from a function that handles every possible enum in a switch statement. I verified that this emits nothing as expected on clang. radix relies on constant propagation to eliminate any branching from these access routines. Reported by: lwhsu/tinderbox Modified: head/sys/vm/vm_radix.c Modified: head/sys/vm/vm_radix.c ============================================================================== --- head/sys/vm/vm_radix.c Wed Feb 19 21:12:59 2020 (r358132) +++ head/sys/vm/vm_radix.c Wed Feb 19 22:34:22 2020 (r358133) @@ -208,6 +208,8 @@ vm_radix_node_load(smrnode_t *p, enum vm_radix_access case SMR: return (smr_entered_load(p, vm_radix_smr)); } + /* This is unreachable, silence gcc. */ + panic("vm_radix_node_get: Unknown access type"); } static __inline void From owner-svn-src-all@freebsd.org Wed Feb 19 22:49:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2CEFE2478C3; Wed, 19 Feb 2020 22:49:08 +0000 (UTC) (envelope-from joerg@bec.de) Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) (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 48NCZW31qGz4M8c; Wed, 19 Feb 2020 22:49:05 +0000 (UTC) (envelope-from joerg@bec.de) X-Originating-IP: 87.153.203.232 Received: from bec.de (p5799CBE8.dip0.t-ipconnect.de [87.153.203.232]) (Authenticated sender: joerg@bec.de) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 48F92E0005; Wed, 19 Feb 2020 22:49:02 +0000 (UTC) Date: Wed, 19 Feb 2020 23:49:00 +0100 From: Joerg Sonnenberger To: Jeff Roberson Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r358133 - head/sys/vm Message-ID: <20200219224900.GA108593@bec.de> References: <202002192234.01JMYNxX084607@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202002192234.01JMYNxX084607@repo.freebsd.org> User-Agent: Mutt/1.11.3 (2019-02-01) X-Rspamd-Queue-Id: 48NCZW31qGz4M8c X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.993,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 22:49:08 -0000 On Wed, Feb 19, 2020 at 10:34:23PM +0000, Jeff Roberson wrote: > Author: jeff > Date: Wed Feb 19 22:34:22 2020 > New Revision: 358133 > URL: https://svnweb.freebsd.org/changeset/base/358133 > > Log: > Silence a gcc warning about no return from a function that handles every > possible enum in a switch statement. I verified that this emits nothing > as expected on clang. radix relies on constant propagation to eliminate > any branching from these access routines. __builtin_unreachable() ? Joerg From owner-svn-src-all@freebsd.org Wed Feb 19 22:57:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B43D9247BBD; Wed, 19 Feb 2020 22:57:32 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NCmD3J02z4TKG; Wed, 19 Feb 2020 22:57:32 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id 4DB967C98; Wed, 19 Feb 2020 22:57:32 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qt1-f177.google.com with SMTP id r5so1515188qtt.9; Wed, 19 Feb 2020 14:57:32 -0800 (PST) X-Gm-Message-State: APjAAAWbOTC9wpbQxEd/QLZDwpKgmJD9ba7+uMTOchPc30xk7WpR1Ld1 ewmx8kXirVtmOgZ5JwPjBRgaDyzST4RFK0fDVDk= X-Google-Smtp-Source: APXvYqxTis2dhevulrwHbrq5SDiaJfphE2BUCEddL5I3VFvmoSHl1+lZSshhqbYC1z/Glrlj3QzFbSkiTspQ0Sb9yWw= X-Received: by 2002:aed:3f70:: with SMTP id q45mr23582715qtf.310.1582153051572; Wed, 19 Feb 2020 14:57:31 -0800 (PST) MIME-Version: 1.0 References: <202002192234.01JMYNxX084607@repo.freebsd.org> <20200219224900.GA108593@bec.de> In-Reply-To: <20200219224900.GA108593@bec.de> From: Kyle Evans Date: Wed, 19 Feb 2020 16:57:19 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r358133 - head/sys/vm To: Joerg Sonnenberger Cc: Jeff Roberson , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Feb 2020 22:57:32 -0000 On Wed, Feb 19, 2020 at 4:49 PM Joerg Sonnenberger wrote: > > On Wed, Feb 19, 2020 at 10:34:23PM +0000, Jeff Roberson wrote: > > Author: jeff > > Date: Wed Feb 19 22:34:22 2020 > > New Revision: 358133 > > URL: https://svnweb.freebsd.org/changeset/base/358133 > > > > Log: > > Silence a gcc warning about no return from a function that handles every > > possible enum in a switch statement. I verified that this emits nothing > > as expected on clang. radix relies on constant propagation to eliminate > > any branching from these access routines. > > __builtin_unreachable() ? > We seem to call that __unreachable() to address compilers where it may not be defined, but it does seem to be the ideal way to handle it. From owner-svn-src-all@freebsd.org Thu Feb 20 00:34:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6BA1B249777; Thu, 20 Feb 2020 00:34:47 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NFwR1k1tz4XnQ; Thu, 20 Feb 2020 00:34:47 +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 301961949D; Thu, 20 Feb 2020 00:34:47 +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 01K0YlkW056120; Thu, 20 Feb 2020 00:34:47 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K0YlnX056119; Thu, 20 Feb 2020 00:34:47 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202002200034.01K0YlnX056119@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 20 Feb 2020 00:34:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358134 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358134 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 00:34:47 -0000 Author: imp Date: Thu Feb 20 00:34:46 2020 New Revision: 358134 URL: https://svnweb.freebsd.org/changeset/base/358134 Log: Don't spam the console with an additional, and useless, error message. There's no need to spam the console with this error message. If there's an I/O error, the disk/cam driver will report it at the lower levels. If that's an actual problem, the upper layers will report that. Reviewed by: kib@ Differential Revision: https://reviews.freebsd.org/D23756 Modified: head/sys/vm/vnode_pager.c Modified: head/sys/vm/vnode_pager.c ============================================================================== --- head/sys/vm/vnode_pager.c Wed Feb 19 22:34:22 2020 (r358133) +++ head/sys/vm/vnode_pager.c Thu Feb 20 00:34:46 2020 (r358134) @@ -1169,8 +1169,6 @@ vnode_pager_generic_getpages_done(struct buf *bp) vm_page_readahead_finish(mt); } VM_OBJECT_RUNLOCK(object); - if (error != 0) - printf("%s: I/O read error %d\n", __func__, error); return (error); } From owner-svn-src-all@freebsd.org Thu Feb 20 00:46:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 771D3249A32; Thu, 20 Feb 2020 00:46:17 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NG9j235hz3PMk; Thu, 20 Feb 2020 00:46: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 3FF1D1965D; Thu, 20 Feb 2020 00:46: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 01K0kHkK061929; Thu, 20 Feb 2020 00:46:17 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K0kGNO061926; Thu, 20 Feb 2020 00:46:16 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202002200046.01K0kGNO061926@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 20 Feb 2020 00:46:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358135 - in head/stand: efi/loader i386/libi386 i386/loader libsa X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/stand: efi/loader i386/libi386 i386/loader libsa X-SVN-Commit-Revision: 358135 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 00:46:17 -0000 Author: imp Date: Thu Feb 20 00:46:16 2020 New Revision: 358135 URL: https://svnweb.freebsd.org/changeset/base/358135 Log: Create ptov() function. Create a ptov() function. It's basically the same as the btx PTOV macro, but works everywhere. smbios needs this to translate addresses, but the translation differs between BIOS booting and EFI booting. Make it a function so one smbios.o can be used everywhere. Provide definitions for it in the two loaders affected. Differential Revision: https://reviews.freebsd.org/D23660 Modified: head/stand/efi/loader/main.c head/stand/i386/libi386/smbios.c head/stand/i386/loader/main.c head/stand/libsa/stand.h Modified: head/stand/efi/loader/main.c ============================================================================== --- head/stand/efi/loader/main.c Thu Feb 20 00:34:46 2020 (r358134) +++ head/stand/efi/loader/main.c Thu Feb 20 00:46:16 2020 (r358135) @@ -852,7 +852,11 @@ read_loader_env(const char *name, char *def_fn, bool o } } - +caddr_t +ptov(uintptr_t x) +{ + return ((caddr_t)x); +} EFI_STATUS main(int argc, CHAR16 *argv[]) Modified: head/stand/i386/libi386/smbios.c ============================================================================== --- head/stand/i386/libi386/smbios.c Thu Feb 20 00:34:46 2020 (r358134) +++ head/stand/i386/libi386/smbios.c Thu Feb 20 00:46:16 2020 (r358135) @@ -28,16 +28,9 @@ __FBSDID("$FreeBSD$"); #include -#include #include -#ifdef EFI -/* In EFI, we don't need PTOV(). */ -#define PTOV(x) (caddr_t)(x) -#else -#include "btxv86.h" -#endif -#include "smbios.h" +#define PTOV(x) ptov(x) /* * Detect SMBIOS and export information about the SMBIOS into the Modified: head/stand/i386/loader/main.c ============================================================================== --- head/stand/i386/loader/main.c Thu Feb 20 00:34:46 2020 (r358134) +++ head/stand/i386/loader/main.c Thu Feb 20 00:46:16 2020 (r358135) @@ -86,6 +86,12 @@ extern char end[]; static void *heap_top; static void *heap_bottom; +caddr_t +ptov(uintptr_t x) +{ + return (PTOV(x)); +} + int main(void) { Modified: head/stand/libsa/stand.h ============================================================================== --- head/stand/libsa/stand.h Thu Feb 20 00:34:46 2020 (r358134) +++ head/stand/libsa/stand.h Thu Feb 20 00:46:16 2020 (r358135) @@ -452,4 +452,9 @@ const char *x86_hypervisor(void); #define reallocf(x, y) Reallocf(x, y, NULL, 0) #endif +/* + * va <-> pa routines. MD code must supply. + */ +caddr_t ptov(uintptr_t); + #endif /* STAND_H */ From owner-svn-src-all@freebsd.org Thu Feb 20 00:46:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 491EC249A55; Thu, 20 Feb 2020 00:46:24 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NG9r1Fydz3PbF; Thu, 20 Feb 2020 00:46:24 +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 D8D701965E; Thu, 20 Feb 2020 00:46:23 +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 01K0kNW9061988; Thu, 20 Feb 2020 00:46:23 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K0kM68061982; Thu, 20 Feb 2020 00:46:22 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202002200046.01K0kM68061982@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 20 Feb 2020 00:46:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358136 - in head/stand: efi/loader i386/libi386 i386/loader libsa X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/stand: efi/loader i386/libi386 i386/loader libsa X-SVN-Commit-Revision: 358136 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 00:46:24 -0000 Author: imp Date: Thu Feb 20 00:46:22 2020 New Revision: 358136 URL: https://svnweb.freebsd.org/changeset/base/358136 Log: Move smbios.c to libsa. smbios used to be an i386 only kinda weird quirk to the x86 architecture. But UEFI picked it up, dusted it off and now it's many other locations. Make it base technology by moving it to libsa and fixing up the compliation. The code has issues with unaligned access still, but that will be addressed in a followup commit. Differential Revision: https://reviews.freebsd.org/D23660 Added: head/stand/libsa/smbios.c (contents, props changed) - copied, changed from r358135, head/stand/i386/libi386/smbios.c head/stand/libsa/smbios.h (contents, props changed) - copied, changed from r358135, head/stand/i386/libi386/smbios.h Deleted: head/stand/i386/libi386/smbios.c head/stand/i386/libi386/smbios.h Modified: head/stand/efi/loader/Makefile head/stand/i386/libi386/Makefile head/stand/i386/loader/main.c head/stand/libsa/Makefile Modified: head/stand/efi/loader/Makefile ============================================================================== --- head/stand/efi/loader/Makefile Thu Feb 20 00:46:16 2020 (r358135) +++ head/stand/efi/loader/Makefile Thu Feb 20 00:46:22 2020 (r358136) @@ -22,7 +22,6 @@ SRCS= autoload.c \ framebuffer.c \ main.c \ self_reloc.c \ - smbios.c \ vers.c CFLAGS+= -I${.CURDIR}/../loader @@ -45,8 +44,6 @@ CWARNFLAGS.main.c+= -Wno-format .PATH: ${.CURDIR}/../loader .PATH: ${.CURDIR}/../loader/arch/${MACHINE} -# For smbios.c XXX need to abstract properly -.PATH: ${BOOTSRC}/i386/libi386 .include "${.CURDIR}/../loader/arch/${MACHINE}/Makefile.inc" CFLAGS+= -I${.CURDIR} @@ -56,18 +53,6 @@ CFLAGS+= -I${EFISRC}/include/${MACHINE} CFLAGS+= -I${SYSDIR}/contrib/dev/acpica/include CFLAGS+= -I${BOOTSRC}/i386/libi386 CFLAGS+= -DEFI - -.if !defined(BOOT_HIDE_SERIAL_NUMBERS) -# Export serial numbers, UUID, and asset tag from loader. -CFLAGS+= -DSMBIOS_SERIAL_NUMBERS -.if defined(BOOT_LITTLE_ENDIAN_UUID) -# Use little-endian UUID format as defined in SMBIOS 2.6. -CFLAGS+= -DSMBIOS_LITTLE_ENDIAN_UUID -.elif defined(BOOT_NETWORK_ENDIAN_UUID) -# Use network-endian UUID format for backward compatibility. -CFLAGS+= -DSMBIOS_NETWORK_ENDIAN_UUID -.endif -.endif .if defined(HAVE_FDT) && ${MK_FDT} != "no" .include "${BOOTSRC}/fdt.mk" Modified: head/stand/i386/libi386/Makefile ============================================================================== --- head/stand/i386/libi386/Makefile Thu Feb 20 00:46:16 2020 (r358135) +++ head/stand/i386/libi386/Makefile Thu Feb 20 00:46:22 2020 (r358136) @@ -9,7 +9,7 @@ SRCS= bio.c biosacpi.c biosdisk.c biosmem.c biospnp.c comconsole.c devicename.c elf32_freebsd.c \ elf64_freebsd.c multiboot.c multiboot_tramp.S relocater_tramp.S \ i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.S \ - smbios.c time.c vidconsole.c amd64_tramp.S spinconsole.c + time.c vidconsole.c amd64_tramp.S spinconsole.c .PATH: ${ZFSSRC} SRCS+= devicename_stubs.c CFLAGS+= -I${ZFSSRC} @@ -26,18 +26,6 @@ CFLAGS+= -DCOMSPEED=${BOOT_COMCONSOLE_SPEED} .ifdef(BOOT_BIOSDISK_DEBUG) # Make the disk code more talkative CFLAGS+= -DDISK_DEBUG -.endif - -.if !defined(BOOT_HIDE_SERIAL_NUMBERS) -# Export serial numbers, UUID, and asset tag from loader. -CFLAGS+= -DSMBIOS_SERIAL_NUMBERS -.if defined(BOOT_LITTLE_ENDIAN_UUID) -# Use little-endian UUID format as defined in SMBIOS 2.6. -CFLAGS+= -DSMBIOS_LITTLE_ENDIAN_UUID -.elif defined(BOOT_NETWORK_ENDIAN_UUID) -# Use network-endian UUID format for backward compatibility. -CFLAGS+= -DSMBIOS_NETWORK_ENDIAN_UUID -.endif .endif # terminal emulation Modified: head/stand/i386/loader/main.c ============================================================================== --- head/stand/i386/loader/main.c Thu Feb 20 00:46:16 2020 (r358135) +++ head/stand/i386/loader/main.c Thu Feb 20 00:46:22 2020 (r358136) @@ -45,7 +45,7 @@ __FBSDID("$FreeBSD$"); #include "bootstrap.h" #include "common/bootargs.h" #include "libi386/libi386.h" -#include "libi386/smbios.h" +#include #include "btxv86.h" #ifdef LOADER_ZFS_SUPPORT Modified: head/stand/libsa/Makefile ============================================================================== --- head/stand/libsa/Makefile Thu Feb 20 00:46:16 2020 (r358135) +++ head/stand/libsa/Makefile Thu Feb 20 00:46:22 2020 (r358136) @@ -137,6 +137,20 @@ CLEANFILES+= ${SAFE_INCS} ${STAND_H_INC} ${OTHER_INC} SRCS+= closeall.c dev.c ioctl.c nullfs.c stat.c \ fstat.c close.c lseek.c open.c read.c write.c readdir.c +# SMBios routines +SRCS+= smbios.c +.if !defined(BOOT_HIDE_SERIAL_NUMBERS) +# Export serial numbers, UUID, and asset tag from loader. +CFLAGS.smbios.c+= -DSMBIOS_SERIAL_NUMBERS +.if defined(BOOT_LITTLE_ENDIAN_UUID) +# Use little-endian UUID format as defined in SMBIOS 2.6. +CFLAGS.smbios.c+= -DSMBIOS_LITTLE_ENDIAN_UUID +.elif defined(BOOT_NETWORK_ENDIAN_UUID) +# Use network-endian UUID format for backward compatibility. +CFLAGS.smbios.c+= -DSMBIOS_NETWORK_ENDIAN_UUID +.endif +.endif + # network routines SRCS+= arp.c ether.c ip.c inet_ntoa.c in_cksum.c net.c udp.c netif.c rpc.c Copied and modified: head/stand/libsa/smbios.c (from r358135, head/stand/i386/libi386/smbios.c) ============================================================================== Copied and modified: head/stand/libsa/smbios.h (from r358135, head/stand/i386/libi386/smbios.h) ============================================================================== From owner-svn-src-all@freebsd.org Thu Feb 20 01:03:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 24EF324A1F1; Thu, 20 Feb 2020 01:03:45 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NGYr6tyfz4L1S; Thu, 20 Feb 2020 01:03:44 +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 E5B0319A01; Thu, 20 Feb 2020 01:03:44 +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 01K13i9x073982; Thu, 20 Feb 2020 01:03:44 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K13i0a073980; Thu, 20 Feb 2020 01:03:44 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202002200103.01K13i0a073980@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 20 Feb 2020 01:03:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358137 - in stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Commit-Revision: 358137 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:03:45 -0000 Author: mav Date: Thu Feb 20 01:03:44 2020 New Revision: 358137 URL: https://svnweb.freebsd.org/changeset/base/358137 Log: MFC r357639: Reduce number of atomic_add() calls in aggsum. Previous code used 4 atomics to do aggsum_flush_bucket() and 2 more to re-borrow after the flush. But since asc_borrowed and asc_delta are accessed only while holding asc_lock, it makes no any sense to modify as_lower_bound and as_upper_bound in multiple steps. Instead of that the new code uses only 2 atomics in all the cases, one per as_*_bound variable. I think even that is overkill, simple atomic store and load could be used here, since all modifications are done under the as_lock, but there are no such primitives in ZFS code now. While there, make borrow code consider previous borrow value, so that on mixed request patterns reduce chance of needing to borrow again if much larger request follows tiny one that needed borrow. Also reduce as_numbuckets from uint64_t to u_int. It makes no sense to use so large division operation on every aggsum_add(). Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/aggsum.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/aggsum.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/aggsum.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/aggsum.c Thu Feb 20 00:46:22 2020 (r358136) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/aggsum.c Thu Feb 20 01:03:44 2020 (r358137) @@ -125,13 +125,11 @@ aggsum_flush_bucket(aggsum_t *as, struct aggsum_bucket * We use atomic instructions for this because we read the upper and * lower bounds without the lock, so we need stores to be atomic. */ - atomic_add_64((volatile uint64_t *)&as->as_lower_bound, asb->asc_delta); - atomic_add_64((volatile uint64_t *)&as->as_upper_bound, asb->asc_delta); - asb->asc_delta = 0; - atomic_add_64((volatile uint64_t *)&as->as_upper_bound, - -asb->asc_borrowed); atomic_add_64((volatile uint64_t *)&as->as_lower_bound, - asb->asc_borrowed); + asb->asc_delta + asb->asc_borrowed); + atomic_add_64((volatile uint64_t *)&as->as_upper_bound, + asb->asc_delta - asb->asc_borrowed); + asb->asc_delta = 0; asb->asc_borrowed = 0; } @@ -163,40 +161,43 @@ aggsum_value(aggsum_t *as) return (rv); } -static void -aggsum_borrow(aggsum_t *as, int64_t delta, struct aggsum_bucket *asb) -{ - int64_t abs_delta = (delta < 0 ? -delta : delta); - mutex_enter(&as->as_lock); - mutex_enter(&asb->asc_lock); - - aggsum_flush_bucket(as, asb); - - atomic_add_64((volatile uint64_t *)&as->as_upper_bound, abs_delta); - atomic_add_64((volatile uint64_t *)&as->as_lower_bound, -abs_delta); - asb->asc_borrowed = abs_delta; - - mutex_exit(&asb->asc_lock); - mutex_exit(&as->as_lock); -} - void aggsum_add(aggsum_t *as, int64_t delta) { struct aggsum_bucket *asb = &as->as_buckets[CPU_SEQID % as->as_numbuckets]; + int64_t borrow; - for (;;) { - mutex_enter(&asb->asc_lock); - if (asb->asc_delta + delta <= (int64_t)asb->asc_borrowed && - asb->asc_delta + delta >= -(int64_t)asb->asc_borrowed) { - asb->asc_delta += delta; - mutex_exit(&asb->asc_lock); - return; - } + /* Try fast path if we already borrowed enough before. */ + mutex_enter(&asb->asc_lock); + if (asb->asc_delta + delta <= (int64_t)asb->asc_borrowed && + asb->asc_delta + delta >= -(int64_t)asb->asc_borrowed) { + asb->asc_delta += delta; mutex_exit(&asb->asc_lock); - aggsum_borrow(as, delta * aggsum_borrow_multiplier, asb); + return; } + mutex_exit(&asb->asc_lock); + + /* + * We haven't borrowed enough. Take the global lock and borrow + * considering what is requested now and what we borrowed before. + */ + borrow = (delta < 0 ? -delta : delta) * aggsum_borrow_multiplier; + mutex_enter(&as->as_lock); + mutex_enter(&asb->asc_lock); + delta += asb->asc_delta; + asb->asc_delta = 0; + if (borrow >= asb->asc_borrowed) + borrow -= asb->asc_borrowed; + else + borrow = (borrow - (int64_t)asb->asc_borrowed) / 4; + asb->asc_borrowed += borrow; + atomic_add_64((volatile uint64_t *)&as->as_lower_bound, + delta - borrow); + atomic_add_64((volatile uint64_t *)&as->as_upper_bound, + delta + borrow); + mutex_exit(&asb->asc_lock); + mutex_exit(&as->as_lock); } /* Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/aggsum.h ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/aggsum.h Thu Feb 20 00:46:22 2020 (r358136) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/aggsum.h Thu Feb 20 01:03:44 2020 (r358137) @@ -39,7 +39,7 @@ typedef struct aggsum { kmutex_t as_lock; int64_t as_lower_bound; int64_t as_upper_bound; - uint64_t as_numbuckets; + uint_t as_numbuckets; aggsum_bucket_t *as_buckets; } aggsum_t; From owner-svn-src-all@freebsd.org Thu Feb 20 01:16:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D42F624ABE2; Thu, 20 Feb 2020 01:16:43 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NGrq2pnFz4TFp; Thu, 20 Feb 2020 01:16:43 +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 45A4719BF2; Thu, 20 Feb 2020 01:16:43 +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 01K1GhKV080241; Thu, 20 Feb 2020 01:16:43 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1Ghu8080240; Thu, 20 Feb 2020 01:16:43 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200116.01K1Ghu8080240@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:16:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358138 - stable/12/sys/dev/pci X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/dev/pci X-SVN-Commit-Revision: 358138 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:16:43 -0000 Author: kib Date: Thu Feb 20 01:16:42 2020 New Revision: 358138 URL: https://svnweb.freebsd.org/changeset/base/358138 Log: MFC r358021: Fix typo. Modified: stable/12/sys/dev/pci/pcireg.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/pci/pcireg.h ============================================================================== --- stable/12/sys/dev/pci/pcireg.h Thu Feb 20 01:03:44 2020 (r358137) +++ stable/12/sys/dev/pci/pcireg.h Thu Feb 20 01:16:42 2020 (r358138) @@ -193,7 +193,7 @@ #define PCIZ_PMUX 0x001a /* Protocol Multiplexing */ #define PCIZ_PASID 0x001b /* Process Address Space ID */ #define PCIZ_LN_REQ 0x001c /* LN Requester */ -#define PCIZ_DPC 0x001d /* Downstream Porto Containment */ +#define PCIZ_DPC 0x001d /* Downstream Port Containment */ #define PCIZ_L1PM 0x001e /* L1 PM Substates */ /* config registers for header type 0 devices */ From owner-svn-src-all@freebsd.org Thu Feb 20 01:22:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A270E24B2B9; Thu, 20 Feb 2020 01:22:10 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NGz60vclz4XnZ; Thu, 20 Feb 2020 01:22:10 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1291D19DC8; Thu, 20 Feb 2020 01:22:10 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K1M9cT085776; Thu, 20 Feb 2020 01:22:09 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1M9wj085775; Thu, 20 Feb 2020 01:22:09 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200122.01K1M9wj085775@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:22:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358139 - stable/11/sys/dev/pci X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/dev/pci X-SVN-Commit-Revision: 358139 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:22:10 -0000 Author: kib Date: Thu Feb 20 01:22:09 2020 New Revision: 358139 URL: https://svnweb.freebsd.org/changeset/base/358139 Log: MFC r358021: Fix typo. Modified: stable/11/sys/dev/pci/pcireg.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/pci/pcireg.h ============================================================================== --- stable/11/sys/dev/pci/pcireg.h Thu Feb 20 01:16:42 2020 (r358138) +++ stable/11/sys/dev/pci/pcireg.h Thu Feb 20 01:22:09 2020 (r358139) @@ -191,7 +191,7 @@ #define PCIZ_PMUX 0x001a /* Protocol Multiplexing */ #define PCIZ_PASID 0x001b /* Process Address Space ID */ #define PCIZ_LN_REQ 0x001c /* LN Requester */ -#define PCIZ_DPC 0x001d /* Downstream Porto Containment */ +#define PCIZ_DPC 0x001d /* Downstream Port Containment */ #define PCIZ_L1PM 0x001e /* L1 PM Substates */ /* config registers for header type 0 devices */ From owner-svn-src-all@freebsd.org Thu Feb 20 01:23:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 58E5624B475; Thu, 20 Feb 2020 01:23: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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NH0r6gxjz4ZW5; Thu, 20 Feb 2020 01:23:40 +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 6557619DF6; Thu, 20 Feb 2020 01:23:40 +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 01K1Ne8D085893; Thu, 20 Feb 2020 01:23:40 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1NeQM085892; Thu, 20 Feb 2020 01:23:40 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200123.01K1NeQM085892@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:23:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358140 - stable/12/lib/libthr/thread X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/lib/libthr/thread X-SVN-Commit-Revision: 358140 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:23:41 -0000 Author: kib Date: Thu Feb 20 01:23:39 2020 New Revision: 358140 URL: https://svnweb.freebsd.org/changeset/base/358140 Log: MFC r357894: Return success, instead of ESRCH, from pthread_cancel(3) applied to the exited but not yet joined thread. Modified: stable/12/lib/libthr/thread/thr_cancel.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libthr/thread/thr_cancel.c ============================================================================== --- stable/12/lib/libthr/thread/thr_cancel.c Thu Feb 20 01:22:09 2020 (r358139) +++ stable/12/lib/libthr/thread/thr_cancel.c Thu Feb 20 01:23:39 2020 (r358140) @@ -71,7 +71,7 @@ _thr_cancel(pthread_t pthread) * _thr_find_thread and THR_THREAD_UNLOCK will enter and leave critical * region automatically. */ - if ((ret = _thr_find_thread(curthread, pthread, 0)) == 0) { + if ((ret = _thr_find_thread(curthread, pthread, 1)) == 0) { if (!pthread->cancel_pending) { pthread->cancel_pending = 1; if (pthread->state != PS_DEAD) From owner-svn-src-all@freebsd.org Thu Feb 20 01:24:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2751D24B539; Thu, 20 Feb 2020 01:24: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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NH260Fpxz4byw; Thu, 20 Feb 2020 01:24: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 01BD719DF8; Thu, 20 Feb 2020 01:24:46 +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 01K1OjOx086001; Thu, 20 Feb 2020 01:24:45 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1OjEO086000; Thu, 20 Feb 2020 01:24:45 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200124.01K1OjEO086000@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:24:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358141 - stable/11/lib/libthr/thread X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/lib/libthr/thread X-SVN-Commit-Revision: 358141 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:24:46 -0000 Author: kib Date: Thu Feb 20 01:24:45 2020 New Revision: 358141 URL: https://svnweb.freebsd.org/changeset/base/358141 Log: MFC r357894: Return success, instead of ESRCH, from pthread_cancel(3) applied to the exited but not yet joined thread. Modified: stable/11/lib/libthr/thread/thr_cancel.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libthr/thread/thr_cancel.c ============================================================================== --- stable/11/lib/libthr/thread/thr_cancel.c Thu Feb 20 01:23:39 2020 (r358140) +++ stable/11/lib/libthr/thread/thr_cancel.c Thu Feb 20 01:24:45 2020 (r358141) @@ -63,7 +63,7 @@ _pthread_cancel(pthread_t pthread) * _thr_find_thread and THR_THREAD_UNLOCK will enter and leave critical * region automatically. */ - if ((ret = _thr_find_thread(curthread, pthread, 0)) == 0) { + if ((ret = _thr_find_thread(curthread, pthread, 1)) == 0) { if (!pthread->cancel_pending) { pthread->cancel_pending = 1; if (pthread->state != PS_DEAD) From owner-svn-src-all@freebsd.org Thu Feb 20 01:27:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A8D6B24B708; Thu, 20 Feb 2020 01:27:38 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NH5Q0qf5z3Cmn; Thu, 20 Feb 2020 01:27:37 +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 CD33219E06; Thu, 20 Feb 2020 01:27:37 +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 01K1RbF1086222; Thu, 20 Feb 2020 01:27:37 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1RZ9w086209; Thu, 20 Feb 2020 01:27:35 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200127.01K1RZ9w086209@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:27:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358142 - in stable/12/libexec/rtld-elf: . aarch64 amd64 arm i386 mips powerpc powerpc64 riscv sparc64 X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/12/libexec/rtld-elf: . aarch64 amd64 arm i386 mips powerpc powerpc64 riscv sparc64 X-SVN-Commit-Revision: 358142 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:27:38 -0000 Author: kib Date: Thu Feb 20 01:27:35 2020 New Revision: 358142 URL: https://svnweb.freebsd.org/changeset/base/358142 Log: MFC r357895, r357910: Handle non-plt IRELATIVE relocations, at least for x86. Modified: stable/12/libexec/rtld-elf/aarch64/reloc.c stable/12/libexec/rtld-elf/amd64/reloc.c stable/12/libexec/rtld-elf/arm/reloc.c stable/12/libexec/rtld-elf/i386/reloc.c stable/12/libexec/rtld-elf/mips/reloc.c stable/12/libexec/rtld-elf/powerpc/reloc.c stable/12/libexec/rtld-elf/powerpc64/reloc.c stable/12/libexec/rtld-elf/riscv/reloc.c stable/12/libexec/rtld-elf/rtld.c stable/12/libexec/rtld-elf/rtld.h stable/12/libexec/rtld-elf/sparc64/reloc.c Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/rtld-elf/aarch64/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/aarch64/reloc.c Thu Feb 20 01:24:45 2020 (r358141) +++ stable/12/libexec/rtld-elf/aarch64/reloc.c Thu Feb 20 01:27:35 2020 (r358142) @@ -258,31 +258,56 @@ reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockStat return (0); } +static void +reloc_iresolve_one(Obj_Entry *obj, const Elf_Rela *rela, + RtldLockState *lockstate) +{ + Elf_Addr *where, target, *ptr; + + ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend); + where = (Elf_Addr *)(obj->relocbase + rela->r_offset); + lock_release(rtld_bind_lock, lockstate); + target = call_ifunc_resolver(ptr); + wlock_acquire(rtld_bind_lock, lockstate); + *where = target; +} + int reloc_iresolve(Obj_Entry *obj, struct Struct_RtldLockState *lockstate) { const Elf_Rela *relalim; const Elf_Rela *rela; - Elf_Addr *where, target, *ptr; if (!obj->irelative) return (0); - relalim = (const Elf_Rela *)((const char *)obj->pltrela + obj->pltrelasize); + obj->irelative = false; + relalim = (const Elf_Rela *)((const char *)obj->pltrela + + obj->pltrelasize); for (rela = obj->pltrela; rela < relalim; rela++) { - if (ELF_R_TYPE(rela->r_info) == R_AARCH64_IRELATIVE) { - ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend); - where = (Elf_Addr *)(obj->relocbase + rela->r_offset); - lock_release(rtld_bind_lock, lockstate); - target = call_ifunc_resolver(ptr); - wlock_acquire(rtld_bind_lock, lockstate); - *where = target; - } + if (ELF_R_TYPE(rela->r_info) == R_AARCH64_IRELATIVE) + reloc_iresolve_one(obj, rela, lockstate); } - obj->irelative = false; return (0); } int +reloc_iresolve_nonplt(Obj_Entry *obj, struct Struct_RtldLockState *lockstate) +{ + const Elf_Rela *relalim; + const Elf_Rela *rela; + + if (!obj->irelative_nonplt) + return (0); + obj->irelative_nonplt = false; + relalim = (const Elf_Rela *)((const char *)obj->rela + obj->relasize); + for (rela = obj->rela; rela < relalim; rela++) { + if (ELF_R_TYPE(rela->r_info) == R_AARCH64_IRELATIVE) + reloc_iresolve_one(obj, rela, lockstate); + } + return (0); +} + +int reloc_gnu_ifunc(Obj_Entry *obj, int flags, struct Struct_RtldLockState *lockstate) { @@ -497,6 +522,9 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int *where = (Elf_Addr)(obj->relocbase + rela->r_addend); break; case R_AARCH64_NONE: + break; + case R_AARCH64_IRELATIVE: + obj->irelative_nonplt = true; break; default: rtld_printf("%s: Unhandled relocation %lu\n", Modified: stable/12/libexec/rtld-elf/amd64/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/amd64/reloc.c Thu Feb 20 01:24:45 2020 (r358141) +++ stable/12/libexec/rtld-elf/amd64/reloc.c Thu Feb 20 01:27:35 2020 (r358142) @@ -303,6 +303,10 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int case R_X86_64_RELATIVE: *where = (Elf_Addr)(obj->relocbase + rela->r_addend); break; + case R_X86_64_IRELATIVE: + obj->irelative_nonplt = true; + break; + /* * missing: * R_X86_64_GOTPCREL, R_X86_64_32, R_X86_64_32S, R_X86_64_16, @@ -410,34 +414,53 @@ reloc_jmpslot(Elf_Addr *where, Elf_Addr target, return (target); } +static void +reloc_iresolve_one(Obj_Entry *obj, const Elf_Rela *rela, + RtldLockState *lockstate) +{ + Elf_Addr *where, target, *ptr; + + ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend); + where = (Elf_Addr *)(obj->relocbase + rela->r_offset); + lock_release(rtld_bind_lock, lockstate); + target = call_ifunc_resolver(ptr); + wlock_acquire(rtld_bind_lock, lockstate); + *where = target; +} + int reloc_iresolve(Obj_Entry *obj, RtldLockState *lockstate) { - const Elf_Rela *relalim; - const Elf_Rela *rela; + const Elf_Rela *relalim; + const Elf_Rela *rela; - if (!obj->irelative) + if (!obj->irelative) + return (0); + obj->irelative = false; + relalim = (const Elf_Rela *)((const char *)obj->pltrela + + obj->pltrelasize); + for (rela = obj->pltrela; rela < relalim; rela++) { + if (ELF_R_TYPE(rela->r_info) == R_X86_64_IRELATIVE) + reloc_iresolve_one(obj, rela, lockstate); + } return (0); - relalim = (const Elf_Rela *)((const char *)obj->pltrela + obj->pltrelasize); - for (rela = obj->pltrela; rela < relalim; rela++) { - Elf_Addr *where, target, *ptr; +} - switch (ELF_R_TYPE(rela->r_info)) { - case R_X86_64_JMP_SLOT: - break; +int +reloc_iresolve_nonplt(Obj_Entry *obj, RtldLockState *lockstate) +{ + const Elf_Rela *relalim; + const Elf_Rela *rela; - case R_X86_64_IRELATIVE: - ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend); - where = (Elf_Addr *)(obj->relocbase + rela->r_offset); - lock_release(rtld_bind_lock, lockstate); - target = call_ifunc_resolver(ptr); - wlock_acquire(rtld_bind_lock, lockstate); - *where = target; - break; + if (!obj->irelative_nonplt) + return (0); + obj->irelative_nonplt = false; + relalim = (const Elf_Rela *)((const char *)obj->rela + obj->relasize); + for (rela = obj->rela; rela < relalim; rela++) { + if (ELF_R_TYPE(rela->r_info) == R_X86_64_IRELATIVE) + reloc_iresolve_one(obj, rela, lockstate); } - } - obj->irelative = false; - return (0); + return (0); } int Modified: stable/12/libexec/rtld-elf/arm/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/arm/reloc.c Thu Feb 20 01:24:45 2020 (r358141) +++ stable/12/libexec/rtld-elf/arm/reloc.c Thu Feb 20 01:27:35 2020 (r358142) @@ -452,6 +452,15 @@ reloc_iresolve(Obj_Entry *obj __unused, } int +reloc_iresolve_nonplt(Obj_Entry *obj __unused, + struct Struct_RtldLockState *lockstate __unused) +{ + + /* XXX not implemented */ + return (0); +} + +int reloc_gnu_ifunc(Obj_Entry *obj __unused, int flags __unused, struct Struct_RtldLockState *lockstate __unused) { Modified: stable/12/libexec/rtld-elf/i386/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/i386/reloc.c Thu Feb 20 01:24:45 2020 (r358141) +++ stable/12/libexec/rtld-elf/i386/reloc.c Thu Feb 20 01:27:35 2020 (r358142) @@ -259,6 +259,9 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int case R_386_TLS_DTPOFF32: *where += (Elf_Addr) def->st_value; break; + case R_386_IRELATIVE: + obj->irelative_nonplt = true; + break; default: _rtld_error("%s: Unsupported relocation type %d" " in non-PLT relocations\n", obj->path, @@ -361,29 +364,51 @@ reloc_jmpslot(Elf_Addr *where, Elf_Addr target, return (target); } +static void +reloc_iresolve_one(Obj_Entry *obj, const Elf_Rel *rel, + RtldLockState *lockstate) +{ + Elf_Addr *where, target; + + where = (Elf_Addr *)(obj->relocbase + rel->r_offset); + lock_release(rtld_bind_lock, lockstate); + target = call_ifunc_resolver(obj->relocbase + *where); + wlock_acquire(rtld_bind_lock, lockstate); + *where = target; +} + int reloc_iresolve(Obj_Entry *obj, RtldLockState *lockstate) { - const Elf_Rel *rellim; - const Elf_Rel *rel; - Elf_Addr *where, target; + const Elf_Rel *rellim; + const Elf_Rel *rel; - if (!obj->irelative) + if (!obj->irelative) + return (0); + obj->irelative = false; + rellim = (const Elf_Rel *)((const char *)obj->pltrel + obj->pltrelsize); + for (rel = obj->pltrel; rel < rellim; rel++) { + if (ELF_R_TYPE(rel->r_info) == R_386_IRELATIVE) + reloc_iresolve_one(obj, rel, lockstate); + } return (0); - rellim = (const Elf_Rel *)((const char *)obj->pltrel + obj->pltrelsize); - for (rel = obj->pltrel; rel < rellim; rel++) { - switch (ELF_R_TYPE(rel->r_info)) { - case R_386_IRELATIVE: - where = (Elf_Addr *)(obj->relocbase + rel->r_offset); - lock_release(rtld_bind_lock, lockstate); - target = call_ifunc_resolver(obj->relocbase + *where); - wlock_acquire(rtld_bind_lock, lockstate); - *where = target; - break; +} + +int +reloc_iresolve_nonplt(Obj_Entry *obj, RtldLockState *lockstate) +{ + const Elf_Rel *rellim; + const Elf_Rel *rel; + + if (!obj->irelative_nonplt) + return (0); + obj->irelative_nonplt = false; + rellim = (const Elf_Rel *)((const char *)obj->rel + obj->relsize); + for (rel = obj->rel; rel < rellim; rel++) { + if (ELF_R_TYPE(rel->r_info) == R_386_IRELATIVE) + reloc_iresolve_one(obj, rel, lockstate); } - } - obj->irelative = false; - return (0); + return (0); } int Modified: stable/12/libexec/rtld-elf/mips/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/mips/reloc.c Thu Feb 20 01:24:45 2020 (r358141) +++ stable/12/libexec/rtld-elf/mips/reloc.c Thu Feb 20 01:27:35 2020 (r358142) @@ -723,6 +723,15 @@ reloc_iresolve(Obj_Entry *obj __unused, } int +reloc_iresolve_nonplt(Obj_Entry *obj __unused, + struct Struct_RtldLockState *lockstate __unused) +{ + + /* XXX not implemented */ + return (0); +} + +int reloc_gnu_ifunc(Obj_Entry *obj __unused, int flags __unused, struct Struct_RtldLockState *lockstate __unused) { Modified: stable/12/libexec/rtld-elf/powerpc/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/powerpc/reloc.c Thu Feb 20 01:24:45 2020 (r358141) +++ stable/12/libexec/rtld-elf/powerpc/reloc.c Thu Feb 20 01:27:35 2020 (r358142) @@ -540,6 +540,13 @@ reloc_iresolve(Obj_Entry *obj __unused, } int +reloc_iresolve_nonplt(Obj_Entry *obj __unused, + struct Struct_RtldLockState *lockstate __unused) +{ + return (0); +} + +int reloc_gnu_ifunc(Obj_Entry *obj __unused, int flags __unused, struct Struct_RtldLockState *lockstate __unused) { Modified: stable/12/libexec/rtld-elf/powerpc64/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/powerpc64/reloc.c Thu Feb 20 01:24:45 2020 (r358141) +++ stable/12/libexec/rtld-elf/powerpc64/reloc.c Thu Feb 20 01:27:35 2020 (r358142) @@ -513,6 +513,13 @@ reloc_gnu_ifunc(Obj_Entry *obj __unused, int flags __u return (0); } +int +reloc_iresolve_nonplt(Obj_Entry *obj __unused, + struct Struct_RtldLockState *lockstate __unused) +{ + return (0); +} + void init_pltgot(Obj_Entry *obj) { Modified: stable/12/libexec/rtld-elf/riscv/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/riscv/reloc.c Thu Feb 20 01:24:45 2020 (r358141) +++ stable/12/libexec/rtld-elf/riscv/reloc.c Thu Feb 20 01:27:35 2020 (r358142) @@ -212,6 +212,15 @@ reloc_iresolve(Obj_Entry *obj __unused, } int +reloc_iresolve_nonplt(Obj_Entry *obj __unused, + struct Struct_RtldLockState *lockstate __unused) +{ + + /* XXX not implemented */ + return (0); +} + +int reloc_gnu_ifunc(Obj_Entry *obj __unused, int flags __unused, struct Struct_RtldLockState *lockstate __unused) { Modified: stable/12/libexec/rtld-elf/rtld.c ============================================================================== --- stable/12/libexec/rtld-elf/rtld.c Thu Feb 20 01:24:45 2020 (r358141) +++ stable/12/libexec/rtld-elf/rtld.c Thu Feb 20 01:27:35 2020 (r358142) @@ -2987,10 +2987,13 @@ resolve_object_ifunc(Obj_Entry *obj, bool bind_now, in if (obj->ifuncs_resolved) return (0); obj->ifuncs_resolved = true; - if (!obj->irelative && !((obj->bind_now || bind_now) && obj->gnu_ifunc)) + if (!obj->irelative && !obj->irelative_nonplt && + !((obj->bind_now || bind_now) && obj->gnu_ifunc)) return (0); if (obj_disable_relro(obj) == -1 || (obj->irelative && reloc_iresolve(obj, lockstate) == -1) || + (obj->irelative_nonplt && reloc_iresolve_nonplt(obj, + lockstate) == -1) || ((obj->bind_now || bind_now) && obj->gnu_ifunc && reloc_gnu_ifunc(obj, flags, lockstate) == -1) || obj_enforce_relro(obj) == -1) Modified: stable/12/libexec/rtld-elf/rtld.h ============================================================================== --- stable/12/libexec/rtld-elf/rtld.h Thu Feb 20 01:24:45 2020 (r358141) +++ stable/12/libexec/rtld-elf/rtld.h Thu Feb 20 01:27:35 2020 (r358142) @@ -265,6 +265,7 @@ typedef struct Struct_Obj_Entry { bool dag_inited : 1; /* Object has its DAG initialized. */ bool filtees_loaded : 1; /* Filtees loaded */ bool irelative : 1; /* Object has R_MACHDEP_IRELATIVE relocs */ + bool irelative_nonplt : 1; /* Object has R_MACHDEP_IRELATIVE non-plt relocs */ bool gnu_ifunc : 1; /* Object has references to STT_GNU_IFUNC */ bool non_plt_gnu_ifunc : 1; /* Object has non-plt IFUNC references */ bool ifuncs_resolved : 1; /* Object ifuncs were already resolved */ @@ -406,6 +407,7 @@ int reloc_non_plt(Obj_Entry *, Obj_Entry *, int flags, int reloc_plt(Obj_Entry *, int flags, struct Struct_RtldLockState *); int reloc_jmpslots(Obj_Entry *, int flags, struct Struct_RtldLockState *); int reloc_iresolve(Obj_Entry *, struct Struct_RtldLockState *); +int reloc_iresolve_nonplt(Obj_Entry *, struct Struct_RtldLockState *); int reloc_gnu_ifunc(Obj_Entry *, int flags, struct Struct_RtldLockState *); void ifunc_init(Elf_Auxinfo[__min_size(AT_COUNT)]); void pre_init(void); Modified: stable/12/libexec/rtld-elf/sparc64/reloc.c ============================================================================== --- stable/12/libexec/rtld-elf/sparc64/reloc.c Thu Feb 20 01:24:45 2020 (r358141) +++ stable/12/libexec/rtld-elf/sparc64/reloc.c Thu Feb 20 01:27:35 2020 (r358142) @@ -570,6 +570,15 @@ reloc_iresolve(Obj_Entry *obj __unused, } int +reloc_iresolve_nonplt(Obj_Entry *obj __unused, + struct Struct_RtldLockState *lockstate __unused) +{ + + /* XXX not implemented */ + return (0); +} + +int reloc_gnu_ifunc(Obj_Entry *obj __unused, int flags __unused, struct Struct_RtldLockState *lockstate __unused) { From owner-svn-src-all@freebsd.org Thu Feb 20 01:33:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5788424BC9C; Thu, 20 Feb 2020 01:33:02 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NHCf1bH7z3N3R; Thu, 20 Feb 2020 01:33: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 EA37E19FE1; Thu, 20 Feb 2020 01:33:01 +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 01K1X10w092259; Thu, 20 Feb 2020 01:33:01 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1X1wC092258; Thu, 20 Feb 2020 01:33:01 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202002200133.01K1X1wC092258@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 20 Feb 2020 01:33:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358143 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358143 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:33:02 -0000 Author: imp Date: Thu Feb 20 01:33:01 2020 New Revision: 358143 URL: https://svnweb.freebsd.org/changeset/base/358143 Log: Don't convert all lower-layer errors to EIO. Don't convert all lower layer errors to EIO. Instead, pass the actual error up the stack. This will allow the upper layers that look for ENXIO to react properly to that signal from the lower layers and, for UFS, unmount the filesystem. Reviewed by: kib@ Differential Revision: https://reviews.freebsd.org/D23755 Modified: head/sys/vm/vnode_pager.c Modified: head/sys/vm/vnode_pager.c ============================================================================== --- head/sys/vm/vnode_pager.c Thu Feb 20 01:27:35 2020 (r358142) +++ head/sys/vm/vnode_pager.c Thu Feb 20 01:33:01 2020 (r358143) @@ -628,8 +628,11 @@ vnode_pager_input_smlfs(vm_object_t object, vm_page_t bwait(bp, PVM, "vnsrd"); - if ((bp->b_ioflags & BIO_ERROR) != 0) - error = EIO; + if ((bp->b_ioflags & BIO_ERROR) != 0) { + KASSERT(bp->b_error != 0, + ("%s: buf error but b_error == 0\n", __func__)); + error = bp->b_error; + } /* * free the buffer header back to the swap buffer pool @@ -1113,7 +1116,9 @@ vnode_pager_generic_getpages_done(struct buf *bp) off_t tfoff, nextoff; int i, error; - error = (bp->b_ioflags & BIO_ERROR) != 0 ? EIO : 0; + KASSERT((bp->b_ioflags & BIO_ERROR) == 0 || bp->b_error != 0, + ("%s: buf error but b_error == 0\n", __func__)); + error = (bp->b_ioflags & BIO_ERROR) != 0 ? bp->b_error : 0; object = bp->b_vp->v_object; if (error == 0 && bp->b_bcount != bp->b_npages * PAGE_SIZE) { From owner-svn-src-all@freebsd.org Thu Feb 20 01:34:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 918DD24BDE4; Thu, 20 Feb 2020 01:34:30 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NHFL3M6lz3Q1T; Thu, 20 Feb 2020 01:34:30 +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 6748019FE8; Thu, 20 Feb 2020 01:34:30 +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 01K1YUmN092381; Thu, 20 Feb 2020 01:34:30 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1YUfh092380; Thu, 20 Feb 2020 01:34:30 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200134.01K1YUfh092380@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:34:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358144 - stable/12/usr.sbin/pciconf X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/usr.sbin/pciconf X-SVN-Commit-Revision: 358144 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:34:30 -0000 Author: kib Date: Thu Feb 20 01:34:29 2020 New Revision: 358144 URL: https://svnweb.freebsd.org/changeset/base/358144 Log: MFC r358022: pciconf: List names of all known extended PCIe capabilities. Modified: stable/12/usr.sbin/pciconf/cap.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/pciconf/cap.c ============================================================================== --- stable/12/usr.sbin/pciconf/cap.c Thu Feb 20 01:33:01 2020 (r358143) +++ stable/12/usr.sbin/pciconf/cap.c Thu Feb 20 01:34:29 2020 (r358144) @@ -959,20 +959,35 @@ static struct { uint16_t id; const char *name; } ecap_names[] = { + { PCIZ_AER, "AER" }, + { PCIZ_VC, "Virtual Channel" }, + { PCIZ_SERNUM, "Device Serial Number" }, { PCIZ_PWRBDGT, "Power Budgeting" }, { PCIZ_RCLINK_DCL, "Root Complex Link Declaration" }, { PCIZ_RCLINK_CTL, "Root Complex Internal Link Control" }, { PCIZ_RCEC_ASSOC, "Root Complex Event Collector ASsociation" }, { PCIZ_MFVC, "MFVC" }, + { PCIZ_VC2, "Virtual Channel 2" }, { PCIZ_RCRB, "RCRB" }, + { PCIZ_CAC, "Configuration Access Correction" }, { PCIZ_ACS, "ACS" }, { PCIZ_ARI, "ARI" }, { PCIZ_ATS, "ATS" }, + { PCIZ_SRIOV, "SRIOV" }, + { PCIZ_MRIOV, "MRIOV" }, { PCIZ_MULTICAST, "Multicast" }, + { PCIZ_PAGE_REQ, "Page Page Request" }, + { PCIZ_AMD, "AMD proprietary "}, { PCIZ_RESIZE_BAR, "Resizable BAR" }, { PCIZ_DPA, "DPA" }, { PCIZ_TPH_REQ, "TPH Requester" }, { PCIZ_LTR, "LTR" }, + { PCIZ_SEC_PCIE, "Secondary PCI Express" }, + { PCIZ_PMUX, "Protocol Multiplexing" }, + { PCIZ_PASID, "Process Address Space ID" }, + { PCIZ_LN_REQ, "LN Requester" }, + { PCIZ_DPC, "Downstream Port Containment" }, + { PCIZ_L1PM, "L1 PM Substates" }, { 0, NULL } }; From owner-svn-src-all@freebsd.org Thu Feb 20 01:35:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ADAEC24BEE5; Thu, 20 Feb 2020 01:35:31 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NHGW33Rhz3wcY; Thu, 20 Feb 2020 01:35:31 +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 5391019FEF; Thu, 20 Feb 2020 01:35:31 +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 01K1ZV6L092511; Thu, 20 Feb 2020 01:35:31 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1ZVRH092510; Thu, 20 Feb 2020 01:35:31 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200135.01K1ZVRH092510@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:35:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358145 - stable/11/usr.sbin/pciconf X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/usr.sbin/pciconf X-SVN-Commit-Revision: 358145 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:35:31 -0000 Author: kib Date: Thu Feb 20 01:35:30 2020 New Revision: 358145 URL: https://svnweb.freebsd.org/changeset/base/358145 Log: MFC r358022: pciconf: List names of all known extended PCIe capabilities. Modified: stable/11/usr.sbin/pciconf/cap.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/pciconf/cap.c ============================================================================== --- stable/11/usr.sbin/pciconf/cap.c Thu Feb 20 01:34:29 2020 (r358144) +++ stable/11/usr.sbin/pciconf/cap.c Thu Feb 20 01:35:30 2020 (r358145) @@ -950,20 +950,35 @@ static struct { uint16_t id; const char *name; } ecap_names[] = { + { PCIZ_AER, "AER" }, + { PCIZ_VC, "Virtual Channel" }, + { PCIZ_SERNUM, "Device Serial Number" }, { PCIZ_PWRBDGT, "Power Budgeting" }, { PCIZ_RCLINK_DCL, "Root Complex Link Declaration" }, { PCIZ_RCLINK_CTL, "Root Complex Internal Link Control" }, { PCIZ_RCEC_ASSOC, "Root Complex Event Collector ASsociation" }, { PCIZ_MFVC, "MFVC" }, + { PCIZ_VC2, "Virtual Channel 2" }, { PCIZ_RCRB, "RCRB" }, + { PCIZ_CAC, "Configuration Access Correction" }, { PCIZ_ACS, "ACS" }, { PCIZ_ARI, "ARI" }, { PCIZ_ATS, "ATS" }, + { PCIZ_SRIOV, "SRIOV" }, + { PCIZ_MRIOV, "MRIOV" }, { PCIZ_MULTICAST, "Multicast" }, + { PCIZ_PAGE_REQ, "Page Page Request" }, + { PCIZ_AMD, "AMD proprietary "}, { PCIZ_RESIZE_BAR, "Resizable BAR" }, { PCIZ_DPA, "DPA" }, { PCIZ_TPH_REQ, "TPH Requester" }, { PCIZ_LTR, "LTR" }, + { PCIZ_SEC_PCIE, "Secondary PCI Express" }, + { PCIZ_PMUX, "Protocol Multiplexing" }, + { PCIZ_PASID, "Process Address Space ID" }, + { PCIZ_LN_REQ, "LN Requester" }, + { PCIZ_DPC, "Downstream Port Containment" }, + { PCIZ_L1PM, "L1 PM Substates" }, { 0, NULL } }; From owner-svn-src-all@freebsd.org Thu Feb 20 01:38:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BB53E24C45F; Thu, 20 Feb 2020 01:38:58 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NHLV2YgBz42hj; Thu, 20 Feb 2020 01:38:58 +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 48C751A018; Thu, 20 Feb 2020 01:38:58 +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 01K1cw5g092717; Thu, 20 Feb 2020 01:38:58 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1cvGV092711; Thu, 20 Feb 2020 01:38:57 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200138.01K1cvGV092711@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:38:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358146 - in stable/12/sys/amd64/vmm: . io X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/12/sys/amd64/vmm: . io X-SVN-Commit-Revision: 358146 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:38:58 -0000 Author: kib Date: Thu Feb 20 01:38:56 2020 New Revision: 358146 URL: https://svnweb.freebsd.org/changeset/base/358146 Log: MFC r357865: vmm: Add Hygon Dhyana support. Modified: stable/12/sys/amd64/vmm/io/iommu.c stable/12/sys/amd64/vmm/vmm.c stable/12/sys/amd64/vmm/vmm_stat.c stable/12/sys/amd64/vmm/vmm_util.c stable/12/sys/amd64/vmm/vmm_util.h stable/12/sys/amd64/vmm/x86.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/amd64/vmm/io/iommu.c ============================================================================== --- stable/12/sys/amd64/vmm/io/iommu.c Thu Feb 20 01:35:30 2020 (r358145) +++ stable/12/sys/amd64/vmm/io/iommu.c Thu Feb 20 01:38:56 2020 (r358146) @@ -184,7 +184,7 @@ iommu_init(void) if (vmm_is_intel()) ops = &iommu_ops_intel; - else if (vmm_is_amd()) + else if (vmm_is_svm()) ops = &iommu_ops_amd; else ops = NULL; Modified: stable/12/sys/amd64/vmm/vmm.c ============================================================================== --- stable/12/sys/amd64/vmm/vmm.c Thu Feb 20 01:35:30 2020 (r358145) +++ stable/12/sys/amd64/vmm/vmm.c Thu Feb 20 01:38:56 2020 (r358146) @@ -347,7 +347,7 @@ vmm_init(void) if (vmm_is_intel()) ops = &vmm_ops_intel; - else if (vmm_is_amd()) + else if (vmm_is_svm()) ops = &vmm_ops_amd; else return (ENXIO); Modified: stable/12/sys/amd64/vmm/vmm_stat.c ============================================================================== --- stable/12/sys/amd64/vmm/vmm_stat.c Thu Feb 20 01:35:30 2020 (r358145) +++ stable/12/sys/amd64/vmm/vmm_stat.c Thu Feb 20 01:38:56 2020 (r358146) @@ -67,7 +67,7 @@ vmm_stat_register(void *arg) if (vst->scope == VMM_STAT_SCOPE_INTEL && !vmm_is_intel()) return; - if (vst->scope == VMM_STAT_SCOPE_AMD && !vmm_is_amd()) + if (vst->scope == VMM_STAT_SCOPE_AMD && !vmm_is_svm()) return; if (vst_num_elems + vst->nelems >= MAX_VMM_STAT_ELEMS) { Modified: stable/12/sys/amd64/vmm/vmm_util.c ============================================================================== --- stable/12/sys/amd64/vmm/vmm_util.c Thu Feb 20 01:35:30 2020 (r358145) +++ stable/12/sys/amd64/vmm/vmm_util.c Thu Feb 20 01:38:56 2020 (r358146) @@ -46,9 +46,10 @@ vmm_is_intel(void) } bool -vmm_is_amd(void) +vmm_is_svm(void) { - return (strcmp(cpu_vendor, "AuthenticAMD") == 0); + return (strcmp(cpu_vendor, "AuthenticAMD") == 0 || + strcmp(cpu_vendor, "HygonGenuine") == 0); } bool Modified: stable/12/sys/amd64/vmm/vmm_util.h ============================================================================== --- stable/12/sys/amd64/vmm/vmm_util.h Thu Feb 20 01:35:30 2020 (r358145) +++ stable/12/sys/amd64/vmm/vmm_util.h Thu Feb 20 01:38:56 2020 (r358146) @@ -34,7 +34,7 @@ struct trapframe; bool vmm_is_intel(void); -bool vmm_is_amd(void); +bool vmm_is_svm(void); bool vmm_supports_1G_pages(void); void dump_trapframe(struct trapframe *tf); Modified: stable/12/sys/amd64/vmm/x86.c ============================================================================== --- stable/12/sys/amd64/vmm/x86.c Thu Feb 20 01:35:30 2020 (r358145) +++ stable/12/sys/amd64/vmm/x86.c Thu Feb 20 01:38:56 2020 (r358146) @@ -135,7 +135,7 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, break; case CPUID_8000_0008: cpuid_count(*eax, *ecx, regs); - if (vmm_is_amd()) { + if (vmm_is_svm()) { /* * As on Intel (0000_0007:0, EDX), mask out * unsupported or unsafe AMD extended features @@ -234,7 +234,7 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, case CPUID_8000_001D: /* AMD Cache topology, like 0000_0004 for Intel. */ - if (!vmm_is_amd()) + if (!vmm_is_svm()) goto default_leaf; /* @@ -276,8 +276,11 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, break; case CPUID_8000_001E: - /* AMD Family 16h+ additional identifiers */ - if (!vmm_is_amd() || CPUID_TO_FAMILY(cpu_id) < 0x16) + /* + * AMD Family 16h+ and Hygon Family 18h additional + * identifiers. + */ + if (!vmm_is_svm() || CPUID_TO_FAMILY(cpu_id) < 0x16) goto default_leaf; vm_get_topology(vm, &sockets, &cores, &threads, From owner-svn-src-all@freebsd.org Thu Feb 20 01:39:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6218D24C57E; Thu, 20 Feb 2020 01:39:49 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NHMT16C8z444x; Thu, 20 Feb 2020 01:39:49 +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 EDDA81A01F; Thu, 20 Feb 2020 01:39:48 +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 01K1dmQE092810; Thu, 20 Feb 2020 01:39:48 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1dmeO092808; Thu, 20 Feb 2020 01:39:48 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200139.01K1dmeO092808@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:39:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358147 - in stable/12/usr.sbin: bhyve bhyvectl X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/12/usr.sbin: bhyve bhyvectl X-SVN-Commit-Revision: 358147 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:39:49 -0000 Author: kib Date: Thu Feb 20 01:39:48 2020 New Revision: 358147 URL: https://svnweb.freebsd.org/changeset/base/358147 Log: MFC r357866: bhyve, bhyvectl: Add Hygon Dhyana support. Modified: stable/12/usr.sbin/bhyve/xmsr.c stable/12/usr.sbin/bhyvectl/bhyvectl.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/bhyve/xmsr.c ============================================================================== --- stable/12/usr.sbin/bhyve/xmsr.c Thu Feb 20 01:38:56 2020 (r358146) +++ stable/12/usr.sbin/bhyve/xmsr.c Thu Feb 20 01:39:48 2020 (r358147) @@ -45,7 +45,7 @@ __FBSDID("$FreeBSD$"); #include "xmsr.h" -static int cpu_vendor_intel, cpu_vendor_amd; +static int cpu_vendor_intel, cpu_vendor_amd, cpu_vendor_hygon; int emulate_wrmsr(struct vmctx *ctx, int vcpu, uint32_t num, uint64_t val) @@ -63,7 +63,7 @@ emulate_wrmsr(struct vmctx *ctx, int vcpu, uint32_t nu default: break; } - } else if (cpu_vendor_amd) { + } else if (cpu_vendor_amd || cpu_vendor_hygon) { switch (num) { case MSR_HWCR: /* @@ -127,7 +127,7 @@ emulate_rdmsr(struct vmctx *ctx, int vcpu, uint32_t nu error = -1; break; } - } else if (cpu_vendor_amd) { + } else if (cpu_vendor_amd || cpu_vendor_hygon) { switch (num) { case MSR_BIOS_SIGN: *val = 0; @@ -224,6 +224,8 @@ init_msr(void) error = 0; if (strcmp(cpu_vendor, "AuthenticAMD") == 0) { cpu_vendor_amd = 1; + } else if (strcmp(cpu_vendor, "HygonGenuine") == 0) { + cpu_vendor_hygon = 1; } else if (strcmp(cpu_vendor, "GenuineIntel") == 0) { cpu_vendor_intel = 1; } else { Modified: stable/12/usr.sbin/bhyvectl/bhyvectl.c ============================================================================== --- stable/12/usr.sbin/bhyvectl/bhyvectl.c Thu Feb 20 01:38:56 2020 (r358146) +++ stable/12/usr.sbin/bhyvectl/bhyvectl.c Thu Feb 20 01:39:48 2020 (r358147) @@ -657,6 +657,8 @@ cpu_vendor_intel(void) if (strcmp(cpu_vendor, "AuthenticAMD") == 0) { return (false); + } else if (strcmp(cpu_vendor, "HygonGenuine") == 0) { + return (false); } else if (strcmp(cpu_vendor, "GenuineIntel") == 0) { return (true); } else { From owner-svn-src-all@freebsd.org Thu Feb 20 01:41:13 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6445D24C74F; Thu, 20 Feb 2020 01:41:13 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NHP50k1vz46Tc; Thu, 20 Feb 2020 01:41:13 +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 DC87A1A169; Thu, 20 Feb 2020 01:41:12 +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 01K1fCpn095041; Thu, 20 Feb 2020 01:41:12 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1fC2T095040; Thu, 20 Feb 2020 01:41:12 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200141.01K1fC2T095040@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:41:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358148 - stable/12/sys/dev/amdpm X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/dev/amdpm X-SVN-Commit-Revision: 358148 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:41:13 -0000 Author: kib Date: Thu Feb 20 01:41:12 2020 New Revision: 358148 URL: https://svnweb.freebsd.org/changeset/base/358148 Log: MFC r357868: amdpm: Add Hygon Dhyana support. Modified: stable/12/sys/dev/amdpm/amdpm.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/amdpm/amdpm.c ============================================================================== --- stable/12/sys/dev/amdpm/amdpm.c Thu Feb 20 01:39:48 2020 (r358147) +++ stable/12/sys/dev/amdpm/amdpm.c Thu Feb 20 01:41:12 2020 (r358148) @@ -67,6 +67,8 @@ static int amdpm_debug = 0; #define AMDPM_DEVICEID_AMD768PM 0x7443 #define AMDPM_DEVICEID_AMD8111PM 0x746B +#define AMDPM_VENDORID_HYGON 0x1d94 + /* nVidia nForce chipset */ #define AMDPM_VENDORID_NVIDIA 0x10de #define AMDPM_DEVICEID_NF_SMB 0x01b4 @@ -199,7 +201,8 @@ amdpm_attach(device_t dev) pci_write_config(dev, AMDPCI_GEN_CONFIG_PM, val_b | AMDPCI_PMIOEN, 1); /* Allocate I/O space */ - if (pci_get_vendor(dev) == AMDPM_VENDORID_AMD) + if (pci_get_vendor(dev) == AMDPM_VENDORID_AMD || + pci_get_vendor(dev) == AMDPM_VENDORID_HYGON) amdpm_sc->rid = AMDPCI_PMBASE; else amdpm_sc->rid = NFPCI_PMBASE; From owner-svn-src-all@freebsd.org Thu Feb 20 01:42:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7F00824CA03; Thu, 20 Feb 2020 01:42:12 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NHQD2RH1z47yx; Thu, 20 Feb 2020 01:42:12 +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 17FF61A1C9; Thu, 20 Feb 2020 01:42:12 +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 01K1gBhU098558; Thu, 20 Feb 2020 01:42:11 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1gBYE098554; Thu, 20 Feb 2020 01:42:11 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200142.01K1gBYE098554@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:42:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358149 - in stable/12/sys/dev: amdsbwd intpm X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/12/sys/dev: amdsbwd intpm X-SVN-Commit-Revision: 358149 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:42:12 -0000 Author: kib Date: Thu Feb 20 01:42:11 2020 New Revision: 358149 URL: https://svnweb.freebsd.org/changeset/base/358149 Log: MFC r357869: amdsbwd, intpm: Add Hygon Dhyana support. Modified: stable/12/sys/dev/amdsbwd/amd_chipset.h stable/12/sys/dev/amdsbwd/amdsbwd.c stable/12/sys/dev/intpm/intpm.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/amdsbwd/amd_chipset.h ============================================================================== --- stable/12/sys/dev/amdsbwd/amd_chipset.h Thu Feb 20 01:41:12 2020 (r358148) +++ stable/12/sys/dev/amdsbwd/amd_chipset.h Thu Feb 20 01:42:11 2020 (r358149) @@ -146,3 +146,5 @@ #define AMDCZ_SMBUS_DEVID 0x790b1022 #define AMDCZ49_SMBUS_REVID 0x49 +#define HYGONCZ_SMBUS_DEVID 0x790b1d94 + Modified: stable/12/sys/dev/amdsbwd/amdsbwd.c ============================================================================== --- stable/12/sys/dev/amdsbwd/amdsbwd.c Thu Feb 20 01:41:12 2020 (r358148) +++ stable/12/sys/dev/amdsbwd/amdsbwd.c Thu Feb 20 01:42:11 2020 (r358149) @@ -59,6 +59,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include @@ -268,7 +270,8 @@ amdsbwd_identify(driver_t *driver, device_t parent) return; if (pci_get_devid(smb_dev) != AMDSB_SMBUS_DEVID && pci_get_devid(smb_dev) != AMDFCH_SMBUS_DEVID && - pci_get_devid(smb_dev) != AMDCZ_SMBUS_DEVID) + pci_get_devid(smb_dev) != AMDCZ_SMBUS_DEVID && + pci_get_devid(smb_dev) != HYGONCZ_SMBUS_DEVID) return; child = BUS_ADD_CHILD(parent, ISA_ORDER_SPECULATIVE, "amdsbwd", -1); @@ -377,6 +380,7 @@ static void amdsbwd_probe_fch41(device_t dev, struct resource *pmres, uint32_t *addr) { uint8_t val; + char buf[36]; val = pmio_read(pmres, AMDFCH41_PM_ISA_CTRL); if ((val & AMDFCH41_MMIO_EN) != 0) { @@ -415,7 +419,9 @@ amdsbwd_probe_fch41(device_t dev, struct resource *pmr amdsbwd_verbose_printf(dev, "AMDFCH41_PM_DECODE_EN3 value = %#04x\n", val); #endif - device_set_desc(dev, "AMD FCH Rev 41h+ Watchdog Timer"); + snprintf(buf, sizeof(buf), "%s FCH Rev 41h+ Watchdog Timer", + cpu_vendor_id == CPU_VENDOR_HYGON ? "Hygon" : "AMD"); + device_set_desc_copy(dev, buf); } static int Modified: stable/12/sys/dev/intpm/intpm.c ============================================================================== --- stable/12/sys/dev/intpm/intpm.c Thu Feb 20 01:41:12 2020 (r358148) +++ stable/12/sys/dev/intpm/intpm.c Thu Feb 20 01:42:11 2020 (r358149) @@ -102,6 +102,7 @@ const struct intsmb_device { { AMDSB_SMBUS_DEVID, "AMD SB600/7xx/8xx/9xx SMBus Controller" }, { AMDFCH_SMBUS_DEVID, "AMD FCH SMBus Controller" }, { AMDCZ_SMBUS_DEVID, "AMD FCH SMBus Controller" }, + { HYGONCZ_SMBUS_DEVID, "Hygon FCH SMBus Controller" }, }; static int @@ -243,6 +244,7 @@ intsmb_attach(device_t dev) break; case AMDFCH_SMBUS_DEVID: case AMDCZ_SMBUS_DEVID: + case HYGONCZ_SMBUS_DEVID: sc->sb8xx = 1; break; } From owner-svn-src-all@freebsd.org Thu Feb 20 01:44:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 14DBF24CD07; Thu, 20 Feb 2020 01:44: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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NHTG6swlz4ChR; Thu, 20 Feb 2020 01:44: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 E429F1A201; Thu, 20 Feb 2020 01:44: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 01K1ioAj098748; Thu, 20 Feb 2020 01:44:50 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1ioWk098747; Thu, 20 Feb 2020 01:44:50 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200144.01K1ioWk098747@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:44:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358150 - stable/12/sys/dev/amd_ecc_inject X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/dev/amd_ecc_inject X-SVN-Commit-Revision: 358150 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:44:51 -0000 Author: kib Date: Thu Feb 20 01:44:50 2020 New Revision: 358150 URL: https://svnweb.freebsd.org/changeset/base/358150 Log: MFC r357870: ecc_inject: Add Hygon Dhyana support. Modified: stable/12/sys/dev/amd_ecc_inject/ecc_inject.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/amd_ecc_inject/ecc_inject.c ============================================================================== --- stable/12/sys/dev/amd_ecc_inject/ecc_inject.c Thu Feb 20 01:42:11 2020 (r358149) +++ stable/12/sys/dev/amd_ecc_inject/ecc_inject.c Thu Feb 20 01:44:50 2020 (r358150) @@ -203,7 +203,8 @@ ecc_ei_load(void) { uint32_t val; - if (cpu_vendor_id != CPU_VENDOR_AMD || CPUID_TO_FAMILY(cpu_id) < 0x10) { + if ((cpu_vendor_id != CPU_VENDOR_AMD || CPUID_TO_FAMILY(cpu_id) < 0x10) && + cpu_vendor_id != CPU_VENDOR_HYGON) { printf("DRAM ECC error injection is not supported\n"); return (ENXIO); } From owner-svn-src-all@freebsd.org Thu Feb 20 01:45:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B5CE224CE69; Thu, 20 Feb 2020 01:45:56 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NHVX1t40z4F4B; Thu, 20 Feb 2020 01:45:56 +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 E93961A208; Thu, 20 Feb 2020 01:45:55 +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 01K1jt2C098994; Thu, 20 Feb 2020 01:45:55 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K1jtiC098993; Thu, 20 Feb 2020 01:45:55 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002200145.01K1jtiC098993@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 01:45:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358151 - stable/12/sys/dev/hyperv/vmbus/amd64 X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/dev/hyperv/vmbus/amd64 X-SVN-Commit-Revision: 358151 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 01:45:56 -0000 Author: kib Date: Thu Feb 20 01:45:55 2020 New Revision: 358151 URL: https://svnweb.freebsd.org/changeset/base/358151 Log: MFC r357871: hyperv: Add Hygon Dhyana support. Modified: stable/12/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c ============================================================================== --- stable/12/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c Thu Feb 20 01:44:50 2020 (r358150) +++ stable/12/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c Thu Feb 20 01:45:55 2020 (r358151) @@ -188,6 +188,7 @@ hyperv_tsc_tcinit(void *dummy __unused) switch (cpu_vendor_id) { case CPU_VENDOR_AMD: + case CPU_VENDOR_HYGON: hyperv_tsc_timecounter.tc_get_timecount = hyperv_tsc_timecount_mfence; tc64 = hyperv_tc64_tsc_mfence; From owner-svn-src-all@freebsd.org Thu Feb 20 03:01:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2F4C825032A; Thu, 20 Feb 2020 03:01:28 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NK9h0TFqz4M9t; Thu, 20 Feb 2020 03:01:28 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0604C1B110; Thu, 20 Feb 2020 03:01:28 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K31RuX043427; Thu, 20 Feb 2020 03:01:27 GMT (envelope-from hrs@FreeBSD.org) Received: (from hrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K31RTk043426; Thu, 20 Feb 2020 03:01:27 GMT (envelope-from hrs@FreeBSD.org) Message-Id: <202002200301.01K31RTk043426@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hrs set sender to hrs@FreeBSD.org using -f From: Hiroki Sato Date: Thu, 20 Feb 2020 03:01:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358152 - head/bin/sh X-SVN-Group: head X-SVN-Commit-Author: hrs X-SVN-Commit-Paths: head/bin/sh X-SVN-Commit-Revision: 358152 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 03:01:28 -0000 Author: hrs Date: Thu Feb 20 03:01:27 2020 New Revision: 358152 URL: https://svnweb.freebsd.org/changeset/base/358152 Log: Improve performance of "read" built-in command when using a seekable fd. The read built-in command calls read(2) with a 1-byte buffer because newline characters need to be detected even on a byte stream which comes from a non-seekable file descriptor. Because of this, the following script calls >6,000 read(2) to show a 6KiB file: while read IN; do echo "$IN"; done < /COPYRIGHT When the input byte stream is seekable, it is possible to read a data block and then reposition the file pointer to where a newline character found. This change adds a small buffer to do this and reduces the number of read(2) calls. Theoretically, multiple built-in commands reading the same seekable byte stream in a single pipe chain can share the buffer. However, this change just makes a single invocation of the read built-in allocate a buffer and deallocate it every time for simplicity. Although this causes read(2) to read the same regions multiple times, the performance penalty should be small compared to the reduction of read(2) calls. Reviewed by: jilles MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23747 Modified: head/bin/sh/miscbltin.c Modified: head/bin/sh/miscbltin.c ============================================================================== --- head/bin/sh/miscbltin.c Thu Feb 20 01:45:55 2020 (r358151) +++ head/bin/sh/miscbltin.c Thu Feb 20 03:01:27 2020 (r358152) @@ -66,10 +66,79 @@ __FBSDID("$FreeBSD$"); #undef eflag +#define READ_BUFLEN 1024 +struct fdctx { + int fd; + size_t off; /* offset in buf */ + size_t buflen; + char *ep; /* tail pointer */ + char buf[READ_BUFLEN]; +}; + +static void fdctx_init(int, struct fdctx *); +static void fdctx_destroy(struct fdctx *); +static ssize_t fdgetc(struct fdctx *, char *); int readcmd(int, char **); int umaskcmd(int, char **); int ulimitcmd(int, char **); +static void +fdctx_init(int fd, struct fdctx *fdc) +{ + off_t cur; + + /* Check if fd is seekable. */ + cur = lseek(fd, 0, SEEK_CUR); + *fdc = (struct fdctx){ + .fd = fd, + .buflen = (cur != -1) ? READ_BUFLEN : 1, + .ep = &fdc->buf[0], /* No data */ + }; +} + +static ssize_t +fdgetc(struct fdctx *fdc, char *c) +{ + ssize_t nread; + + if (&fdc->buf[fdc->off] == fdc->ep) { + nread = read(fdc->fd, fdc->buf, fdc->buflen); + if (nread > 0) { + fdc->off = 0; + fdc->ep = fdc->buf + nread; + } else + return (nread); + } + *c = fdc->buf[fdc->off++]; + + return (1); +} + +static void +fdctx_destroy(struct fdctx *fdc) +{ + size_t residue; + + if (fdc->buflen > 1) { + /* + * Reposition the file offset. Here is the layout of buf: + * + * | off + * v + * |*****************|-------| + * buf ep buf+buflen + * |<- residue ->| + * + * off: current character + * ep: offset just after read(2) + * residue: length for reposition + */ + residue = (fdc->ep - fdc->buf) - fdc->off; + if (residue > 0) + (void) lseek(fdc->fd, -residue, SEEK_CUR); + } +} + /* * The read builtin. The -r option causes backslashes to be treated like * ordinary characters. @@ -108,6 +177,7 @@ readcmd(int argc __unused, char **argv __unused) fd_set ifds; ssize_t nread; int sig; + struct fdctx fdctx; rflag = 0; prompt = NULL; @@ -173,8 +243,9 @@ readcmd(int argc __unused, char **argv __unused) backslash = 0; STARTSTACKSTR(p); lastnonifs = lastnonifsws = -1; + fdctx_init(STDIN_FILENO, &fdctx); for (;;) { - nread = read(STDIN_FILENO, &c, 1); + nread = fdgetc(&fdctx, &c); if (nread == -1) { if (errno == EINTR) { sig = pendingsig; @@ -260,6 +331,7 @@ readcmd(int argc __unused, char **argv __unused) STARTSTACKSTR(p); lastnonifs = lastnonifsws = -1; } + fdctx_destroy(&fdctx); STACKSTRNUL(p); /* From owner-svn-src-all@freebsd.org Thu Feb 20 03:54:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7D69C251F4C; Thu, 20 Feb 2020 03:54:08 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NLLS2M4Nz4J2c; Thu, 20 Feb 2020 03:54:08 +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 432231BB9B; Thu, 20 Feb 2020 03:54:08 +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 01K3s8RQ077554; Thu, 20 Feb 2020 03:54:08 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K3s8ib077553; Thu, 20 Feb 2020 03:54:08 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <202002200354.01K3s8ib077553@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 20 Feb 2020 03:54:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358153 - head/usr.sbin/services_mkdb X-SVN-Group: head X-SVN-Commit-Author: pfg X-SVN-Commit-Paths: head/usr.sbin/services_mkdb X-SVN-Commit-Revision: 358153 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 03:54:08 -0000 Author: pfg Date: Thu Feb 20 03:54:07 2020 New Revision: 358153 URL: https://svnweb.freebsd.org/changeset/base/358153 Log: /etc/services: attempt bring the database to this century. Document better this file, updating the URL to the IANA registry and closely match the official services. For system ports (0 to 1023) we now try to follow the registry closely, noting some historical differences where applicable. For the User ports (1024 - 49151) we try to keep some sensible balance only of services that are likely to be found on FreeBSD/UNIX systems. This attempts to strike a balance between complexity and usefulness. As a side effect: drop references to unofficial Kerberos IV which was EOL'ed on Oct 2006[1]. While it is conceivable some people may still use it in some very old FreeBSD machines that can't be replaced easily, the use of it is considered a security risk. Also drop the unofficial netatalk, which we supported long ago in the kernel but was dropped long ago. [1] https://web.mit.edu/kerberos/krb4-end-of-life.html MFC after: 3 weeks (likely to 12-stable only) Differential Revision: https://reviews.freebsd.org/D23621 Modified: head/usr.sbin/services_mkdb/services Modified: head/usr.sbin/services_mkdb/services ============================================================================== --- head/usr.sbin/services_mkdb/services Thu Feb 20 03:01:27 2020 (r358152) +++ head/usr.sbin/services_mkdb/services Thu Feb 20 03:54:07 2020 (r358153) @@ -1,65 +1,62 @@ # # Network services, Internet style # -# Note that it is presently the policy of IANA to assign a single well-known -# port number for both TCP and UDP; hence, most entries here have two entries -# even if the protocol doesn't support UDP operations. +# Service names and port numbers are used to distinguish between different +# services that run over transport protocols such as TCP, UDP, DCCP, and +# SCTP. # # The latest IANA port assignments can be gotten from # -# http://www.iana.org/assignments/port-numbers +# https://www.iana.org/assignments/service-names-port-numbers/ # -# The Well Known Ports are those from 0 through 1023. -# The Registered Ports are those from 1024 through 49151 -# The Dynamic and/or Private Ports are those from 49152 through 65535 +# System Ports are those from 0 through 1023. +# User Ports are those from 1024 through 49151. +# Dynamic and/or Private Ports are those from 49152 through 65535. # -# Kerberos services are for Kerberos v4, and are unofficial. Sites running -# v5 should uncomment v5 entries and comment v4 entries. +# Note that it is presently the policy of IANA to assign a single well-known +# port number for both TCP and UDP; hence, most entries here have two entries +# even if the protocol doesn't support UDP operations. # # $FreeBSD$ # From: @(#)services 5.8 (Berkeley) 5/9/91 # # WELL KNOWN PORT NUMBERS # -rtmp 1/ddp #Routing Table Maintenance Protocol tcpmux 1/tcp #TCP Port Service Multiplexer tcpmux 1/udp #TCP Port Service Multiplexer -nbp 2/ddp #Name Binding Protocol compressnet 2/tcp #Management Utility compressnet 2/udp #Management Utility compressnet 3/tcp #Compression Process compressnet 3/udp #Compression Process -echo 4/ddp #AppleTalk Echo Protocol rje 5/tcp #Remote Job Entry rje 5/udp #Remote Job Entry -zip 6/ddp #Zone Information Protocol -echo 7/sctp echo 7/tcp echo 7/udp -discard 9/sctp sink null +echo 7/sctp discard 9/tcp sink null discard 9/udp sink null +discard 9/sctp sink null systat 11/tcp users #Active Users systat 11/udp users #Active Users -daytime 13/sctp daytime 13/tcp daytime 13/udp +daytime 13/sctp qotd 17/tcp quote #Quote of the Day qotd 17/udp quote #Quote of the Day msp 18/tcp #Message Send Protocol msp 18/udp #Message Send Protocol -chargen 19/sctp ttytst source #Character Generator chargen 19/tcp ttytst source #Character Generator chargen 19/udp ttytst source #Character Generator -ftp-data 20/sctp #File Transfer [Default Data] +chargen 19/sctp ttytst source #Character Generator ftp-data 20/tcp #File Transfer [Default Data] ftp-data 20/udp #File Transfer [Default Data] -ftp 21/sctp #File Transfer [Control] +ftp-data 20/sctp #File Transfer [Default Data] ftp 21/tcp #File Transfer [Control] ftp 21/udp #File Transfer [Control] -ssh 22/sctp #Secure Shell Login +ftp 21/sctp #File Transfer [Control] ssh 22/tcp #Secure Shell Login ssh 22/udp #Secure Shell Login +ssh 22/sctp #Secure Shell Login telnet 23/tcp telnet 23/udp # 24/tcp any private mail system @@ -114,24 +111,22 @@ isi-gl 55/tcp #ISI Graphics Language isi-gl 55/udp #ISI Graphics Language xns-auth 56/tcp #XNS Authentication xns-auth 56/udp #XNS Authentication -# 57/tcp any private terminal access -# 57/udp any private terminal access +# 57/tcp any private terminal access +# 57/udp any private terminal access xns-mail 58/tcp #XNS Mail xns-mail 58/udp #XNS Mail # 59/tcp any private file service # 59/udp any private file service -ni-mail 61/tcp #NI MAIL -ni-mail 61/udp #NI MAIL acas 62/tcp #ACA Services acas 62/udp #ACA Services -whois++ 63/tcp -whois++ 63/udp +whoispp 63/tcp whois++ +whoispp 63/udp whois++ covia 64/tcp #Communications Integrator (CI) covia 64/udp #Communications Integrator (CI) tacacs-ds 65/tcp #TACACS-Database Service tacacs-ds 65/udp #TACACS-Database Service -sql*net 66/tcp #Oracle SQL*NET -sql*net 66/udp #Oracle SQL*NET +sql-net 66/tcp sql*net #Oracle SQL*NET / replacement +sql-net 66/udp sql*net #Oracle SQL*NET replacement bootps 67/tcp dhcps #Bootstrap Protocol Server bootps 67/udp dhcps #Bootstrap Protocol Server bootpc 68/tcp dhcpc #Bootstrap Protocol Client @@ -158,11 +153,9 @@ vettcp 78/tcp vettcp 78/udp finger 79/tcp finger 79/udp -http 80/sctp www www-http #World Wide Web HTTP http 80/tcp www www-http #World Wide Web HTTP http 80/udp www www-http #World Wide Web HTTP -hosts2-ns 81/tcp #HOSTS2 Name Server -hosts2-ns 81/udp #HOSTS2 Name Server +http 80/sctp www www-http #World Wide Web HTTP xfer 82/tcp #XFER Utility xfer 82/udp #XFER Utility mit-ml-dev 83/tcp #MIT ML Device @@ -195,8 +188,8 @@ dixie 96/tcp #DIXIE Protocol Specification dixie 96/udp #DIXIE Protocol Specification swift-rvf 97/tcp #Swift Remote Virtural File Protocol swift-rvf 97/udp #Swift Remote Virtural File Protocol -tacnews 98/tcp #TAC News, Unofficial: Red Hat linuxconf -tacnews 98/udp #TAC News, Unofficial: Red Hat linuxconf +tacnews 98/tcp #TAC News +tacnews 98/udp #TAC News metagram 99/tcp #Metagram Relay metagram 99/udp #Metagram Relay newacct 100/tcp #[unauthorized use] @@ -248,8 +241,8 @@ ansatrader 124/tcp #ANSA REX Trader ansatrader 124/udp #ANSA REX Trader locus-map 125/tcp #Locus PC-Interface Net Map Ser locus-map 125/udp #Locus PC-Interface Net Map Ser -unitary 126/tcp #Unisys Unitary Login -unitary 126/udp #Unisys Unitary Login +nxedit 126/tcp #NXEdit +nxedit 126/udp #NXEdit locus-con 127/tcp #Locus PC-Interface Conn Server locus-con 127/udp #Locus PC-Interface Conn Server gss-xlicen 128/tcp #GSS X License Verification @@ -266,8 +259,8 @@ statsrv 133/tcp #Statistics Service statsrv 133/udp #Statistics Service ingres-net 134/tcp #INGRES-NET Service ingres-net 134/udp #INGRES-NET Service -loc-srv 135/tcp epmap #Location Service -loc-srv 135/udp epmap #Location Service +epmap 135/tcp #DCE endpoint resolution +epmap 135/udp #DCE endpoint resolution profile 136/tcp #PROFILE Naming System profile 136/udp #PROFILE Naming System netbios-ns 137/tcp #NETBIOS Name Service @@ -284,20 +277,16 @@ bl-idm 142/tcp #Britton-Lee IDM bl-idm 142/udp #Britton-Lee IDM imap 143/tcp imap2 imap4 #Interim Mail Access Protocol v2 imap 143/udp imap2 imap4 #Interim Mail Access Protocol v2 -NeWS 144/tcp # Window System -NeWS 144/udp # Window System -#PROBLEMS!============================================================== -#uma 144/tcp #Universal Management Architecture -#uma 144/udp #Universal Management Architecture -#PROBLEMS!============================================================== +uma 144/tcp #Universal Management Architecture +uma 144/udp #Universal Management Architecture uaac 145/tcp #UAAC Protocol uaac 145/udp #UAAC Protocol iso-tp0 146/tcp iso-tp0 146/udp iso-ip 147/tcp iso-ip 147/udp -cronus 148/tcp jargon #CRONUS-SUPPORT -cronus 148/udp jargon #CRONUS-SUPPORT +jargon 148/tcp #Jargon +jargon 148/udp #Jargon aed-512 149/tcp #AED 512 Emulation Service aed-512 149/udp #AED 512 Emulation Service sql-net 150/tcp @@ -356,11 +345,11 @@ genrad-mux 176/tcp genrad-mux 176/udp xdmcp 177/tcp #X Display Manager Control Protocol xdmcp 177/udp #X Display Manager Control Protocol -NextStep 178/tcp nextstep NeXTStep #NextStep Window Server -NextStep 178/udp nextstep NeXTStep #NextStep Window Server -bgp 179/sctp #Border Gateway Protocol +nextstep 178/tcp #NextStep Window Server +nextstep 178/udp #NextStep Window Server bgp 179/tcp #Border Gateway Protocol bgp 179/udp #Border Gateway Protocol +bgp 179/sctp #Border Gateway Protocol ris 180/tcp #Intergraph ris 180/udp #Intergraph unify 181/tcp @@ -421,14 +410,10 @@ at-8 208/tcp #AppleTalk Unused at-8 208/udp #AppleTalk Unused qmtp 209/tcp #The Quick Mail Transfer Protocol qmtp 209/udp #The Quick Mail Transfer Protocol -#PROBLEMS!============================================================== -#tam 209/tcp #Trivial Authenticated Mail Protocol -#tam 209/udp #Trivial Authenticated Mail Protocol -#PROBLEMS!============================================================== -z39.50 210/tcp wais #ANSI Z39.50 -z39.50 210/udp wais #ANSI Z39.50 -914c/g 211/tcp #Texas Instruments 914C/G Terminal -914c/g 211/udp #Texas Instruments 914C/G Terminal +z39-50 210/tcp z39.50 wais #ANSI Z39.50 +z39-50 210/udp z39.50 wais #ANSI Z39.50 +914c-g 211/tcp 914c/g #Texas Instruments 914C/G Terminal +914c-g 211/udp 914c/g #Texas Instruments 914C/G Terminal anet 212/tcp #ATEXSSTR anet 212/udp #ATEXSSTR ipx 213/tcp @@ -459,14 +444,14 @@ direct 242/tcp direct 242/udp sur-meas 243/tcp #Survey Measurement sur-meas 243/udp #Survey Measurement -dayna 244/tcp -dayna 244/udp +inbusiness 244/tcp +inbusiness 244/udp link 245/tcp link 245/udp dsp3270 246/tcp #Display Systems Protocol dsp3270 246/udp #Display Systems Protocol -subntbcst_tftp 247/tcp #subntbcst_tftp -subntbcst_tftp 247/udp #subntbcst_tftp +subntbcst-tftp 247/tcp subntbcst_tftp #subntbcst_tftp +subntbcst-tftp 247/udp subntbcst_tftp #subntbcst_tftp bhfhs 248/tcp bhfhs 248/udp # 249-255 reserved @@ -494,7 +479,11 @@ td-service 267/tcp #Tobit David Service Layer td-service 267/udp #Tobit David Service Layer td-replica 268/tcp #Tobit David Replica td-replica 268/udp #Tobit David Replica -# 269-279 unassigned +manet 269/tcp #MANET Protocols [RFC5498] +manet 269/ucp #MANET Protocols [RFC5498] +gist 270/ucp #Q-mode encapsulation for [RFC5971] +pt-tls 271/tcp #Assessment (NEA) Posture +# 272-279 unassigned http-mgmt 280/tcp http-mgmt 280/udp personal-link 281/tcp @@ -541,9 +530,11 @@ pip 321/tcp pip 321/udp rtsps 322/tcp rtsps 322/udp -# 323-332 #unassigned -texar 333/tcp #Texar Security Port -texar 333/udp #Texar Security Port +rpki-rtr 323/tcp #Resource PKI to Router Protocol +rpki-rtr-tls 324/tcp #Resource PKI to Router Protocol over TLS +# 325-332 #unassigned +texar 333/tcp #Texar Security Port +texar 333/udp #Texar Security Port # 334-343 #unassigned pdap 344/tcp #Prospero Data Access Protocol pdap 344/udp #Prospero Data Access Protocol @@ -579,8 +570,8 @@ bhevent 357/tcp bhevent 357/udp shrinkwrap 358/tcp shrinkwrap 358/udp -tenebris_nts 359/tcp #Tenebris Network Trace Service -tenebris_nts 359/udp #Tenebris Network Trace Service +nsrmp 359/tcp #Network Security Risk Management Protocol +nsrmp 359/udp #Network Security Risk Management Protocol scoi2odialog 360/tcp scoi2odialog 360/udp semantix 361/tcp @@ -641,14 +632,14 @@ unidata-ldm 388/tcp #Unidata LDM Version 4 unidata-ldm 388/udp #Unidata LDM Version 4 ldap 389/tcp #Lightweight Directory Access Protocol ldap 389/udp #Lightweight Directory Access Protocol -uis 390/tcp -uis 390/udp +uis 390/tcp #UIS +uis 390/udp #UIS synotics-relay 391/tcp #SynOptics SNMP Relay Port synotics-relay 391/udp #SynOptics SNMP Relay Port synotics-broker 392/tcp #SynOptics Port Broker Port synotics-broker 392/udp #SynOptics Port Broker Port -dis 393/tcp #Data Interpretation System -dis 393/udp #Data Interpretation System +meta5 393/tcp #Meta5 +meta5 393/udp #Meta5 embl-ndt 394/tcp #EMBL Nucleic Data Transfer embl-ndt 394/udp #EMBL Nucleic Data Transfer netcp 395/tcp #NETscout Control Protocol @@ -661,8 +652,8 @@ kryptolan 398/tcp kryptolan 398/udp iso-tsap-c2 399/tcp #ISO-TSAP Class 2 iso-tsap-c2 399/udp #ISO-TSAP Class 2 -work-sol 400/tcp #Workstation Solutions -work-sol 400/udp #Workstation Solutions +osb-sd 400/tcp #Oracle Secure Backup +osb-sd 400/udp #Oracle Secure Backup ups 401/tcp #Uninterruptible Power Supply ups 401/udp #Uninterruptible Power Supply genie 402/tcp #Genie Protocol @@ -747,9 +738,9 @@ decvms-sysmgt 441/tcp decvms-sysmgt 441/udp cvc_hostd 442/tcp cvc_hostd 442/udp -https 443/sctp https 443/tcp https 443/udp +https 443/sctp snpp 444/tcp #Simple Network Paging Protocol snpp 444/udp #Simple Network Paging Protocol # [RFC1568] @@ -792,15 +783,11 @@ datasurfsrvsec 462/udp alpes 463/tcp alpes 463/udp # -kpasswd5 464/tcp # Kerberos (v5) -kpasswd5 464/udp # Kerberos (v5) -#PROBLEMS!============================================================== -# IANA has officially assigned these two ports as ``kpasswd'' -#kpasswd 464/tcp # Kerberos (v5) -#kpasswd 464/udp # Kerberos (v5) -#PROBLEMS!============================================================== -smtps 465/tcp #smtp protocol over TLS/SSL (was ssmtp) -smtps 465/udp #smtp protocol over TLS/SSL (was ssmtp) +kpasswd 464/tcp kpasswd5 # Kerberos (v5) +kpasswd 464/udp kpasswd5 # Kerberos (v5) +urd 465/tcp #URL Rendezvous Directory for SSM +submissions 465/tcp #Message Submission over TLS +igmpv3lite 465/udp #IGMP over UDP for SSM digital-vrc 466/tcp digital-vrc 466/udp mylex-mapd 467/tcp @@ -857,14 +844,14 @@ ticf-1 492/tcp #Transport Independent Convergence ticf-1 492/udp #Transport Independent Convergence for FNA ticf-2 493/tcp #Transport Independent Convergence for FNA ticf-2 493/udp #Transport Independent Convergence for FNA -pov-ray 494/tcp -pov-ray 494/udp +pov-ray 494/tcp #POV-Ray +pov-ray 494/udp #POV-Ray intecourier 495/tcp intecourier 495/udp pim-rp-disc 496/tcp pim-rp-disc 496/udp -dantz 497/tcp -dantz 497/udp +retrospect 497/tcp #Retrospect backup and restore service +retrospect 497/udp #Retrospect backup and restore service siam 498/tcp siam 498/udp iso-ill 499/tcp #ISO ILL Protocol @@ -964,8 +951,8 @@ netnews 532/tcp readnews netnews 532/udp readnews netwall 533/tcp #for emergency broadcasts netwall 533/udp #for emergency broadcasts -mm-admin 534/tcp #MegaMedia Admin -mm-admin 534/udp #MegaMedia Admin +windream 534/tcp #windream Admin +windream 534/udp #windream Admin iiop 535/tcp iiop 535/udp opalis-rdv 536/tcp @@ -1000,8 +987,8 @@ new-rwho 550/tcp new-who new-rwho 550/udp new-who cybercash 551/tcp cybercash 551/udp -deviceshare 552/tcp -deviceshare 552/udp +devshr-nts 552/tcp deviceshare +devshr-nts 552/udp deviceshare pirp 553/tcp pirp 553/udp rtsp 554/tcp #Real Time Stream Control Protocol @@ -1066,9 +1053,6 @@ philips-vc 583/tcp #Philips Video-Conferencing philips-vc 583/udp #Philips Video-Conferencing keyserver 584/tcp keyserver 584/udp -#imap4-ssl@585 never should have been allocated. See PR 46294. -#imap4-ssl 585/tcp #IMAP4+SSL (use of 585 is not recommended, -#imap4-ssl 585/udp # use 993 instead) password-chg 586/tcp password-chg 586/udp submission 587/tcp @@ -1147,8 +1131,8 @@ asf-rmcp 623/tcp #ASF Remote Management and Control asf-rmcp 623/udp #ASF Remote Management and Control Protocol cryptoadmin 624/tcp #Crypto Admin cryptoadmin 624/udp #Crypto Admin -dec_dlm 625/tcp #DEC DLM -dec_dlm 625/udp #DEC DLM +dec-dlm 625/tcp dec_dlm #DEC DLM +dec-dlm 625/udp dec_dlm #DEC DLM asia 626/tcp asia 626/udp passgo-tivoli 627/tcp #PassGo Tivoli @@ -1159,8 +1143,8 @@ qmqp 628/udp 3com-amp3 629/udp #3Com AMP3 rda 630/tcp rda 630/udp -ipp 631/tcp #IPP (Internet Printing Protocol) -ipp 631/udp #IPP (Internet Printing Protocol) +ipp 631/tcp ipps #IPP (Internet Printing Protocol) +ipp 631/udp ipps #IPP (Internet Printing Protocol) bmpp 632/tcp bmpp 632/udp servstat 633/tcp #Service Status update (Sterling Software) @@ -1327,14 +1311,17 @@ iris-xpcs 714/tcp #IRIS over XPCS iris-xpcs 714/udp #IRIS over XPCS iris-lwz 715/tcp iris-lwz 715/udp +pana 716/udp #PANA Messages +# 717-728 #unassigned netviewdm1 729/tcp #IBM NetView DM/6000 Server/Client netviewdm1 729/udp #IBM NetView DM/6000 Server/Client netviewdm2 730/tcp #IBM NetView DM/6000 send/tcp netviewdm2 730/udp #IBM NetView DM/6000 send/tcp netviewdm3 731/tcp #IBM NetView DM/6000 receive/tcp netviewdm3 731/udp #IBM NetView DM/6000 receive/tcp -netgw 741/tcp -netgw 741/udp +# 732-740 #unassigned +netgw 741/tcp #netGW +netgw 741/udp #netGW netrcs 742/tcp #Network based Rev. Cont. Sys. netrcs 742/udp #Network based Rev. Cont. Sys. flexlm 744/tcp #Flexible License Manager @@ -1345,18 +1332,11 @@ ris-cm 748/tcp #Russell Info Sci Calendar Manager ris-cm 748/udp #Russell Info Sci Calendar Manager kerberos-adm 749/tcp #Kerberos administration (v5) kerberos-adm 749/udp #Kerberos administration (v5) +rfile 750/tcp +loadav 750/udp kerberos-iv 750/udp kdc # Kerberos (v4) -kerberos-iv 750/tcp kdc # Kerberos (v4) -#PROBLEMS!======================================================== -#rfile 750/tcp -#loadav 750/udp -#PROBLEMS!======================================================== -kerberos_master 751/tcp # Kerberos `kadmin' (v4) -kerberos_master 751/udp # Kerberos `kadmin' (v4) -#PROBLEMS!======================================================== pump 751/tcp pump 751/udp -#PROBLEMS!======================================================== qrh 752/tcp qrh 752/udp rrh 753/tcp @@ -1366,19 +1346,14 @@ krb_prop 754/tcp krb5_prop # kerberos/v5 server pro tell 754/tcp #send #PROBLEMS!======================================================== tell 754/udp #send +# 755-757 #unassigned nlogin 758/tcp nlogin 758/udp con 759/tcp con 759/udp -krbupdate 760/tcp kreg # Kerberos (v4) registration -#PROBLEMS!======================================================== ns 760/tcp -#PROBLEMS!======================================================== ns 760/udp -kpasswd 761/tcp kpwd # Kerberos (v4) "passwd" -#PROBLEMS!======================================================== rxe 761/tcp -#PROBLEMS!======================================================== rxe 761/udp quotad 762/tcp quotad 762/udp @@ -1401,17 +1376,17 @@ cycleserv2 772/udp submit 773/tcp notify 773/udp rpasswd 774/tcp -acmaint_dbd 774/udp +acmaint-dbd 774/udp acmaint_dbd entomb 775/tcp -acmaint_transd 775/udp +acmaint-transd 775/udp acmaint_transd wpages 776/tcp wpages 776/udp multiling-http 777/tcp #Multiling HTTP multiling-http 777/udp #Multiling HTTP wpgs 780/tcp wpgs 780/udp -mdbs_daemon 800/tcp -mdbs_daemon 800/udp +mdbs-daemon 800/tcp mdbs_daemon +mdbs-daemon 800/udp mdbs_daemon device 801/tcp device 801/udp mbap-s 802/tcp # Modbus Application Protocol Secure @@ -1434,11 +1409,18 @@ dhcp-failover2 847/tcp #dhcp-failover 2 dhcp-failover2 847/udp #dhcp-failover 2 gdoi 848/tcp gdoi 848/udp +# 849-852 #unassigned +domain-s 853/tcp #DNS query-response protocol +domain-s 853/udp #DNS query-response protocol +# 855-859 #unassigned iscsi 860/tcp iscsi 860/udp owamp-control 861/tcp owamp-control 861/udp -supfilesrv 871/tcp # for SUP +twamp-control 862/tcp +twamp-control 862/udp +# 863-872 #unassigned +supfilesrv 871/tcp # for SUP rsync 873/tcp rsync 873/udp iclcnet-locate 886/tcp #ICL coNETion locate server @@ -1491,477 +1473,106 @@ puprouter 999/tcp puprouter 999/udp cadlock2 1000/tcp cadlock2 1000/udp +webpush 1001/tcp #HTTP Web Push surf 1010/tcp surf 1010/udp exp1 1021/tcp #RFC3692-style Experiment 1 (*) [RFC4727] exp1 1021/udp #RFC3692-style Experiment 1 (*) [RFC4727] +exp1 1021/sctp #RFC3692-style Experiment 1 (*) [RFC4727] exp2 1022/tcp #RFC3692-style Experiment 2 (*) [RFC4727] exp2 1022/udp #RFC3692-style Experiment 2 (*) [RFC4727] +exp2 1022/sctp #RFC3692-style Experiment 2 (*) [RFC4727] # # REGISTERED PORT NUMBERS # blackjack 1025/tcp #network blackjack blackjack 1025/udp #network blackjack -iad1 1030/tcp #BBN IAD -iad1 1030/udp #BBN IAD -iad2 1031/tcp #BBN IAD -iad2 1031/udp #BBN IAD -iad3 1032/tcp #BBN IAD -iad3 1032/udp #BBN IAD +cap 1026/tcp #Calendar Access Protocol +cap 1026/udp #Calendar Access Protocol +6a44 1027/udp #IPv6 Behind NAT44 CPEs +boinc-client 1043/tcp #BOINC Client Control +boinc-client 1043/udp #BOINC Client Control nim 1058/tcp nim 1058/udp nimreg 1059/tcp nimreg 1059/udp -instl_boots 1067/tcp #Installation Bootstrap Proto. Serv. -instl_boots 1067/udp #Installation Bootstrap Proto. Serv. -instl_bootc 1068/tcp #Installation Bootstrap Proto. Cli. -instl_bootc 1068/udp #Installation Bootstrap Proto. Cli. +instl-boots 1067/tcp instl_boots #Installation Bootstrap Proto. Serv. +instl-boots 1067/udp instl_boots #Installation Bootstrap Proto. Serv. +instl-bootc 1068/tcp instl_bootc #Installation Bootstrap Proto. Cli. +instl-bootc 1068/udp instl_bootc #Installation Bootstrap Proto. Cli. socks 1080/tcp socks 1080/udp -ansoft-lm-1 1083/tcp #Anasoft License Manager -ansoft-lm-1 1083/udp #Anasoft License Manager -ansoft-lm-2 1084/tcp #Anasoft License Manager -ansoft-lm-2 1084/udp #Anasoft License Manager webobjects 1085/tcp #Web Objects webobjects 1085/udp #Web Objects +ff-annunc 1089/tcp #FF Annunciation +ff-annunc 1089/udp #FF Annunciation +ff-fms 1090/tcp #FF Fieldbus Message Specification +ff-fms 1090/udp #FF Fieldbus Message Specification +ff-sm 1091/tcp #FF System Management +ff-sm 1091/udp #FF System Management +cnrprotocol 1096/tcp #Common Name Resolution Protocol +cnrprotocol 1096/udp #Common Name Resolution Protocol +rmiactivation 1098/tcp #RMI Activation +rmiactivation 1098/udp #RMI Activation +rmiregistry 1099/tcp #RMI Registry +rmiregistry 1099/udp #RMI Registry +mctp 1100/tcp #MCTP +mctp 1100/udp #MCTP kpop 1109/tcp #Unofficial kpop 1109/udp #Unofficial nfsd-status 1110/tcp #Cluster status info nfsd-keepalive 1110/udp #Client status info supfiledbg 1127/tcp # for SUP +c1222-acse 1153/tcp #ANSI C12.22 Port +c1222-acse 1153/udp #ANSI C12.22 Port nfa 1155/tcp #Network File Access nfa 1155/udp #Network File Access -cisco-ipsla 1167/sctp #Cisco IP SLAs Control Protocol cisco-ipsla 1167/tcp #Cisco IP SLAs Control Protocol cisco-ipsla 1167/udp #Cisco IP SLAs Control Protocol +cisco-ipsla 1167/sctp #Cisco IP SLAs Control Protocol +tripwire 1169/tcp #TRIPWIRE +tripwire 1169/udp #TRIPWIRE skkserv 1178/tcp #SKK (kanji input) +mysql-cluster 1186/tcp #MySQL Cluster Manager +mysql-cluster 1186/udp #MySQL Cluster Manager openvpn 1194/tcp #OpenVPN openvpn 1194/udp #OpenVPN -lupa 1212/tcp -lupa 1212/udp -nerv 1222/tcp #SNI R&D network -nerv 1222/udp #SNI R&D network -hermes 1248/tcp -hermes 1248/udp +rsf-1 1195/tcp #RSF-1 clustering +rsf-1 1195/udp #RSF-1 clustering +qt-serveradmin 1220/tcp #QT SERVER ADMIN +qt-serveradmin 1220/udp #QT SERVER ADMIN healthd 1281/tcp #healthd healthd 1281/udp #healthd -alta-ana-lm 1346/tcp #Alta Analytics License Manager -alta-ana-lm 1346/udp #Alta Analytics License Manager -bbn-mmc 1347/tcp #multi media conferencing -bbn-mmc 1347/udp #multi media conferencing -bbn-mmx 1348/tcp #multi media conferencing -bbn-mmx 1348/udp #multi media conferencing -sbook 1349/tcp #Registration Network Protocol -sbook 1349/udp #Registration Network Protocol -editbench 1350/tcp #Registration Network Protocol -editbench 1350/udp #Registration Network Protocol -equationbuilder 1351/tcp #Digital Tool Works (MIT) -equationbuilder 1351/udp #Digital Tool Works (MIT) -lotusnote 1352/tcp #Lotus Note -lotusnote 1352/udp #Lotus Note -relief 1353/tcp #Relief Consulting -relief 1353/udp #Relief Consulting -rightbrain 1354/tcp #RightBrain Software -rightbrain 1354/udp #RightBrain Software -intuitive-edge 1355/tcp #Intuitive Edge -intuitive-edge 1355/udp #Intuitive Edge -cuillamartin 1356/tcp #CuillaMartin Company -cuillamartin 1356/udp #CuillaMartin Company -pegboard 1357/tcp #Electronic PegBoard -pegboard 1357/udp #Electronic PegBoard -connlcli 1358/tcp -connlcli 1358/udp -ftsrv 1359/tcp -ftsrv 1359/udp -mimer 1360/tcp -mimer 1360/udp -linx 1361/tcp -linx 1361/udp -timeflies 1362/tcp -timeflies 1362/udp -ndm-requester 1363/tcp #Network DataMover Requester -ndm-requester 1363/udp #Network DataMover Requester -ndm-server 1364/tcp #Network DataMover Server -ndm-server 1364/udp #Network DataMover Server -adapt-sna 1365/tcp #Network Software Associates -adapt-sna 1365/udp #Network Software Associates -netware-csp 1366/tcp #Novell NetWare Comm Service Platform -netware-csp 1366/udp #Novell NetWare Comm Service Platform -dcs 1367/tcp -dcs 1367/udp -screencast 1368/tcp -screencast 1368/udp -gv-us 1369/tcp #GlobalView to Unix Shell -gv-us 1369/udp #GlobalView to Unix Shell -us-gv 1370/tcp #Unix Shell to GlobalView -us-gv 1370/udp #Unix Shell to GlobalView -fc-cli 1371/tcp #Fujitsu Config Protocol -fc-cli 1371/udp #Fujitsu Config Protocol -fc-ser 1372/tcp #Fujitsu Config Protocol -fc-ser 1372/udp #Fujitsu Config Protocol -chromagrafx 1373/tcp -chromagrafx 1373/udp -molly 1374/tcp #EPI Software Systems -molly 1374/udp #EPI Software Systems -bytex 1375/tcp -bytex 1375/udp -ibm-pps 1376/tcp #IBM Person to Person Software -ibm-pps 1376/udp #IBM Person to Person Software -cichlid 1377/tcp #Cichlid License Manager -cichlid 1377/udp #Cichlid License Manager -elan 1378/tcp #Elan License Manager -elan 1378/udp #Elan License Manager -dbreporter 1379/tcp #Integrity Solutions -dbreporter 1379/udp #Integrity Solutions -telesis-licman 1380/tcp #Telesis Network License Manager -telesis-licman 1380/udp #Telesis Network License Manager -apple-licman 1381/tcp #Apple Network License Manager -apple-licman 1381/udp #Apple Network License Manager -#udt_os 1382/tcp -#udt_os 1382/udp -gwha 1383/tcp #GW Hannaway Network License Manager -gwha 1383/udp #GW Hannaway Network License Manager -os-licman 1384/tcp #Objective Solutions License Manager -os-licman 1384/udp #Objective Solutions License Manager -atex_elmd 1385/tcp #Atex Publishing License Manager -atex_elmd 1385/udp #Atex Publishing License Manager -checksum 1386/tcp #CheckSum License Manager -checksum 1386/udp #CheckSum License Manager -cadsi-lm 1387/tcp #Computer Aided Design Software Inc LM -cadsi-lm 1387/udp #Computer Aided Design Software Inc LM -objective-dbc 1388/tcp #Objective Solutions DataBase Cache -objective-dbc 1388/udp #Objective Solutions DataBase Cache -iclpv-dm 1389/tcp #Document Manager -iclpv-dm 1389/udp #Document Manager -iclpv-sc 1390/tcp #Storage Controller -iclpv-sc 1390/udp #Storage Controller -iclpv-sas 1391/tcp #Storage Access Server -iclpv-sas 1391/udp #Storage Access Server -iclpv-pm 1392/tcp #Print Manager -iclpv-pm 1392/udp #Print Manager -iclpv-nls 1393/tcp #Network Log Server -iclpv-nls 1393/udp #Network Log Server -iclpv-nlc 1394/tcp #Network Log Client -iclpv-nlc 1394/udp #Network Log Client -iclpv-wsm 1395/tcp #PC Workstation Manager software -iclpv-wsm 1395/udp #PC Workstation Manager software -dvl-activemail 1396/tcp #DVL Active Mail -dvl-activemail 1396/udp #DVL Active Mail -audio-activmail 1397/tcp #Audio Active Mail -audio-activmail 1397/udp #Audio Active Mail -video-activmail 1398/tcp #Video Active Mail -video-activmail 1398/udp #Video Active Mail -cadkey-licman 1399/tcp #Cadkey License Manager -cadkey-licman 1399/udp #Cadkey License Manager -cadkey-tablet 1400/tcp #Cadkey Tablet Daemon -cadkey-tablet 1400/udp #Cadkey Tablet Daemon -goldleaf-licman 1401/tcp #Goldleaf License Manager -goldleaf-licman 1401/udp #Goldleaf License Manager -prm-sm-np 1402/tcp #Prospero Resource Manager -prm-sm-np 1402/udp #Prospero Resource Manager -prm-nm-np 1403/tcp #Prospero Resource Manager -prm-nm-np 1403/udp #Prospero Resource Manager -igi-lm 1404/tcp #Infinite Graphics License Manager -igi-lm 1404/udp #Infinite Graphics License Manager -ibm-res 1405/tcp #IBM Remote Execution Starter -ibm-res 1405/udp #IBM Remote Execution Starter -netlabs-lm 1406/tcp #NetLabs License Manager -netlabs-lm 1406/udp #NetLabs License Manager -dbsa-lm 1407/tcp #DBSA License Manager -dbsa-lm 1407/udp #DBSA License Manager -sophia-lm 1408/tcp #Sophia License Manager -sophia-lm 1408/udp #Sophia License Manager -here-lm 1409/tcp #Here License Manager -here-lm 1409/udp #Here License Manager -hiq 1410/tcp #HiQ License Manager -hiq 1410/udp #HiQ License Manager -af 1411/tcp #AudioFile -af 1411/udp #AudioFile -innosys 1412/tcp -innosys 1412/udp -innosys-acl 1413/tcp -innosys-acl 1413/udp -ibm-mqseries 1414/tcp #IBM MQSeries -ibm-mqseries 1414/udp #IBM MQSeries -dbstar 1415/tcp -dbstar 1415/udp -novell-lu6.2 1416/tcp #Novell LU6.2 -novell-lu6.2 1416/udp #Novell LU6.2 -timbuktu-srv1 1417/tcp #Timbuktu Service 1 Port -timbuktu-srv1 1417/udp #Timbuktu Service 1 Port -timbuktu-srv2 1418/tcp #Timbuktu Service 2 Port -timbuktu-srv2 1418/udp #Timbuktu Service 2 Port -timbuktu-srv3 1419/tcp #Timbuktu Service 3 Port -timbuktu-srv3 1419/udp #Timbuktu Service 3 Port -timbuktu-srv4 1420/tcp #Timbuktu Service 4 Port -timbuktu-srv4 1420/udp #Timbuktu Service 4 Port -gandalf-lm 1421/tcp #Gandalf License Manager -gandalf-lm 1421/udp #Gandalf License Manager -autodesk-lm 1422/tcp #Autodesk License Manager -autodesk-lm 1422/udp #Autodesk License Manager -essbase 1423/tcp #Essbase Arbor Software -essbase 1423/udp #Essbase Arbor Software -hybrid 1424/tcp #Hybrid Encryption Protocol -hybrid 1424/udp #Hybrid Encryption Protocol -zion-lm 1425/tcp #Zion Software License Manager -zion-lm 1425/udp #Zion Software License Manager -sas-1 1426/tcp #Satellite-data Acquisition System 1 -sas-1 1426/udp #Satellite-data Acquisition System 1 -mloadd 1427/tcp #mloadd monitoring tool -mloadd 1427/udp #mloadd monitoring tool -informatik-lm 1428/tcp #Informatik License Manager -informatik-lm 1428/udp #Informatik License Manager -nms 1429/tcp #Hypercom NMS -nms 1429/udp #Hypercom NMS -tpdu 1430/tcp #Hypercom TPDU -tpdu 1430/udp #Hypercom TPDU -rgtp 1431/tcp #Reverse Gossip Transport -rgtp 1431/udp #Reverse Gossip Transport -blueberry-lm 1432/tcp #Blueberry Software License Manager -blueberry-lm 1432/udp #Blueberry Software License Manager +pkt-krb-ipsec 1293/tcp #PKT-KRB-IPSec +pkt-krb-ipsec 1293/udp #PKT-KRB-IPSec +h323hostcallsc 1300/tcp #H323 Host Call Secure +h323hostcallsc 1300/udp #H323 Host Call Secure +jtag-server 1309/tcp #JTAG server +jtag-server 1309/udp #JTAG server +hkrb5gatekeeper 1318/tcp #krb5gatekeeper +krb5gatekeeper 1318/udp #krb5gatekeeper +netdb-export 1329/tcp #netdb-export +netdb-export 1329/udp #netdb-export +digital-notary 1335/tcp #Digital Notary Protocol +digital-notary 1335/udp #Digital Notary Protocol +icap 1344/tcp #ICAP +icap 1344/udp #ICAP ms-sql-s 1433/tcp #Microsoft-SQL-Server ms-sql-s 1433/udp #Microsoft-SQL-Server ms-sql-m 1434/tcp #Microsoft-SQL-Monitor ms-sql-m 1434/udp #Microsoft-SQL-Monitor -ibm-cics 1435/tcp -ibm-cics 1435/udp -sas-2 1436/tcp #Satellite-data Acquisition System 2 -sas-2 1436/udp #Satellite-data Acquisition System 2 -tabula 1437/tcp -tabula 1437/udp -eicon-server 1438/tcp #Eicon Security Agent/Server -eicon-server 1438/udp #Eicon Security Agent/Server -eicon-x25 1439/tcp #Eicon X25/SNA Gateway -eicon-x25 1439/udp #Eicon X25/SNA Gateway -eicon-slp 1440/tcp #Eicon Service Location Protocol -eicon-slp 1440/udp #Eicon Service Location Protocol -cadis-1 1441/tcp #Cadis License Management -cadis-1 1441/udp #Cadis License Management -cadis-2 1442/tcp #Cadis License Management -cadis-2 1442/udp #Cadis License Management -ies-lm 1443/tcp #Integrated Engineering Software -ies-lm 1443/udp #Integrated Engineering Software -marcam-lm 1444/tcp #Marcam License Management -marcam-lm 1444/udp #Marcam License Management -proxima-lm 1445/tcp #Proxima License Manager -proxima-lm 1445/udp #Proxima License Manager -ora-lm 1446/tcp #Optical Research Associates License Manager -ora-lm 1446/udp #Optical Research Associates License Manager -apri-lm 1447/tcp #Applied Parallel Research LM -apri-lm 1447/udp #Applied Parallel Research LM -oc-lm 1448/tcp #OpenConnect License Manager -oc-lm 1448/udp #OpenConnect License Manager -peport 1449/tcp -peport 1449/udp -dwf 1450/tcp #Tandem Distributed Workbench Facility -dwf 1450/udp #Tandem Distributed Workbench Facility -infoman 1451/tcp #IBM Information Management -infoman 1451/udp #IBM Information Management -gtegsc-lm 1452/tcp #GTE Government Systems License Man -gtegsc-lm 1452/udp #GTE Government Systems License Man -genie-lm 1453/tcp #Genie License Manager -genie-lm 1453/udp #Genie License Manager -interhdl_elmd 1454/tcp #interHDL License Manager -interhdl_elmd 1454/udp #interHDL License Manager -esl-lm 1455/tcp #ESL License Manager -esl-lm 1455/udp #ESL License Manager -dca 1456/tcp -dca 1456/udp -valisys-lm 1457/tcp #Valisys License Manager -valisys-lm 1457/udp #Valisys License Manager -nrcabq-lm 1458/tcp #Nichols Research Corp. -nrcabq-lm 1458/udp #Nichols Research Corp. -proshare1 1459/tcp #Proshare Notebook Application -proshare1 1459/udp #Proshare Notebook Application -proshare2 1460/tcp #Proshare Notebook Application -proshare2 1460/udp #Proshare Notebook Application -ibm_wrless_lan 1461/tcp #IBM Wireless LAN -ibm_wrless_lan 1461/udp #IBM Wireless LAN -world-lm 1462/tcp #World License Manager -world-lm 1462/udp #World License Manager -nucleus 1463/tcp -nucleus 1463/udp -msl_lmd 1464/tcp #MSL License Manager -msl_lmd 1464/udp #MSL License Manager -pipes 1465/tcp #Pipes Platform -pipes 1465/udp #Pipes Platform mfarlin@peerlogic.com -oceansoft-lm 1466/tcp #Ocean Software License Manager -oceansoft-lm 1466/udp #Ocean Software License Manager -csdmbase 1467/tcp -csdmbase 1467/udp -csdm 1468/tcp -csdm 1468/udp -aal-lm 1469/tcp #Active Analysis Limited License Manager -aal-lm 1469/udp #Active Analysis Limited License Manager -uaiact 1470/tcp #Universal Analytics -uaiact 1470/udp #Universal Analytics -csdmbase 1471/tcp -csdmbase 1471/udp -csdm 1472/tcp -csdm 1472/udp -openmath 1473/tcp -openmath 1473/udp -telefinder 1474/tcp -telefinder 1474/udp -taligent-lm 1475/tcp #Taligent License Manager -taligent-lm 1475/udp #Taligent License Manager -clvm-cfg 1476/tcp -clvm-cfg 1476/udp -ms-sna-server 1477/tcp -ms-sna-server 1477/udp -ms-sna-base 1478/tcp -ms-sna-base 1478/udp -dberegister 1479/tcp -dberegister 1479/udp -pacerforum 1480/tcp -pacerforum 1480/udp -airs 1481/tcp -airs 1481/udp -miteksys-lm 1482/tcp #Miteksys License Manager -miteksys-lm 1482/udp #Miteksys License Manager -afs 1483/tcp #AFS License Manager -afs 1483/udp #AFS License Manager -confluent 1484/tcp #Confluent License Manager -confluent 1484/udp #Confluent License Manager -lansource 1485/tcp -lansource 1485/udp -nms_topo_serv 1486/tcp -nms_topo_serv 1486/udp -localinfosrvr 1487/tcp -localinfosrvr 1487/udp -docstor 1488/tcp -docstor 1488/udp -dmdocbroker 1489/tcp -dmdocbroker 1489/udp -insitu-conf 1490/tcp -insitu-conf 1490/udp -anynetgateway 1491/tcp -anynetgateway 1491/udp -stone-design-1 1492/tcp -stone-design-1 1492/udp -netmap_lm 1493/tcp -netmap_lm 1493/udp -ica 1494/tcp -ica 1494/udp -cvc 1495/tcp -cvc 1495/udp -liberty-lm 1496/tcp -liberty-lm 1496/udp -rfx-lm 1497/tcp -rfx-lm 1497/udp -watcom-sql 1498/tcp -watcom-sql 1498/udp -fhc 1499/tcp #Federico Heinz Consultora -fhc 1499/udp #Federico Heinz Consultora -vlsi-lm 1500/tcp #VLSI License Manager -vlsi-lm 1500/udp #VLSI License Manager -sas-3 1501/tcp #Satellite-data Acquisition System 3 -sas-3 1501/udp #Satellite-data Acquisition System 3 -shivadiscovery 1502/tcp #Shiva -shivadiscovery 1502/udp #Shiva -imtc-mcs 1503/tcp #Databeam -imtc-mcs 1503/udp #Databeam -evb-elm 1504/tcp #EVB Software Engineering License Manager -evb-elm 1504/udp #EVB Software Engineering License Manager -funkproxy 1505/tcp #Funk Software, Inc. -funkproxy 1505/udp #Funk Software, Inc. -utcd 1506/tcp #Universal Time daemon (utcd) -utcd 1506/udp #Universal Time daemon (utcd) -symplex 1507/tcp -symplex 1507/udp -diagmond 1508/tcp -diagmond 1508/udp -robcad-lm 1509/tcp #Robcad, Ltd. License Manager -robcad-lm 1509/udp #Robcad, Ltd. License Manager -mvx-lm 1510/tcp #Midland Valley Exploration Ltd. Lic. Man. -mvx-lm 1510/udp #Midland Valley Exploration Ltd. Lic. Man. -3l-l1 1511/tcp -3l-l1 1511/udp -wins 1512/tcp #Microsoft's Windows Internet Name Service -wins 1512/udp #Microsoft's Windows Internet Name Service -fujitsu-dtc 1513/tcp #Fujitsu Systems Business of America, Inc -fujitsu-dtc 1513/udp #Fujitsu Systems Business of America, Inc -fujitsu-dtcns 1514/tcp #Fujitsu Systems Business of America, Inc -fujitsu-dtcns 1514/udp #Fujitsu Systems Business of America, Inc -ifor-protocol 1515/tcp -ifor-protocol 1515/udp -vpad 1516/tcp #Virtual Places Audio data -vpad 1516/udp #Virtual Places Audio data -vpac 1517/tcp #Virtual Places Audio control -vpac 1517/udp #Virtual Places Audio control -vpvd 1518/tcp #Virtual Places Video data -vpvd 1518/udp #Virtual Places Video data -vpvc 1519/tcp #Virtual Places Video control -vpvc 1519/udp #Virtual Places Video control -atm-zip-office 1520/tcp #atm zip office -atm-zip-office 1520/udp #atm zip office -ncube-lm 1521/tcp #nCube License Manager -ncube-lm 1521/udp #nCube License Manager -rna-lm 1522/tcp #Ricardo North America License Manager -rna-lm 1522/udp #Ricardo North America License Manager -cichild-lm 1523/tcp -cichild-lm 1523/udp ingreslock 1524/tcp #ingres ingreslock 1524/udp #ingres -prospero-np 1525/tcp #Prospero Directory Service non-priv -prospero-np 1525/udp #Prospero Directory Service non-priv #PROBLEMS!======================================================== orasrv 1525/tcp #oracle orasrv 1525/udp #oracle #PROBLEMS!======================================================== +prospero-np 1525/tcp #Prospero Directory Service non-priv +prospero-np 1525/udp #Prospero Directory Service non-priv pdap-np 1526/tcp #Prospero Data Access Prot non-priv pdap-np 1526/udp #Prospero Data Access Prot non-priv tlisrv 1527/tcp #oracle tlisrv 1527/udp #oracle -mciautoreg 1528/tcp -mciautoreg 1528/udp -support 1529/tcp prmsd gnatsd # cygnus bug tracker *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Feb 20 06:01:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 191C3254CEF; Thu, 20 Feb 2020 06:01:41 +0000 (UTC) (envelope-from yuripv@yuripv.me) Received: from wnew2-smtp.messagingengine.com (wnew2-smtp.messagingengine.com [64.147.123.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 48NP9c4CmCz4F0J; Thu, 20 Feb 2020 06:01:40 +0000 (UTC) (envelope-from yuripv@yuripv.me) Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailnew.west.internal (Postfix) with ESMTP id 5D01D72D; Thu, 20 Feb 2020 01:01:38 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Thu, 20 Feb 2020 01:01:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yuripv.me; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm1; bh=5 ooW/9Spj7eH5Xg+hjxVn2xcHdhScVP1MxxsRO0plDA=; b=ARrjFleyUF5otIEBF RLEZ6qYGPKBVouE5U86HH1mX7nZE5lLko1OTXkLr6dJaT6leN1G3RsdonXl0CMGA HA6eDM4toqLiNBWi2pz81NEIPNgq1wvI6GAhRS6208eYpKMyY1rNVcTd3zipPCXY Vcvw0CFXm/kJZ5Bpq2Gndx/OrPGj3usqDSf0Onfg7LYJPkjFUJldUIt+idWTTkci 5L7qBWKT76v6P7PDfKh11g1E6xHfvPtm3tKfUiNU9oofihSFgEtI+3Dnp7ULu2Tp NNqJgJl1dtWWjoHBHe7nbSWeXsCwqN1NKsyqE0apNawBwXvKsFksr5IxLn8OwO3T EWC6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=5ooW/9Spj7eH5Xg+hjxVn2xcHdhScVP1MxxsRO0pl DA=; b=YRahAc3ZyDV5tCQkfpS4d/qBh48C4j0GCUVCRz4grMQgSoXTsdoTqwyYO zhe/asZb9W/NgAevTv6PBEfd7M/TuG7NNQibOTr9e4JfJpVIsN/Uam0aFc8CxWuL rFTRE9c8OeWXcs2MQJpFYpXVmXu9hpJr9cyXhgwjlFNIgO8v0LmKvpFTS5qAyVLl +eMnbD+WNsk8HGBw4nMFPb/oCOUN7HEfhi0u5M2o1RFHSom9zyleGtM19bJgAokD NoyMsC2awC3U+gVdLAAugpxt1TDKXh1i3y2oPlDG1k/feCRWNrsKyxuB3mBdgSpD LqFc40gtFrRtqwd9H7uwm43TPTmTg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedrkedugdeludcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurheptggguffhjgffgffkfhfvofesthhqmh dthhdtvdenucfhrhhomhepjghurhhiucfrrghnkhhovhcuoeihuhhrihhpvheshihurhhi phhvrdhmvgeqnecuffhomhgrihhnpehfrhgvvggsshgurdhorhhgpdhmihhtrdgvughune cukfhppedujeekrdduheehrdegrdduledvnecuvehluhhsthgvrhfuihiivgeptdenucfr rghrrghmpehmrghilhhfrhhomhephihurhhiphhvseihuhhrihhpvhdrmhgv X-ME-Proxy: Received: from earth.yuripv.me (unknown [178.155.4.192]) by mail.messagingengine.com (Postfix) with ESMTPA id 0299F3280063; Thu, 20 Feb 2020 01:01:36 -0500 (EST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.60.0.2.5\)) Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb From: Yuri Pankov In-Reply-To: <202002200354.01K3s8ib077553@repo.freebsd.org> Date: Thu, 20 Feb 2020 09:01:34 +0300 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <48DC2EEA-22D6-4A0D-84CE-3F0770962DB3@yuripv.me> References: <202002200354.01K3s8ib077553@repo.freebsd.org> To: "Pedro F. Giffuni" X-Mailer: Apple Mail (2.3608.60.0.2.5) X-Rspamd-Queue-Id: 48NP9c4CmCz4F0J X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 06:01:41 -0000 On 20 Feb 2020, at 06:54, Pedro F. Giffuni wrote: >=20 > Author: pfg > Date: Thu Feb 20 03:54:07 2020 > New Revision: 358153 > URL: https://svnweb.freebsd.org/changeset/base/358153 >=20 > Log: > /etc/services: attempt bring the database to this century. >=20 > Document better this file, updating the URL to the IANA registry and = closely > match the official services. >=20 > For system ports (0 to 1023) we now try to follow the registry = closely, noting > some historical differences where applicable. > For the User ports (1024 - 49151) we try to keep some sensible = balance only > of services that are likely to be found on FreeBSD/UNIX systems. This = attempts > to strike a balance between complexity and usefulness. >=20 > As a side effect: drop references to unofficial Kerberos IV which was = EOL'ed > on Oct 2006[1]. While it is conceivable some people may still use it = in some > very old FreeBSD machines that can't be replaced easily, the use of = it is > considered a security risk. Also drop the unofficial netatalk, which = we > supported long ago in the kernel but was dropped long ago. >=20 > [1] https://web.mit.edu/kerberos/krb4-end-of-life.html >=20 > MFC after: 3 weeks (likely to 12-stable only) > Differential Revision: https://reviews.freebsd.org/D23621 >=20 > Modified: > head/usr.sbin/services_mkdb/services I noticed `mergemaster` failing, and it seems to be not happy with this = change: # make installconfig installing DIRS CONFSDIR install -d -m 0755 -o root -g wheel /etc install -C -o root -g wheel -m 644 = /usr/src/usr.sbin/services_mkdb/services /etc/services services_mkdb -l -q -o /var/db/services.db /etc/services services_mkdb: Ran out of protocols adding `divert'; recompile with = larger PROTOMAX *** Error code 1 Stop. make: stopped in /usr/src/usr.sbin/services_mkdb= From owner-svn-src-all@freebsd.org Thu Feb 20 06:03:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 72EF0254DDE; Thu, 20 Feb 2020 06:03:42 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NPCy21Vnz4FxN; Thu, 20 Feb 2020 06:03:42 +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 3B6241D34D; Thu, 20 Feb 2020 06:03:42 +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 01K63gTP054482; Thu, 20 Feb 2020 06:03:42 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K63fX9054481; Thu, 20 Feb 2020 06:03:41 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202002200603.01K63fX9054481@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Thu, 20 Feb 2020 06:03:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358154 - head/usr.sbin/services_mkdb X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/usr.sbin/services_mkdb X-SVN-Commit-Revision: 358154 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 06:03:42 -0000 Author: delphij Date: Thu Feb 20 06:03:41 2020 New Revision: 358154 URL: https://svnweb.freebsd.org/changeset/base/358154 Log: Bump PROTOMAX. MFC after: 3 weeks X-MFC-with: r358153 Modified: head/usr.sbin/services_mkdb/services_mkdb.c Modified: head/usr.sbin/services_mkdb/services_mkdb.c ============================================================================== --- head/usr.sbin/services_mkdb/services_mkdb.c Thu Feb 20 03:54:07 2020 (r358153) +++ head/usr.sbin/services_mkdb/services_mkdb.c Thu Feb 20 06:03:41 2020 (r358154) @@ -56,7 +56,7 @@ __FBSDID("$FreeBSD$"); static char tname[MAXPATHLEN]; #define PMASK 0xffff -#define PROTOMAX 5 +#define PROTOMAX 6 static void add(DB *, StringList *, size_t, const char *, size_t *, int); static StringList ***parseservices(const char *, StringList *); From owner-svn-src-all@freebsd.org Thu Feb 20 06:06:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DDAA1254E80; Thu, 20 Feb 2020 06:06:04 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from anubis.delphij.net (anubis.delphij.net [IPv6:2001:470:1:117::25]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "anubis.delphij.net", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NPGg1brlz4Gqm; Thu, 20 Feb 2020 06:06:02 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from p51.home.us.delphij.net (unknown [IPv6:2601:646:8600:58ba:e670:b8ff:fe5c:4e69]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id 97BBE45730; Wed, 19 Feb 2020 22:05:55 -0800 (PST) Reply-To: d@delphij.net Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb To: Yuri Pankov , "Pedro F. Giffuni" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202002200354.01K3s8ib077553@repo.freebsd.org> <48DC2EEA-22D6-4A0D-84CE-3F0770962DB3@yuripv.me> From: Xin Li Autocrypt: addr=delphij@delphij.net; keydata= mQINBFuSR4oBEACvvEgwRIHs6IcSP/yaDtySF78Ji3rP29qdiQsxhMsOtvtffdbS56VApIWO UFb3/iN2gA8HwLvrmjijN0HEoLVX7na1WARmxRYzQMtApsZIUTtx7hnUYlsi2F5odZa6CDW9 a954DLRzYxiUwYDcu5Zjl9bglK1H8e/N9uC0Vuigr4teWfh86brzOyf819QzwFVYfMIK4ihw QGwMvTzbyVuCFy+LENkmcVYni70oQy6rZ5ktSuYbuOFvu7inRRfhSWPHziV7k+bW88sJ7xhv lBlegcnhkSudWX2M8tZ3MO1PJOcyys0CJlsBY5Weiog2lIPi05h/E9pZ9mc1Vud17iqDaL6w RaggOUhuPfDGCdO5ro82W4BZGeQMRnRF5Ntk+t2ShIH4nn3xRLV0E5nziCiKlgiMqOrz/ZTL QTVbHrCuiwD+fSK14y0oHbkOLYTYLlgh1JbwfY2Ty7elOYiWzyeJ7sJh2dF91NSEneWIOys3 mBpuvtU3nSzzTvAB48VV+Nbg1CpIOgNlPjj7uhIum/Z/VjUaJEyaLpTIRh0MVJVcbP7hXSqZ NA35EEZZVnWEOYdycm4CmEdeNPWkrAf2Ya77iR5VLGypwMlsUMQPh+sKVWDD38M8stFGBBNm d01Hi74Bsq5hKan654dOqMt5eYklrVj0ucMzFQtus7oE502UswARAQABtBxYaW4gTEkgPGRl bHBoaWpAZGVscGhpai5uZXQ+iQJUBBMBCgA+FiEEceNg5NEMZIki80nQQHl/fJX0g08FAluS R/YCGwMFCQmuhAAFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQQHl/fJX0g0+2Og//bWpE F2V5/M5l6YW1T8oLcT9rIOH6oq9M0LMNRgFeiNNnilGIeeIgtOGBRueG4CZiZAvsRPJkrO70 1R2SrdkCIvwGUzUAxx1NfBWb+vgm4fgkW/MotGonceM5v0qfSKKXasWvDctkK28aG+IoQzmi FjXNW4+ju4zeQFYwD4ZDWqw9MqO0hVb24uW3dxtQhbfmOLgJ/PEDMQaFuANbW1c+iR0BQA3D Go/EeMY4kpN8on6Aqt/S/4JVltudfQ9OXdjQsC7netSaB9K3mHGt9aKAAB7RzlRY00DKkYS/ /eQwLzGPmK7yX13M68mMDjBs6mIR8t/E1S5OdBNhHRPNPlEbwugR4KaiCsN5yqzJoSV99fKY z2VyxjWPaG8yhHE+jmKUgIBKTfFUQEfkriQR4EASoeJ+soaMTiFDBij1Zw5n3ndLRFMB1ZCl fZLER36mAgW4m4kP83TWnDiJLxOxSOxifV8HpTFjff902H85cybg9KMwrfPDr6W19GGk5Vo1 fkza5krRMGbKWb7+74Evusi0ZxJLIOFwp5Y8eVqUMZaAD3f1ZX1M3pgXOp20QgAy+2KvMHij rLa4q+tMGRzYYD1BnFVSVdXAX5VOoTmHBcDz67DkuRwk2Byp1sgd407oEOmSwrNJlKS0TPCm xUJ2fdSQF+1/MMSRfee49vtMvz7cOrC5Ag0EW5JHigEQANiBmIFAfRNH3nzYNWC0yC+tfx3z sUwAsH1VaBM/cTib+yKtbBOSIlXWjJZWX3MHwoI/1LeGghB2mxkkX1L0pJ/vj1eXNR+sFZ32 0pYcl61Fxg/5fioG4QDTM4i3i7NR5PxDnc6UVaynSlII93DedRhZ1ROtdn4vyMgzsDiqhbL7 BthDOt5KxjqdRk4qRPSw7BovEqZLOcG5IJtf/zZUzRbM7SBljEbOAfekDGx1Br+RrYSD7/Ef Pwwzou9T8315IpBpIHyQF/dZNk3iFiB9Ed5CA71ZRYV5YoLWE9lL0j9kxOLQ5vHnX3mVq7QZ Bc7nzwZ6UhQgYmrG5+RWvuiPpGwvDRIsugJUGXucYkAQh5kuNblmkwpv6u9rNMjCNbzAylOa qdogra5EW+RUSbRz0b4iIr8nnZeAlh7BihCe7JjOwbDjoBEEEtSfVc4hD/LENqpcYVrChphf aOLB9YIXhnVDTVvMc9OklWT/81HzAaDQqOQCzEfY92199Ct9/CwRoQ2OpO8TO5+8A7b9Nb33 nmxMn09mb48ruRacMrfHxCWbgU4w9SEfbip4GcS5wGG6yTC+hw55Iwnnwus40NrJ0GEr8a4r cdsLbkvlyoNHB8ZGgyJ4aFCQ1V4qE1BnlTk7Z8BYBUkJM1odPSkVvHpCnMUjVpJ3hEOC+73Z YH1dh7lZABEBAAGJAjwEGAEKACYWIQRx42Dk0QxkiSLzSdBAeX98lfSDTwUCW5JHigIbDAUJ Ca6EAAAKCRBAeX98lfSDTz8DEACMh3poeUb+gWNF4RWFZuLteZVo0+E1JLYXQkmtrRBLXviP +Qy0pXyFAVxLM4hNIBoIDYfK9BcwrBYf7AwSKrH0GiNwFpgHCkbZd6qoZy2gB+adTnCpVCTJ KJetsH/8awkrChJWMK0ckGf3EeWMPvawG7kW7FBz70NYEZ0pOMiaEZNVtzD3wwbYWUiDFYth 83XGglOExg+1ShTW5XjQPRrdyJAO+aUW4o3lVjfyUJXMgI4rmhMiLVm06GuNrbpKIF0s+4Vd jQAjhrDQjfoXi9CkfsA/cONseuHNv1JGj3RqHiqHJq1dbrpodXp925zGDAnUGxCOBPoFopAH gVzR89GTut059GpwqsddZmU6y7rqifuam/ekJ+QRwc16vgt7pHqCrTY8WPxRZr2UpFU1wlTo COdeiFep1gq1F9jzFjJnoMaAdmC6k7bgAA+RQusOgIhJL0jIej7DoAHxmxFFCfRy+lDtpXwF gQ8HMvzHI65QWmQnMo7s6SQH/ZH5s1yR6SJq8+3lDz+dCuT42qJVqIPVvxd10LW0FNN+t7HF eLadU6ekSgD13/EYMYXlvNHkw7dAItSDxIzgRyykLz0bCU9xwNWoS4Z43+ifF9anJ+uR0ltW El1j++h6ZrD3LLuCgJIt1so0m49GzdcSpOI7LCwMlacyvafiEyjUn+tSNDsnfw== Organization: The FreeBSD Project Message-ID: Date: Wed, 19 Feb 2020 22:05:52 -0800 MIME-Version: 1.0 In-Reply-To: <48DC2EEA-22D6-4A0D-84CE-3F0770962DB3@yuripv.me> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="AEukQedCH7c4yJkYTZt54VPPKfFEVouSQ" X-Rspamd-Queue-Id: 48NPGg1brlz4Gqm X-Spamd-Bar: -------- X-Spamd-Result: default: False [-8.74 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[delphij.net:s=m7e2]; HAS_REPLYTO(0.00)[d@delphij.net]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+mx]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; HAS_ATTACHMENT(0.00)[]; MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain]; REPLYTO_DOM_EQ_FROM_DOM(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; HAS_ORG_HEADER(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[delphij.net:+]; DMARC_POLICY_ALLOW(-0.50)[delphij.net,reject]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; SIGNED_PGP(-2.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~]; IP_SCORE(-3.64)[ip: (-9.91), ipnet: 2001:470::/32(-4.65), asn: 6939(-3.58), country: US(-0.05)]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 06:06:05 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --AEukQedCH7c4yJkYTZt54VPPKfFEVouSQ Content-Type: multipart/mixed; boundary="S0ROYou22JPlqRsRxhQIbVxa5uxk21m9S"; protected-headers="v1" From: Xin Li Reply-To: d@delphij.net To: Yuri Pankov , "Pedro F. Giffuni" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb References: <202002200354.01K3s8ib077553@repo.freebsd.org> <48DC2EEA-22D6-4A0D-84CE-3F0770962DB3@yuripv.me> In-Reply-To: <48DC2EEA-22D6-4A0D-84CE-3F0770962DB3@yuripv.me> --S0ROYou22JPlqRsRxhQIbVxa5uxk21m9S Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 2/19/20 10:01 PM, Yuri Pankov wrote: > On 20 Feb 2020, at 06:54, Pedro F. Giffuni wrote: >> >> Author: pfg >> Date: Thu Feb 20 03:54:07 2020 >> New Revision: 358153 >> URL: https://svnweb.freebsd.org/changeset/base/358153 >> >> Log: >> /etc/services: attempt bring the database to this century. >> >> Document better this file, updating the URL to the IANA registry and = closely >> match the official services. >> >> For system ports (0 to 1023) we now try to follow the registry closel= y, noting >> some historical differences where applicable. >> For the User ports (1024 - 49151) we try to keep some sensible balanc= e only >> of services that are likely to be found on FreeBSD/UNIX systems. This= attempts >> to strike a balance between complexity and usefulness. >> >> As a side effect: drop references to unofficial Kerberos IV which was= EOL'ed >> on Oct 2006[1]. While it is conceivable some people may still use it = in some >> very old FreeBSD machines that can't be replaced easily, the use of i= t is >> considered a security risk. Also drop the unofficial netatalk, which = we >> supported long ago in the kernel but was dropped long ago. >> >> [1] https://web.mit.edu/kerberos/krb4-end-of-life.html >> >> MFC after: 3 weeks (likely to 12-stable only) >> Differential Revision: https://reviews.freebsd.org/D23621 >> >> Modified: >> head/usr.sbin/services_mkdb/services >=20 > I noticed `mergemaster` failing, and it seems to be not happy with this= change: >=20 > # make installconfig > installing DIRS CONFSDIR > install -d -m 0755 -o root -g wheel /etc > install -C -o root -g wheel -m 644 /usr/src/usr.sbin/services_mkdb/s= ervices /etc/services > services_mkdb -l -q -o /var/db/services.db /etc/services > services_mkdb: Ran out of protocols adding `divert'; recompile with lar= ger PROTOMAX > *** Error code 1 >=20 > Stop. > make: stopped in /usr/src/usr.sbin/services_mkdb Fixed in r358154. Please merge the revision with r358153 when MFC'ing. --S0ROYou22JPlqRsRxhQIbVxa5uxk21m9S-- --AEukQedCH7c4yJkYTZt54VPPKfFEVouSQ 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.2.19 (FreeBSD) iQIzBAEBCgAdFiEEceNg5NEMZIki80nQQHl/fJX0g08FAl5OIcMACgkQQHl/fJX0 g096mhAAhY0iapjtQyrHcls9UGExulQPvgY0LcItPzVTP8ih38ZVF14gAnaJ2bc9 rhd5m49EW9KlvuPNSnJcF4WlwilFLGykpeTf/KbBk90U6pSJoozUjy9Xt9JcErLt J7zYBuJw+aTcB6fJ2jEkzfDHXuC9zgDKg9/tjQKC0KY7K73WlbRdQ+rHt6C1D37i 4dgJQQBV8ggeFCtT77KEZKxWQurSnPv4xqk9KLxRhK9Hd5Eg49eBeHHFxCNQ/R0t EAa8VgwN3Xf8CdL5a1Cj1Oj8rq1xSxTCx4hnkRQ5JleJ57gEBQTCbp4XgwNd8wYc EFe0H8af4k55BKW9KLE5JTwwpyLzGBxMu+HF8x3aooIZTzDG+hruHb92Tj8VmbsY 9KJ+RSKUMnEoHE48s57tQhvfoZ7BZKIcBTXQNj8xSGo6kRt6YlQStLw8OM6cbEUv MzjKICMZ7Hclo6p8O3DuXbHluncB+I8Wx6i8u3KncW6IaNIF+TAEc7shZvtUFckW 5ZhKj58I5s337IP32znqeKEXxATDLao/gVGvJRczpd8MpaavqJrU1DRKf+V+Oo6C 0SpYeS5oGA3hdMB47y2mQQ/X4pJ8p8C4U3TKhWcGlzl+1meTRhnVOi5pPJfLo2Vc L3Tsb7msQyS5ntglBw208EL0JPNjjeRjDLj+n1CIphPxahBcijM= =dXRQ -----END PGP SIGNATURE----- --AEukQedCH7c4yJkYTZt54VPPKfFEVouSQ-- From owner-svn-src-all@freebsd.org Thu Feb 20 06:45:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F36C125631D; Thu, 20 Feb 2020 06:45:51 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NQ8b5fKmz3LmZ; Thu, 20 Feb 2020 06:45:51 +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 A97CD1DAC2; Thu, 20 Feb 2020 06:45:51 +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 01K6jpQl078146; Thu, 20 Feb 2020 06:45:51 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K6jp7s078145; Thu, 20 Feb 2020 06:45:51 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202002200645.01K6jp7s078145@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Thu, 20 Feb 2020 06:45:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358155 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 358155 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 06:45:52 -0000 Author: delphij Date: Thu Feb 20 06:45:51 2020 New Revision: 358155 URL: https://svnweb.freebsd.org/changeset/base/358155 Log: Actually install hwpstate_intel.4. Modified: head/share/man/man4/Makefile Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Thu Feb 20 06:03:41 2020 (r358154) +++ head/share/man/man4/Makefile Thu Feb 20 06:45:51 2020 (r358155) @@ -192,6 +192,7 @@ MAN= aac.4 \ ${_hv_vmbus.4} \ ${_hv_vss.4} \ hwpmc.4 \ + ${_hwpstate_intel.4} \ iavf.4 \ ichsmb.4 \ ${_ichwd.4} \ @@ -787,6 +788,7 @@ _hv_storvsc.4= hv_storvsc.4 _hv_utils.4= hv_utils.4 _hv_vmbus.4= hv_vmbus.4 _hv_vss.4= hv_vss.4 +_hwpstate_intel.4= hwpstate_intel.4 _i8254.4= i8254.4 _ichwd.4= ichwd.4 _if_bxe.4= if_bxe.4 From owner-svn-src-all@freebsd.org Thu Feb 20 07:12:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 33332256A20; Thu, 20 Feb 2020 07:12:45 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NQlc669Cz4YPG; Thu, 20 Feb 2020 07:12:44 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 546561E035; Thu, 20 Feb 2020 07:12:44 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K7Cic9095995; Thu, 20 Feb 2020 07:12:44 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K7ChWl095993; Thu, 20 Feb 2020 07:12:43 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <202002200712.01K7ChWl095993@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Thu, 20 Feb 2020 07:12:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358156 - head/sys/dev/ath X-SVN-Group: head X-SVN-Commit-Author: adrian X-SVN-Commit-Paths: head/sys/dev/ath X-SVN-Commit-Revision: 358156 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 07:12:45 -0000 Author: adrian Date: Thu Feb 20 07:12:43 2020 New Revision: 358156 URL: https://svnweb.freebsd.org/changeset/base/358156 Log: [ath] Attempt to fix epoch handling. The epoch stuff with taskqueues works fine if the driver never calls the receive path in other contexts, but this driver does. If there was a chip reset during active receive then part of the reset will call the receive path to flush out any active packets before reinitialising the receive queue and that needs to be done with the epoch held. So: * make the receive task a normal task again * explicitly call epoch enter/exit around the legacy and newer DMA receive paths * add a couple of epoch asserts to ensure that the receive packet path itself is called with epoch held. This fixes it on my Atom eeepc laptop (circa 2010!) that I did all of my initial 802.11n work in this driver and net80211. Tested: * AR9285, STA mode TODO: * Test on EDMA chipset (AR9380) * Test in AP/adhoc modes, just to be sure (eg for beacon receive processing in particular.) Modified: head/sys/dev/ath/if_ath.c head/sys/dev/ath/if_ath_rx.c head/sys/dev/ath/if_ath_rx_edma.c Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Thu Feb 20 06:45:51 2020 (r358155) +++ head/sys/dev/ath/if_ath.c Thu Feb 20 07:12:43 2020 (r358156) @@ -760,7 +760,7 @@ ath_attach(u_int16_t devid, struct ath_softc *sc) taskqueue_start_threads(&sc->sc_tq, 1, PI_NET, "%s taskq", device_get_nameunit(sc->sc_dev)); - NET_TASK_INIT(&sc->sc_rxtask, 0, sc->sc_rx.recv_tasklet, sc); + TASK_INIT(&sc->sc_rxtask, 0, sc->sc_rx.recv_tasklet, sc); TASK_INIT(&sc->sc_bmisstask, 0, ath_bmiss_proc, sc); TASK_INIT(&sc->sc_bstucktask,0, ath_bstuck_proc, sc); TASK_INIT(&sc->sc_resettask,0, ath_reset_proc, sc); Modified: head/sys/dev/ath/if_ath_rx.c ============================================================================== --- head/sys/dev/ath/if_ath_rx.c Thu Feb 20 06:45:51 2020 (r358155) +++ head/sys/dev/ath/if_ath_rx.c Thu Feb 20 07:12:43 2020 (r358156) @@ -656,6 +656,8 @@ ath_rx_pkt(struct ath_softc *sc, struct ath_rx_status int is_good = 0; struct ath_rx_edma *re = &sc->sc_rxedma[qtype]; + NET_EPOCH_ASSERT(); + /* * Calculate the correct 64 bit TSF given * the TSF64 register value and rs_tstamp. @@ -1074,6 +1076,8 @@ ath_rx_proc(struct ath_softc *sc, int resched) int kickpcu = 0; int ret; + NET_EPOCH_ASSERT(); + /* XXX we must not hold the ATH_LOCK here */ ATH_UNLOCK_ASSERT(sc); ATH_PCU_UNLOCK_ASSERT(sc); @@ -1293,6 +1297,7 @@ static void ath_legacy_rx_tasklet(void *arg, int npending) { struct ath_softc *sc = arg; + struct epoch_tracker et; ATH_KTR(sc, ATH_KTR_RXPROC, 1, "ath_rx_proc: pending=%d", npending); DPRINTF(sc, ATH_DEBUG_RX_PROC, "%s: pending %u\n", __func__, npending); @@ -1305,14 +1310,18 @@ ath_legacy_rx_tasklet(void *arg, int npending) } ATH_PCU_UNLOCK(sc); + NET_EPOCH_ENTER(et); ath_rx_proc(sc, 1); + NET_EPOCH_EXIT(et); } static void ath_legacy_flushrecv(struct ath_softc *sc) { - + struct epoch_tracker et; + NET_EPOCH_ENTER(et); ath_rx_proc(sc, 0); + NET_EPOCH_EXIT(et); } static void Modified: head/sys/dev/ath/if_ath_rx_edma.c ============================================================================== --- head/sys/dev/ath/if_ath_rx_edma.c Thu Feb 20 06:45:51 2020 (r358155) +++ head/sys/dev/ath/if_ath_rx_edma.c Thu Feb 20 07:12:43 2020 (r358156) @@ -521,6 +521,7 @@ ath_edma_recv_proc_deferred_queue(struct ath_softc *sc int16_t nf; ath_bufhead rxlist; struct mbuf *m; + struct epoch_tracker et; TAILQ_INIT(&rxlist); @@ -537,6 +538,8 @@ ath_edma_recv_proc_deferred_queue(struct ath_softc *sc TAILQ_CONCAT(&rxlist, &sc->sc_rx_rxlist[qtype], bf_list); ATH_RX_UNLOCK(sc); + NET_EPOCH_ENTER(et); + /* Handle the completed descriptors */ /* * XXX is this SAFE call needed? The ath_buf entries @@ -560,6 +563,7 @@ ath_edma_recv_proc_deferred_queue(struct ath_softc *sc if (ngood) { sc->sc_lastrx = tsf; } + NET_EPOCH_EXIT(et); ATH_KTR(sc, ATH_KTR_INTERRUPTS, 1, "ath edma rx deferred proc: ngood=%d\n", From owner-svn-src-all@freebsd.org Thu Feb 20 08:48:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E6F8258903; Thu, 20 Feb 2020 08:48:36 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NStD2gZMz40cC; Thu, 20 Feb 2020 08:48:36 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 11E2E1F095; Thu, 20 Feb 2020 08:48:35 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K8mYjT049389; Thu, 20 Feb 2020 08:48:34 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K8mYQ4049388; Thu, 20 Feb 2020 08:48:34 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202002200848.01K8mYQ4049388@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 20 Feb 2020 08:48:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358157 - head/stand/efi/libefi X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: head/stand/efi/libefi X-SVN-Commit-Revision: 358157 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 08:48:36 -0000 Author: tsoome Date: Thu Feb 20 08:48:34 2020 New Revision: 358157 URL: https://svnweb.freebsd.org/changeset/base/358157 Log: efinet_dev_init() is missing NULL pointer check Add missing check of malloc() result. Modified: head/stand/efi/libefi/efinet.c Modified: head/stand/efi/libefi/efinet.c ============================================================================== --- head/stand/efi/libefi/efinet.c Thu Feb 20 07:12:43 2020 (r358156) +++ head/stand/efi/libefi/efinet.c Thu Feb 20 08:48:34 2020 (r358157) @@ -371,6 +371,8 @@ efinet_dev_init() status = BS->LocateHandle(ByProtocol, &sn_guid, NULL, &sz, NULL); if (status == EFI_BUFFER_TOO_SMALL) { handles = (EFI_HANDLE *)malloc(sz); + if (handles == NULL) + return (ENOMEM); status = BS->LocateHandle(ByProtocol, &sn_guid, NULL, &sz, handles); if (EFI_ERROR(status)) From owner-svn-src-all@freebsd.org Thu Feb 20 08:53:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3C51F258B17; Thu, 20 Feb 2020 08:53:06 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NSzP5HNcz44cY; Thu, 20 Feb 2020 08:53:05 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3D3001F255; Thu, 20 Feb 2020 08:53:05 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K8r5Ed055331; Thu, 20 Feb 2020 08:53:05 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K8r56W055330; Thu, 20 Feb 2020 08:53:05 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202002200853.01K8r56W055330@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 20 Feb 2020 08:53:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358158 - head/stand/efi/libefi X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: head/stand/efi/libefi X-SVN-Commit-Revision: 358158 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 08:53:06 -0000 Author: tsoome Date: Thu Feb 20 08:53:04 2020 New Revision: 358158 URL: https://svnweb.freebsd.org/changeset/base/358158 Log: efihttp_fs_seek() is missing NULL pointer check Add missing check of malloc() result. Modified: head/stand/efi/libefi/efihttp.c Modified: head/stand/efi/libefi/efihttp.c ============================================================================== --- head/stand/efi/libefi/efihttp.c Thu Feb 20 08:48:34 2020 (r358157) +++ head/stand/efi/libefi/efihttp.c Thu Feb 20 08:53:04 2020 (r358158) @@ -701,6 +701,8 @@ efihttp_fs_seek(struct open_file *f, off_t offset, int return (0); if (where == SEEK_SET && fh->offset < offset) { buf = malloc(1500); + if (buf == NULL) + return (ENOMEM); res = offset - fh->offset; while (res > 0) { err = _efihttp_fs_read(f, buf, min(1500, res), &res2); From owner-svn-src-all@freebsd.org Thu Feb 20 08:55:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2B3C1258BC5; Thu, 20 Feb 2020 08:55:19 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NT1y54vxz46mc; Thu, 20 Feb 2020 08:55:18 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9FAE71F258; Thu, 20 Feb 2020 08:55:18 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K8tIsc055506; Thu, 20 Feb 2020 08:55:18 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K8tIqA055505; Thu, 20 Feb 2020 08:55:18 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202002200855.01K8tIqA055505@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 20 Feb 2020 08:55:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358159 - head/stand/efi/libefi X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: head/stand/efi/libefi X-SVN-Commit-Revision: 358159 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 08:55:19 -0000 Author: tsoome Date: Thu Feb 20 08:55:18 2020 New Revision: 358159 URL: https://svnweb.freebsd.org/changeset/base/358159 Log: connect_controllers() is missing NULL pointer check Add missing check of malloc() result. Modified: head/stand/efi/libefi/efi_driver_utils.c Modified: head/stand/efi/libefi/efi_driver_utils.c ============================================================================== --- head/stand/efi/libefi/efi_driver_utils.c Thu Feb 20 08:53:04 2020 (r358158) +++ head/stand/efi/libefi/efi_driver_utils.c Thu Feb 20 08:55:18 2020 (r358159) @@ -52,6 +52,8 @@ connect_controllers(EFI_GUID *filter) } handles = malloc(hsize); + if (handles == NULL) + return (EFI_OUT_OF_RESOURCES); nhandles = hsize / sizeof(EFI_HANDLE); status = BS->LocateHandle(ByProtocol, filter, NULL, From owner-svn-src-all@freebsd.org Thu Feb 20 08:56:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0E3D2258C4A; Thu, 20 Feb 2020 08:56:57 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NT3r6GB4z48B8; Thu, 20 Feb 2020 08:56:56 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9EC181F267; Thu, 20 Feb 2020 08:56:56 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K8uuqu055615; Thu, 20 Feb 2020 08:56:56 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K8uu23055614; Thu, 20 Feb 2020 08:56:56 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202002200856.01K8uu23055614@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 20 Feb 2020 08:56:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358160 - head/stand/efi/libefi X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: head/stand/efi/libefi X-SVN-Commit-Revision: 358160 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 08:56:57 -0000 Author: tsoome Date: Thu Feb 20 08:56:56 2020 New Revision: 358160 URL: https://svnweb.freebsd.org/changeset/base/358160 Log: efipart_inithandles() is missing NULL pointer check Add missing check of malloc() result. Modified: head/stand/efi/libefi/efipart.c Modified: head/stand/efi/libefi/efipart.c ============================================================================== --- head/stand/efi/libefi/efipart.c Thu Feb 20 08:55:18 2020 (r358159) +++ head/stand/efi/libefi/efipart.c Thu Feb 20 08:56:56 2020 (r358160) @@ -363,6 +363,8 @@ efipart_inithandles(void) status = BS->LocateHandle(ByProtocol, &blkio_guid, 0, &sz, hin); if (status == EFI_BUFFER_TOO_SMALL) { hin = malloc(sz); + if (hin == NULL) + return (ENOMEM); status = BS->LocateHandle(ByProtocol, &blkio_guid, 0, &sz, hin); if (EFI_ERROR(status)) From owner-svn-src-all@freebsd.org Thu Feb 20 09:00:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 38B3B258EB7; Thu, 20 Feb 2020 09:00:21 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NT7n0Qppz4C93; Thu, 20 Feb 2020 09:00:20 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DFB0B1F272; Thu, 20 Feb 2020 09:00:20 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K90K9u055918; Thu, 20 Feb 2020 09:00:20 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K90KRj055917; Thu, 20 Feb 2020 09:00:20 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202002200900.01K90KRj055917@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 20 Feb 2020 09:00:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358162 - head/stand/efi/libefi X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: head/stand/efi/libefi X-SVN-Commit-Revision: 358162 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 09:00:21 -0000 Author: tsoome Date: Thu Feb 20 09:00:20 2020 New Revision: 358162 URL: https://svnweb.freebsd.org/changeset/base/358162 Log: insert_zfs() is missing NULL pointer check Add missing check of malloc() result. Modified: head/stand/efi/libefi/efizfs.c Modified: head/stand/efi/libefi/efizfs.c ============================================================================== --- head/stand/efi/libefi/efizfs.c Thu Feb 20 08:58:09 2020 (r358161) +++ head/stand/efi/libefi/efizfs.c Thu Feb 20 09:00:20 2020 (r358162) @@ -86,9 +86,11 @@ insert_zfs(EFI_HANDLE handle, uint64_t guid) zfsinfo_t *zi; zi = malloc(sizeof(zfsinfo_t)); - zi->zi_handle = handle; - zi->zi_pool_guid = guid; - STAILQ_INSERT_TAIL(&zfsinfo, zi, zi_link); + if (zi != NULL) { + zi->zi_handle = handle; + zi->zi_pool_guid = guid; + STAILQ_INSERT_TAIL(&zfsinfo, zi, zi_link); + } } void From owner-svn-src-all@freebsd.org Thu Feb 20 09:03:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6CC8025919D; Thu, 20 Feb 2020 09:03:00 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NTBr2KgXz4Dbp; Thu, 20 Feb 2020 09:03:00 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4B1701F437; Thu, 20 Feb 2020 09:03:00 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K930Tf061459; Thu, 20 Feb 2020 09:03:00 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K930EF061458; Thu, 20 Feb 2020 09:03:00 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202002200903.01K930EF061458@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 20 Feb 2020 09:03:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358163 - head/stand/efi/libefi X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: head/stand/efi/libefi X-SVN-Commit-Revision: 358163 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 09:03:00 -0000 Author: tsoome Date: Thu Feb 20 09:02:59 2020 New Revision: 358163 URL: https://svnweb.freebsd.org/changeset/base/358163 Log: efi_register_handles() is missing NULL pointer check Add missing check of malloc() result. Modified: head/stand/efi/libefi/handles.c Modified: head/stand/efi/libefi/handles.c ============================================================================== --- head/stand/efi/libefi/handles.c Thu Feb 20 09:00:20 2020 (r358162) +++ head/stand/efi/libefi/handles.c Thu Feb 20 09:02:59 2020 (r358163) @@ -52,6 +52,8 @@ efi_register_handles(struct devsw *sw, EFI_HANDLE *han nentries += count; sz = nentries * sizeof(struct entry); entry = (entry == NULL) ? malloc(sz) : realloc(entry, sz); + if (entry == NULL) + return (ENOMEM); for (unit = 0; idx < nentries; idx++, unit++) { entry[idx].handle = handles[unit]; if (aliases != NULL) From owner-svn-src-all@freebsd.org Thu Feb 20 09:12:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8BCB5259EE7; Thu, 20 Feb 2020 09:12:08 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NTPN2zdvz4NjQ; Thu, 20 Feb 2020 09:12:08 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 45E5F1F4E0; Thu, 20 Feb 2020 09:12:08 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K9C8U6067911; Thu, 20 Feb 2020 09:12:08 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K9C7gd067909; Thu, 20 Feb 2020 09:12:07 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002200912.01K9C7gd067909@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Feb 2020 09:12:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358164 - in head: . lib/ncurses/ncurses X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: in head: . lib/ncurses/ncurses X-SVN-Commit-Revision: 358164 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 09:12:08 -0000 Author: bapt Date: Thu Feb 20 09:12:07 2020 New Revision: 358164 URL: https://svnweb.freebsd.org/changeset/base/358164 Log: ncurses: bump shlib number to version 9 ABI has change in between ncurses 5 or 6. While theorically ncurses 6 is buildable with backward compatibility, I fail at building in a way where the application linked against the previous version of ncurses are rendering properly. Let's go on the new ABI which provides all the latest features. A compat12x package is cooking for backward compatibility Modified: head/ObsoleteFiles.inc head/lib/ncurses/ncurses/Makefile Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Thu Feb 20 09:02:59 2020 (r358163) +++ head/ObsoleteFiles.inc Thu Feb 20 09:12:07 2020 (r358164) @@ -36,6 +36,12 @@ # xargs -n1 | sort | uniq -d; # done +# 20200220: Upgrade of ncurses, shlib bumped to version 9 +OLD_FILES+=lib/libncurses.so.8 +OLD_FILES+=lib/libncursesw.so.8 +OLD_FILES+=usr/lib32/libncurses.so.8 +OLD_FILES+=usr/lib32/libncursesw.so.8 + # 20200206: Remove elf2aout OLD_FILES+=usr/bin/elf2aout OLD_FILES+=usr/share/man/man1/elf2aout.1.gz Modified: head/lib/ncurses/ncurses/Makefile ============================================================================== --- head/lib/ncurses/ncurses/Makefile Thu Feb 20 09:02:59 2020 (r358163) +++ head/lib/ncurses/ncurses/Makefile Thu Feb 20 09:12:07 2020 (r358164) @@ -13,7 +13,7 @@ MK_MAN=no .include "${.CURDIR:H}/config.mk" LIB= ncurses${LIB_SUFFIX} -SHLIB_MAJOR= 8 +SHLIB_MAJOR= 9 NO_LINT= @@ -292,7 +292,6 @@ CLEANFILES= ${GENSRCS} ${GENHDRS} keys.list make_hash make_keys MKterm.h.awk comp_captab.c curses.head CFLAGS+= -DFREEBSD_NATIVE -DTERMIOS -CFLAGS.lib_freeall.c+= -Wno-missing-prototypes # Installed HEADERS= curses.h term.h termcap.h unctrl.h From owner-svn-src-all@freebsd.org Thu Feb 20 09:17:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3FF4925A0FB for ; Thu, 20 Feb 2020 09:17:09 +0000 (UTC) (envelope-from pfg@freebsd.org) Received: from sonic308-56.consmr.mail.ne1.yahoo.com (sonic308-56.consmr.mail.ne1.yahoo.com [66.163.187.31]) (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 48NTW84fH0z4Wys for ; Thu, 20 Feb 2020 09:17:08 +0000 (UTC) (envelope-from pfg@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1582190222; bh=+rMxD0VrY6NWiUQEzcGlYE3sgC7zQ8ibBLFb9O1TgWs=; h=Date:From:To:Cc:In-Reply-To:References:Subject:From:Subject; b=BWweE7ssNtZrurL4IP2iY6u9u6HWwtJJcQOElVWwcKzxN6XUCl2OK9jZNkd9Gu2DlPoA8IS9gjpEUHwiLOyFz328JJy0r6WFAmsHGq9NgjdHEWGUgEtdfEhf9A8sKr67Wc+G/NVwrxnyxqs+K3vZM7etBQkDye3p0g1c+fhegfxOzgW2us9Jotjc7hvPEUvPQCmdDgP2fwsDT4mBytpJ3K5M5alXEM9K4HdZ2waJh0NkLMS7taVsYJXVKNsztpSDIHND+oMeEiJrzf5HbEqJ+z27OZ3PKk59N10yePVipEkv5inD1OnlokjP0Kq1pggHvwdTQWIDCMFQ3tlcMTtf4Q== X-YMail-OSG: nl6HspkVM1k5hIQOgOzSmDe.jiVfNNI1O0XNAaobbP3WNZkZAREh3_I1BGhpdZc EiEZONIE_3VSOinXJDdOTyyOgnsOmhjcDIB_4g79Gt6Wi7UsOC_5V0xYfPxHTOQwA4xwxe.6_qMG Fd2GSu1OmUt95RryW6BkY.DfoHpXPOlvGJ2YUgwErSPFUcXJ9ADecO.FqR69TjQttwynVJBMQtih TPdvlLka_sIhliKo1_uoRkxZe6Z8KnqEXMKqLv7CHioQocvWYaxa4Q_WceONfSFYSHbNyU_bvhzW 7SNgWNRsKwd.6rS4OhNgsidN2oJOz1fdAAtnGyy2V.QsE.DJT3XP_rkJu3ms7Lu3wsLxN1FxsxJ2 Mp_3c0SOwYH5MP8yF3fCh5u6_oJNDrCNdjDRkCYBB2ucvRui3VlJDljX9Yod2Rz_JvIqt0xVc.wQ LmYDIJ19gCautSMTgYwSTGkoed9fKKjOdmGMpqw0eZpjedAVVmFTjEo0s1kPhTED6i8F8W71tJDR 6AVnOu8Ub8eBda7NFcncME9yRZp6mzyVJwNBUNWLYRTAZJUyBR_D5lkLvEGNZHUEYT5tLy33XD2g GDi1E4UInj8DTARBKGp2Zhz_rM9exdWifT64ngPFqh_ganXCXaS2eDqwL11ZWRnVDRhMavVGqOY. iLqtot_FmJOOm3Hcuo9655LFdC38w3yddjAi2QQJKUEAheDkb12hwuv3bDQLICNihRYvC0msMs3N w_vEazIT.QPaudOUS8WNDc2k0E8eIAGyZXiJrvGRM_PUfe1DvwmTnY40kJqBzISuC4Vdq.5663zE VmuCgqsSEDVFXfjCfX6_gH.TSRgEdxqSbPABTi64jtKBrRKqVFl0i8e3DuyMoKUkl_Rb3shZ0sLE xqE7poh4TexYJKfp5AgqAVsA658lrRnQ6rhpojn1vexYXooTg7kDcpqYJ8oUdT806z3x.aRzU_0J t0.iexJFbu.uL4vRQNzanzhWdscGA0_ztvx7T7q.J4is3_a9zW9Qwha69ks8pn5117n1L66D3fAr .D01aUyEhh7nxBW0OascTOO9n4woeaq32M3w6ed2UcbB28NJC4Wmx9M6Mzh9t14KvXRueW1uAzv1 czkx8L3KM60ZOV6eZHXK_eE565jeDBaz5ZuCRIxLNwcCXW1_yrw4dMV_jyDmAZ1RjR50SkLdF26w xbwyDVoZ.UuAfZo527mDqxgXzgJO2n1fcLWpe5qf0_2UCQDKS3fdUeaeCvcjEpRN_hvwglKVRknZ PKd8iSwZu2aKnfOCG00T_S0L3sNNIX1BHPVMJhnj92oCEdbrCbxkGA276vMiJb9g8WSOzWjTWwh3 KPaYiK2qLpI1YnbQBFuVzy3n58VSSqEA5GFkFDP9Gdd2wOkKSG7B7449y9d2DGoMVlM4- Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.ne1.yahoo.com with HTTP; Thu, 20 Feb 2020 09:17:02 +0000 Date: Thu, 20 Feb 2020 09:16:58 +0000 (UTC) From: Pedro Giffuni To: , Yuri Pankov Cc: , , Message-ID: <1899052077.5603983.1582190218939@mail.yahoo.com> In-Reply-To: References: <202002200354.01K3s8ib077553@repo.freebsd.org> <48DC2EEA-22D6-4A0D-84CE-3F0770962DB3@yuripv.me> Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb MIME-Version: 1.0 X-Mailer: WebService/1.1.15199 YahooMailIosMobile Raven/37985 CFNetwork/758.5.3 Darwin/15.6.0 X-Rspamd-Queue-Id: 48NTW84fH0z4Wys X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.90 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.91)[-0.907,0]; NEURAL_HAM_LONG(-0.99)[-0.990,0]; ASN(0.00)[asn:36646, ipnet:66.163.184.0/21, country:US] Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 09:17:09 -0000 blockquote, div.yahoo_quoted { margin-left: 0 !important; border-left:1px = #715FFA solid !important; padding-left:1ex !important; background-color:whi= te !important; }=20 Oops! Sorry was AFK ... Thanks! Pedro. On Thursday, February 20, 2020, 1:06 AM, Xin Li wrote= : On 2/19/20 10:01 PM, Yuri Pankov wrote: > On 20 Feb 2020, at 06:54, Pedro F. Giffuni wrote: >> >> Author: pfg >> Date: Thu Feb 20 03:54:07 2020 >> New Revision: 358153 >> URL: https://svnweb.freebsd.org/changeset/base/358153 >> >> Log: >>=C2=A0 /etc/services: attempt bring the database to this century. >> >>=C2=A0 Document better this file, updating the URL to the IANA registry a= nd closely >>=C2=A0 match the official services. >> >>=C2=A0 For system ports (0 to 1023) we now try to follow the registry clo= sely, noting >>=C2=A0 some historical differences where applicable. >>=C2=A0 For the User ports (1024 - 49151) we try to keep some sensible bal= ance only >>=C2=A0 of services that are likely to be found on FreeBSD/UNIX systems. T= his attempts >>=C2=A0 to strike a balance between complexity and usefulness. >> >>=C2=A0 As a side effect: drop references to unofficial Kerberos IV which = was EOL'ed >>=C2=A0 on Oct 2006[1]. While it is conceivable some people may still use = it in some >>=C2=A0 very old FreeBSD machines that can't be replaced easily, the use o= f it is >>=C2=A0 considered a security risk. Also drop the unofficial netatalk, whi= ch we >>=C2=A0 supported long ago in the kernel but was dropped long ago. >> >>=C2=A0 [1] https://web.mit.edu/kerberos/krb4-end-of-life.html >> >>=C2=A0 MFC after:=C2=A0=C2=A0=C2=A0 3 weeks (likely to 12-stable only) >>=C2=A0 Differential Revision:=C2=A0=C2=A0=C2=A0 https://reviews.freebsd.o= rg/D23621 >> >> Modified: >>=C2=A0 head/usr.sbin/services_mkdb/services >=20 > I noticed `mergemaster` failing, and it seems to be not happy with this c= hange: >=20 > # make installconfig > installing DIRS CONFSDIR > install=C2=A0 -d -m 0755 -o root=C2=A0 -g wheel=C2=A0 /etc > install=C2=A0 -C -o root=C2=A0 -g wheel -m 644=C2=A0 /usr/src/usr.sbin/se= rvices_mkdb/services /etc/services > services_mkdb -l -q -o /var/db/services.db=C2=A0 /etc/services > services_mkdb: Ran out of protocols adding `divert'; recompile with large= r PROTOMAX > *** Error code 1 >=20 > Stop. > make: stopped in /usr/src/usr.sbin/services_mkdb Fixed in r358154.=C2=A0 Please merge the revision with r358153 when MFC'ing= . From owner-svn-src-all@freebsd.org Thu Feb 20 09:17:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1409025A195; Thu, 20 Feb 2020 09:17:46 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NTWs5WYtz4XnT; Thu, 20 Feb 2020 09:17:45 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B64A01F63A; Thu, 20 Feb 2020 09:17:45 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K9Hj8F068445; Thu, 20 Feb 2020 09:17:45 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K9Hjkt068444; Thu, 20 Feb 2020 09:17:45 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002200917.01K9Hjkt068444@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Feb 2020 09:17:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358165 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 358165 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 09:17:46 -0000 Author: bapt Date: Thu Feb 20 09:17:45 2020 New Revision: 358165 URL: https://svnweb.freebsd.org/changeset/base/358165 Log: Bump __FreeBSD_version after bumping ncurses shlib Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Thu Feb 20 09:12:07 2020 (r358164) +++ head/sys/sys/param.h Thu Feb 20 09:17:45 2020 (r358165) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300078 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300079 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Thu Feb 20 09:33:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7019E25A7FA; Thu, 20 Feb 2020 09:33:15 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NTsl0RpFz45hN; Thu, 20 Feb 2020 09:33:15 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D7E741F9D3; Thu, 20 Feb 2020 09:33:14 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01K9XEuL080829; Thu, 20 Feb 2020 09:33:14 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01K9XEcY080828; Thu, 20 Feb 2020 09:33:14 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002200933.01K9XEcY080828@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Feb 2020 09:33:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358166 - head X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 358166 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 09:33:15 -0000 Author: bapt Date: Thu Feb 20 09:33:14 2020 New Revision: 358166 URL: https://svnweb.freebsd.org/changeset/base/358166 Log: Update the UPDATING information now that ncurses shlib has been bumped Modified: head/UPDATING Modified: head/UPDATING ============================================================================== --- head/UPDATING Thu Feb 20 09:17:45 2020 (r358165) +++ head/UPDATING Thu Feb 20 09:33:14 2020 (r358166) @@ -26,10 +26,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) -20200218: - ncurses has been updated to a newer version (6.1-20200118). After an - update some applications using ncurses may results have some rendering - problems and would need to be rebuilt. +20200220: + ncurses has been updated to a newer version (6.1-20200118). Given the ABI + has changed, users will have to rebuild all the ports that are linked to + ncurses. 20200217: The size of struct vnet and the magic cookie have changed. From owner-svn-src-all@freebsd.org Thu Feb 20 09:56:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8AD8025AFDC; Thu, 20 Feb 2020 09:56:07 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: from mail-yw1-f68.google.com (mail-yw1-f68.google.com [209.85.161.68]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NVN60gPDz4h2P; Thu, 20 Feb 2020 09:56:05 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: by mail-yw1-f68.google.com with SMTP id 10so1614924ywv.5; Thu, 20 Feb 2020 01:56:05 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=QCLvZk4CrEjR+/lH2COglzWdkruV/WLyuM9ysZMrcSc=; b=I3fVLFIS9269yP52Vrcfjwi9W8/xCSCDhbRx8RHk3tDkCRlEBRVWJd4MWLIMUhmHUF xSYjWbGhk69rZYGdTHemVJriov/O/uPbnqZhdjK6cO3ehCYFgMS5Yh2ER0KIPavKtzMM AcCuYCX6tJdFB2po1Oh163w0WY34WMmYEa8heIEDTsXN7b++XcK/xr58TFWvlwithA/u V4tTea2y8+r2Im8ikT6gGIBmoHixk5MzshE37ZAiwJ/ngwWXww6odDIaThO4XkLbPpPc PviS55TCEHT6iRkc6Uuk4OQ23sZ8zY0AcYuDD5YxkzPgSBPmmbCRuF/LXEE1bPeECf8a cLDg== X-Gm-Message-State: APjAAAXsx9oAKyRtPVlsTmtP2X5pXyagBVFcmyKv8pk+CCqIZ9+hkE0x inXmvf7pks7AVdgVwiuRqsczOFTdqgvubM5V/eBCT/9d X-Google-Smtp-Source: APXvYqz0fLHP4OnsZ5Tt+dq8pTJ5BCPw61ipzDlv2bIouJl6NTW/QtuXwVQcv4fDOvrLiLZcKK/91nkuzYaY+ph86K4= X-Received: by 2002:a0d:ce02:: with SMTP id q2mr24346865ywd.400.1582192564494; Thu, 20 Feb 2020 01:56:04 -0800 (PST) MIME-Version: 1.0 References: <202002200354.01K3s8ib077553@repo.freebsd.org> <48DC2EEA-22D6-4A0D-84CE-3F0770962DB3@yuripv.me> In-Reply-To: From: Li-Wen Hsu Date: Thu, 20 Feb 2020 17:55:51 +0800 Message-ID: Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb To: Xin LI Cc: Yuri Pankov , "Pedro F. Giffuni" , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48NVN60gPDz4h2P X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of lwhsufreebsd@gmail.com designates 209.85.161.68 as permitted sender) smtp.mailfrom=lwhsufreebsd@gmail.com X-Spamd-Result: default: False [-3.05 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_NEQ_ENVFROM(0.00)[lwhsu@freebsd.org,lwhsufreebsd@gmail.com]; FROM_HAS_DN(0.00)[]; RWL_MAILSPIKE_GOOD(0.00)[68.161.85.209.rep.mailspike.net : 127.0.0.18]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17:c]; RCVD_TLS_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[68.161.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-1.06)[ip: (-0.55), ipnet: 209.85.128.0/17(-3.00), asn: 15169(-1.67), country: US(-0.05)]; FORGED_SENDER(0.30)[lwhsu@freebsd.org,lwhsufreebsd@gmail.com]; MIME_TRACE(0.00)[0:+]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 09:56:07 -0000 On Thu, Feb 20, 2020 at 2:06 PM Xin Li wrote: > > > > On 2/19/20 10:01 PM, Yuri Pankov wrote: > > On 20 Feb 2020, at 06:54, Pedro F. Giffuni wrote: > >> > >> Author: pfg > >> Date: Thu Feb 20 03:54:07 2020 > >> New Revision: 358153 > >> URL: https://svnweb.freebsd.org/changeset/base/358153 > >> > >> Log: > >> /etc/services: attempt bring the database to this century. > >> > >> Document better this file, updating the URL to the IANA registry and closely > >> match the official services. > >> > >> For system ports (0 to 1023) we now try to follow the registry closely, noting > >> some historical differences where applicable. > >> For the User ports (1024 - 49151) we try to keep some sensible balance only > >> of services that are likely to be found on FreeBSD/UNIX systems. This attempts > >> to strike a balance between complexity and usefulness. > >> > >> As a side effect: drop references to unofficial Kerberos IV which was EOL'ed > >> on Oct 2006[1]. While it is conceivable some people may still use it in some > >> very old FreeBSD machines that can't be replaced easily, the use of it is > >> considered a security risk. Also drop the unofficial netatalk, which we > >> supported long ago in the kernel but was dropped long ago. > >> > >> [1] https://web.mit.edu/kerberos/krb4-end-of-life.html > >> > >> MFC after: 3 weeks (likely to 12-stable only) > >> Differential Revision: https://reviews.freebsd.org/D23621 > >> > >> Modified: > >> head/usr.sbin/services_mkdb/services > > > > I noticed `mergemaster` failing, and it seems to be not happy with this change: > > > > # make installconfig > > installing DIRS CONFSDIR > > install -d -m 0755 -o root -g wheel /etc > > install -C -o root -g wheel -m 644 /usr/src/usr.sbin/services_mkdb/services /etc/services > > services_mkdb -l -q -o /var/db/services.db /etc/services > > services_mkdb: Ran out of protocols adding `divert'; recompile with larger PROTOMAX > > *** Error code 1 > > > > Stop. > > make: stopped in /usr/src/usr.sbin/services_mkdb > > Fixed in r358154. Please merge the revision with r358153 when MFC'ing. Please note this is not fixed in ci.freebsd.org yet. The reason is it directly goes to src/release and perform `make packagesystem` to generate kernel.txz and base.txz. If I read release(7) correctly, this should be performed under a fresh installed environment. I am checking how to fix this. delphij and I were trying to propagate ${IMAKEENV} to these targets but I'm not sure if this is correct way. Best, Li-Wen From owner-svn-src-all@freebsd.org Thu Feb 20 10:00:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 98A3A25B244; Thu, 20 Feb 2020 10:00:22 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: from mail-yb1-f193.google.com (mail-yb1-f193.google.com [209.85.219.193]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NVT136svz4mQ9; Thu, 20 Feb 2020 10:00:21 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: by mail-yb1-f193.google.com with SMTP id u47so903971ybi.1; Thu, 20 Feb 2020 02:00:21 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=sajsYNdLsW4cy0RgyQelu066mDN6NNRreDvc8c/SKHk=; b=YMKibs+3RL5G6Y9R0YI+nhnLILqCiaJW4+7MF28yTjEkwljNHpyOKTKckBqvmfde/4 M/DT891/j4ZSNCaR7YJQjRtzhFMNuXbnMg4GAbOr8eZp9PCSy0rQpTyhwEqSJ84QgQ9O yIyt+pvRwykQJNNcLl9U4iRPJH4Gpnydj8MPH39wrJI6iWDh52D3Ipm6r1LVQyMtz9Oi pvzggARdntVSRRzojz0016Vyf3LAOGvOBnq65maY3juK2tFckObZvEht3RB0jX/tt5vM ZWExsft7lFeyCTH9uAErvizNDGzBe9+E57oovXOCQCxh6FuVpk35TUnfD4HkwAiHbeVA jJhA== X-Gm-Message-State: APjAAAUVR/9beN65HWfVvFA9x8riIheFFrpqsd4mBX0xEf+R4HIgOwtX AfE7rKm9SAzG5GLZQ8H+/OGGa7WHITqYjmgpMLxXroHh X-Google-Smtp-Source: APXvYqy9lOa7x1u5CLRfDZYEG6kNl7jq9daSWp10SK/qAfqTSGt/SwTfLGJFEa8X6BAaW1F9TckjZ3oug2tI+sdkz4Y= X-Received: by 2002:a25:8446:: with SMTP id r6mr780287ybm.451.1582192819011; Thu, 20 Feb 2020 02:00:19 -0800 (PST) MIME-Version: 1.0 References: <202002180811.01I8BqEq001150@repo.freebsd.org> In-Reply-To: From: Li-Wen Hsu Date: Thu, 20 Feb 2020 18:00:07 +0800 Message-ID: Subject: Re: svn commit: r358062 - in head: contrib/ncurses contrib/ncurses/doc contrib/ncurses/doc/html contrib/ncurses/form contrib/ncurses/include contrib/ncurses/man contrib/ncurses/menu contrib/ncurses/mis... To: Dimitry Andric , Baptiste Daroussin Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48NVT136svz4mQ9 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of lwhsufreebsd@gmail.com designates 209.85.219.193 as permitted sender) smtp.mailfrom=lwhsufreebsd@gmail.com X-Spamd-Result: default: False [-2.94 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_NEQ_ENVFROM(0.00)[lwhsu@freebsd.org,lwhsufreebsd@gmail.com]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCPT_COUNT_FIVE(0.00)[5]; IP_SCORE(-0.94)[ipnet: 209.85.128.0/17(-3.00), asn: 15169(-1.67), country: US(-0.05)]; TO_DN_ALL(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[193.219.85.209.list.dnswl.org : 127.0.5.0]; FORGED_SENDER(0.30)[lwhsu@freebsd.org,lwhsufreebsd@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[193.219.85.209.rep.mailspike.net : 127.0.0.17]; MIME_TRACE(0.00)[0:+]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 10:00:22 -0000 On Wed, Feb 19, 2020 at 7:09 PM Li-Wen Hsu wrote: > > On Wed, Feb 19, 2020 at 5:04 PM Dimitry Andric wrote: > > > > On 2020-02-18 09:11, Baptiste Daroussin wrote: > > > Author: bapt > > > Date: Tue Feb 18 08:11:52 2020 > > > New Revision: 358062 > > > URL: https://svnweb.freebsd.org/changeset/base/358062 > > > > > > Log: > > > Update ncurses to 20200118 > > > > Apparently this breaks the gcc builds, because it can't find the > > function "box" anymore: > > > > --- all_subdir_usr.bin/clang/lldb --- > > /usr/local/bin/x86_64-unknown-freebsd12.0-ld: > > /tmp/obj/workspace/src/amd64.amd64/lib/clang/liblldb/liblldb.a(IOHandler.o): > > in function `curses::Window::Box(unsigned int, unsigned int)': > > /workspace/src/contrib/llvm-project/lldb/source/Core/IOHandler.cpp:926: > > undefined reference to `box' > > /usr/local/bin/x86_64-unknown-freebsd12.0-ld: > > /workspace/src/contrib/llvm-project/lldb/source/Core/IOHandler.cpp:926: > > undefined reference to `box' > > collect2: error: ld returned 1 exit status > > *** [lldb.full] Error code 1 > > > > See also: https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/13322/ > > For more information, currently the FreeBSD-head-amd64-gcc is using > amd64-gcc package via amd64-xtoolchain-gcc, which is 6.4 > A test build with amd64-gcc6, which is 6.5, just completed and it's fine. > I haven't checked this failure is due to our code itself, gcc versions > or the difference in the configuration of two gcc ports. Correct myself, gcc 6.5 has the same failure. There was an issue in the previous build. https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc6_build/1/console > I think I will create FreeBSD-head-amd64-gcc6 job uses newer and > preferred external tool chain, then the experimental ones like > FreeBSD-head-amd64-gcc9, 10 and llvm-devel. These are still in the CI roadmap. Li-Wen From owner-svn-src-all@freebsd.org Thu Feb 20 10:56:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E911F25C3CD; Thu, 20 Feb 2020 10:56:12 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NWjS4Pssz3ysP; Thu, 20 Feb 2020 10:56:12 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8E9AF208BC; Thu, 20 Feb 2020 10:56:12 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01KAuCn4029187; Thu, 20 Feb 2020 10:56:12 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KAuC0N029186; Thu, 20 Feb 2020 10:56:12 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202002201056.01KAuC0N029186@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Thu, 20 Feb 2020 10:56:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358167 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 358167 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 10:56:13 -0000 Author: bz Date: Thu Feb 20 10:56:12 2020 New Revision: 358167 URL: https://svnweb.freebsd.org/changeset/base/358167 Log: ip6_output: improve extension header handling Move IPv6 source address checks from after extension header heandling to the top of the function. If we do not pass these checks there is no reason to do a lot of work upfront. Fold extension header preparations and length calculations together into a single branch and macro rather than doing them sequentially. Likewise move extension header concatination into a single branch block only doing it if we recorded any extension header length length. Reviewed by: melifaro (earlier version), markj, gallatin Sponsored by: Netflix (partially, originally) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23740 Modified: head/sys/netinet6/ip6_output.c Modified: head/sys/netinet6/ip6_output.c ============================================================================== --- head/sys/netinet6/ip6_output.c Thu Feb 20 09:33:14 2020 (r358166) +++ head/sys/netinet6/ip6_output.c Thu Feb 20 10:56:12 2020 (r358167) @@ -156,10 +156,10 @@ static int copypktopts(struct ip6_pktopts *, struct ip /* - * Make an extension header from option data. hp is the source, and - * mp is the destination. + * Make an extension header from option data. hp is the source, + * mp is the destination, and _ol is the optlen. */ -#define MAKE_EXTHDR(hp, mp) \ +#define MAKE_EXTHDR(hp, mp, _ol) \ do { \ if (hp) { \ struct ip6_ext *eh = (struct ip6_ext *)(hp); \ @@ -167,6 +167,7 @@ static int copypktopts(struct ip6_pktopts *, struct ip ((eh)->ip6e_len + 1) << 3); \ if (error) \ goto freehdrs; \ + (_ol) += (*(mp))->m_len; \ } \ } while (/*CONSTCOND*/ 0) @@ -384,22 +385,23 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, struct ip6_hdr *ip6; struct ifnet *ifp, *origifp; struct mbuf *m = m0; - struct mbuf *mprev = NULL; + struct mbuf *mprev; int hlen, tlen, len; struct route_in6 ip6route; struct rtentry *rt = NULL; struct sockaddr_in6 *dst, src_sa, dst_sa; struct in6_addr odst; + u_char *nexthdrp; int error = 0; struct in6_ifaddr *ia = NULL; u_long mtu; int alwaysfrag, dontfrag; - u_int32_t optlen = 0, plen = 0, unfragpartlen = 0; + u_int32_t optlen, plen = 0, unfragpartlen; struct ip6_exthdrs exthdrs; struct in6_addr src0, dst0; u_int32_t zone; struct route_in6 *ro_pmtu = NULL; - int hdrsplit = 0; + bool hdrsplit; int sw_csum, tso; int needfiblookup; uint32_t fibnum; @@ -436,13 +438,50 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, } #endif /* IPSEC */ + /* Source address validation. */ + ip6 = mtod(m, struct ip6_hdr *); + if (IN6_IS_ADDR_UNSPECIFIED(&ip6->ip6_src) && + (flags & IPV6_UNSPECSRC) == 0) { + error = EOPNOTSUPP; + IP6STAT_INC(ip6s_badscope); + goto bad; + } + if (IN6_IS_ADDR_MULTICAST(&ip6->ip6_src)) { + error = EOPNOTSUPP; + IP6STAT_INC(ip6s_badscope); + goto bad; + } + + /* + * If we are given packet options to add extension headers prepare them. + * Calculate the total length of the extension header chain. + * Keep the length of the unfragmentable part for fragmentation. + */ bzero(&exthdrs, sizeof(exthdrs)); + optlen = 0; + unfragpartlen = 0; if (opt) { /* Hop-by-Hop options header. */ - MAKE_EXTHDR(opt->ip6po_hbh, &exthdrs.ip6e_hbh); + MAKE_EXTHDR(opt->ip6po_hbh, &exthdrs.ip6e_hbh, optlen); + /* Destination options header (1st part). */ if (opt->ip6po_rthdr) { +#ifndef RTHDR_SUPPORT_IMPLEMENTED /* + * If there is a routing header, discard the packet + * right away here. RH0/1 are obsolete and we do not + * currently support RH2/3/4. + * People trying to use RH253/254 may want to disable + * this check. + * The moment we do support any routing header (again) + * this block should check the routing type more + * selectively. + */ + error = EINVAL; + goto bad; +#endif + + /* * Destination options header (1st part). * This only makes sense with a routing header. * See Section 9.2 of RFC 3542. @@ -452,46 +491,38 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, * options, which might automatically be inserted in * the kernel. */ - MAKE_EXTHDR(opt->ip6po_dest1, &exthdrs.ip6e_dest1); + MAKE_EXTHDR(opt->ip6po_dest1, &exthdrs.ip6e_dest1, + optlen); } /* Routing header. */ - MAKE_EXTHDR(opt->ip6po_rthdr, &exthdrs.ip6e_rthdr); + MAKE_EXTHDR(opt->ip6po_rthdr, &exthdrs.ip6e_rthdr, optlen); + + unfragpartlen = optlen + sizeof(struct ip6_hdr); + + /* + * NOTE: we don't add AH/ESP length here (done in + * ip6_ipsec_output()). + */ + /* Destination options header (2nd part). */ - MAKE_EXTHDR(opt->ip6po_dest2, &exthdrs.ip6e_dest2); + MAKE_EXTHDR(opt->ip6po_dest2, &exthdrs.ip6e_dest2, optlen); } /* - * Calculate the total length of the extension header chain. - * Keep the length of the unfragmentable part for fragmentation. - */ - optlen = 0; - if (exthdrs.ip6e_hbh) - optlen += exthdrs.ip6e_hbh->m_len; - if (exthdrs.ip6e_dest1) - optlen += exthdrs.ip6e_dest1->m_len; - if (exthdrs.ip6e_rthdr) - optlen += exthdrs.ip6e_rthdr->m_len; - unfragpartlen = optlen + sizeof(struct ip6_hdr); - - /* NOTE: we don't add AH/ESP length here (done in ip6_ipsec_output). */ - if (exthdrs.ip6e_dest2) - optlen += exthdrs.ip6e_dest2->m_len; - - /* * If there is at least one extension header, * separate IP6 header from the payload. */ - if (optlen && !hdrsplit) { + hdrsplit = false; + if (optlen) { if ((error = ip6_splithdr(m, &exthdrs)) != 0) { m = NULL; goto freehdrs; } m = exthdrs.ip6e_ip6; - hdrsplit++; + ip6 = mtod(m, struct ip6_hdr *); + hdrsplit = true; } - ip6 = mtod(m, struct ip6_hdr *); - /* Adjust mbuf packet header length. */ m->m_pkthdr.len += optlen; plen = m->m_pkthdr.len - sizeof(*ip6); @@ -504,77 +535,59 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt, goto freehdrs; } m = exthdrs.ip6e_ip6; - hdrsplit++; + ip6 = mtod(m, struct ip6_hdr *); + hdrsplit = true; } - /* Adjust pointer. */ - ip6 = mtod(m, struct ip6_hdr *); if ((error = ip6_insert_jumboopt(&exthdrs, plen)) != 0) goto freehdrs; ip6->ip6_plen = 0; } else ip6->ip6_plen = htons(plen); + nexthdrp = &ip6->ip6_nxt; - /* - * Concatenate headers and fill in next header fields. - * Here we have, on "m" - * IPv6 payload - * and we insert headers accordingly. - * Finally, we should be getting: - * IPv6 hbh dest1 rthdr ah* [esp* dest2 payload]. - * - * During the header composing process "m" points to IPv6 - * header. "mprev" points to an extension header prior to esp. - */ - u_char *nexthdrp = &ip6->ip6_nxt; - mprev = m; + if (optlen) { + /* + * Concatenate headers and fill in next header fields. + * Here we have, on "m" + * IPv6 payload + * and we insert headers accordingly. + * Finally, we should be getting: + * IPv6 hbh dest1 rthdr ah* [esp* dest2 payload]. + * + * During the header composing process "m" points to IPv6 + * header. "mprev" points to an extension header prior to esp. + */ + mprev = m; - /* - * We treat dest2 specially. This makes IPsec processing - * much easier. The goal here is to make mprev point the - * mbuf prior to dest2. - * - * Result: IPv6 dest2 payload. - * m and mprev will point to IPv6 header. - */ - if (exthdrs.ip6e_dest2) { - if (!hdrsplit) - panic("%s:%d: assumption failed: " - "hdr not split: hdrsplit %d exthdrs %p", - __func__, __LINE__, hdrsplit, &exthdrs); - exthdrs.ip6e_dest2->m_next = m->m_next; - m->m_next = exthdrs.ip6e_dest2; - *mtod(exthdrs.ip6e_dest2, u_char *) = ip6->ip6_nxt; - ip6->ip6_nxt = IPPROTO_DSTOPTS; - } + /* + * We treat dest2 specially. This makes IPsec processing + * much easier. The goal here is to make mprev point the + * mbuf prior to dest2. + * + * Result: IPv6 dest2 payload. + * m and mprev will point to IPv6 header. + */ + if (exthdrs.ip6e_dest2) { + if (!hdrsplit) + panic("%s:%d: assumption failed: " + "hdr not split: hdrsplit %d exthdrs %p", + __func__, __LINE__, hdrsplit, &exthdrs); + exthdrs.ip6e_dest2->m_next = m->m_next; + m->m_next = exthdrs.ip6e_dest2; + *mtod(exthdrs.ip6e_dest2, u_char *) = ip6->ip6_nxt; + ip6->ip6_nxt = IPPROTO_DSTOPTS; + } - /* - * Result: IPv6 hbh dest1 rthdr dest2 payload. - * m will point to IPv6 header. mprev will point to the - * extension header prior to dest2 (rthdr in the above case). - */ - MAKE_CHAIN(exthdrs.ip6e_hbh, mprev, nexthdrp, IPPROTO_HOPOPTS); - MAKE_CHAIN(exthdrs.ip6e_dest1, mprev, nexthdrp, - IPPROTO_DSTOPTS); - MAKE_CHAIN(exthdrs.ip6e_rthdr, mprev, nexthdrp, - IPPROTO_ROUTING); - - /* If there is a routing header, discard the packet. */ - if (exthdrs.ip6e_rthdr) { - error = EINVAL; - goto bad; - } - - /* Source address validation. */ - if (IN6_IS_ADDR_UNSPECIFIED(&ip6->ip6_src) && - (flags & IPV6_UNSPECSRC) == 0) { - error = EOPNOTSUPP; - IP6STAT_INC(ip6s_badscope); - goto bad; - } - if (IN6_IS_ADDR_MULTICAST(&ip6->ip6_src)) { - error = EOPNOTSUPP; - IP6STAT_INC(ip6s_badscope); - goto bad; + /* + * Result: IPv6 hbh dest1 rthdr dest2 payload. + * m will point to IPv6 header. mprev will point to the + * extension header prior to dest2 (rthdr in the above case). + */ + MAKE_CHAIN(exthdrs.ip6e_hbh, mprev, nexthdrp, IPPROTO_HOPOPTS); + MAKE_CHAIN(exthdrs.ip6e_dest1, mprev, nexthdrp, + IPPROTO_DSTOPTS); + MAKE_CHAIN(exthdrs.ip6e_rthdr, mprev, nexthdrp, + IPPROTO_ROUTING); } IP6STAT_INC(ip6s_localout); From owner-svn-src-all@freebsd.org Thu Feb 20 11:19:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0815825CE56; Thu, 20 Feb 2020 11:19:29 +0000 (UTC) (envelope-from tijl@freebsd.org) Received: from mailrelay110.isp.belgacom.be (mailrelay110.isp.belgacom.be [195.238.20.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "relay.skynet.be", Issuer "GlobalSign RSA OV SSL CA 2018" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NXDJ09f2z4Xs1; Thu, 20 Feb 2020 11:19:27 +0000 (UTC) (envelope-from tijl@freebsd.org) IronPort-SDR: rOPQA3/58tWaJBQvKC7Iwi/KeMJYoeiAIbgs8pWxeMZ8qRwdbkgh8f6RiVHq0aQAcHFT2B9hx9 YuIuOedHjkI2h/7IFhUew4S6+FIJiAJ5V9SyBybvifW+GKrIiqyh1KdRwO4CM8c2CnrOXyuzVo NPmf84g6l5eg2PjcV6Tcdpcg3vqiVhuoHwLCQStMNBEMJR23ACemXMVXa+cG8/i1wa4xpg9of6 XntB4LXnW0KprhNa7MKCyRlU9raex7mRkXzUN9ROOEuDjUMZlvY+3Bcbj9jM2+iOwP+wUwi+u6 R2k= X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2CCCAALa05e/8Ub9FFmHQEBAQkBEQU?= =?us-ascii?q?FAYF7gilZE1UgEhYUjReGBQGCEIg9giKQXQkBAQEBAQEBAQErDAQBAYRAAoI?= =?us-ascii?q?FJzgTAgMBAQsBAQYBAQEBAQUEbYRrTAyFZwEFOhwjEAsOBgQJJQ9IBhODJ4J?= =?us-ascii?q?/C654hDUBCwGBCIQsfwaBOIw+ggCEJD6ES4VuBI4aiTyYO4JFh0+PBiibLYR?= =?us-ascii?q?GkySUXCKBWE0wCIMnUBgNlySFQkADMI5kAQE?= X-IPAS-Result: =?us-ascii?q?A2CCCAALa05e/8Ub9FFmHQEBAQkBEQUFAYF7gilZE1UgE?= =?us-ascii?q?hYUjReGBQGCEIg9giKQXQkBAQEBAQEBAQErDAQBAYRAAoIFJzgTAgMBAQsBA?= =?us-ascii?q?QYBAQEBAQUEbYRrTAyFZwEFOhwjEAsOBgQJJQ9IBhODJ4J/C654hDUBCwGBC?= =?us-ascii?q?IQsfwaBOIw+ggCEJD6ES4VuBI4aiTyYO4JFh0+PBiibLYRGkySUXCKBWE0wC?= =?us-ascii?q?IMnUBgNlySFQkADMI5kAQE?= Received: from 197.27-244-81.adsl-dyn.isp.belgacom.be (HELO kalimero.tijl.coosemans.org) ([81.244.27.197]) by relay.skynet.be with ESMTP; 20 Feb 2020 12:19:05 +0100 Received: from localhost (localhost [127.0.0.1]) by kalimero.tijl.coosemans.org (8.15.2/8.15.2) with ESMTP id 01KBIxg0068244; Thu, 20 Feb 2020 12:19:01 +0100 (CET) (envelope-from tijl@FreeBSD.org) Date: Thu, 20 Feb 2020 12:18:58 +0100 From: =?UTF-8?B?VMSzbA==?= Coosemans To: Baptiste Daroussin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r358164 - in head: . lib/ncurses/ncurses Message-ID: <20200220121858.7c437ab3@FreeBSD.org> In-Reply-To: <202002200912.01K9C7gd067909@repo.freebsd.org> References: <202002200912.01K9C7gd067909@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 48NXDJ09f2z4Xs1 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.87 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.88)[-0.884,0]; ASN(0.00)[asn:5432, ipnet:195.238.0.0/19, country:BE]; NEURAL_HAM_LONG(-0.99)[-0.988,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 11:19:29 -0000 On Thu, 20 Feb 2020 09:12:07 +0000 (UTC) Baptiste Daroussin wrote: > Author: bapt > Date: Thu Feb 20 09:12:07 2020 > New Revision: 358164 > URL: https://svnweb.freebsd.org/changeset/base/358164 > > Log: > ncurses: bump shlib number to version 9 > > ABI has change in between ncurses 5 or 6. While theorically ncurses 6 is buildable with > backward compatibility, I fail at building in a way where the application linked against > the previous version of ncurses are rendering properly. > Let's go on the new ABI which provides all the latest features. > > A compat12x package is cooking for backward compatibility > > Modified: > head/ObsoleteFiles.inc > head/lib/ncurses/ncurses/Makefile > > Modified: head/ObsoleteFiles.inc > ============================================================================== > --- head/ObsoleteFiles.inc Thu Feb 20 09:02:59 2020 (r358163) > +++ head/ObsoleteFiles.inc Thu Feb 20 09:12:07 2020 (r358164) > @@ -36,6 +36,12 @@ > # xargs -n1 | sort | uniq -d; > # done > > +# 20200220: Upgrade of ncurses, shlib bumped to version 9 > +OLD_FILES+=lib/libncurses.so.8 > +OLD_FILES+=lib/libncursesw.so.8 > +OLD_FILES+=usr/lib32/libncurses.so.8 > +OLD_FILES+=usr/lib32/libncursesw.so.8 This should be OLD_LIBS instead of OLD_FILES. From owner-svn-src-all@freebsd.org Thu Feb 20 14:46:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0CFAE23B06D; Thu, 20 Feb 2020 14:46:49 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NcqX6Mhrz4G0R; Thu, 20 Feb 2020 14:46:48 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-il1-f169.google.com with SMTP id f10so23865265ils.8; Thu, 20 Feb 2020 06:46:48 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=26hmb9ZwRRrJDdjHn+mgPvsVKi/xwyO6GqWTKvY+1CE=; b=Kd8MzXGd5WzY+hcNUCdnU1GrJDm4GphBN5TQw99jPrZyHT8XfSn3KsUqFBkAXAUSgx I3EmqqMfIqXSh3RjEENxcvPzw4PM9fLTxf4xmdZu8I9kTcdVZws9q8X7ow/m32NovtdO LtBmcCrwAEyYah1oV+9C2vp3q3HhM89xIWL6ijfyDqb87633y8PjueNP9D1uwnVI/ZzT JBH8yoyWG9pvJ1TUKGsCqRs5X6LFfkCh8M0mKQV88XX+EJJaSvPLeCOXJ8zViLiKPM7D TkeK/1ZwJni3dfW0owsQmHfGYODic2Vsv+Z7xIKOCLp7TTm3oqOIhqdVkKKW860e6eWO 8kLw== X-Gm-Message-State: APjAAAUIIcaFjs0sFRxT8dr1YY/LzMgQumyI7TAy6XdXuZmf1YOAqLiB WchaFamDVC5FFMSAbRLY8dNUDL/JyZyL8FZOE5IG9MUm X-Google-Smtp-Source: APXvYqxAHjoeDbw/h/fPYz3Ocfs4Fg7pkpPs5PccP2gU7nfdUNCHEZ+5FChOvAP4thmjIER8+O0792fn6hO0P0h0tN4= X-Received: by 2002:a92:5cda:: with SMTP id d87mr30388870ilg.100.1582210006810; Thu, 20 Feb 2020 06:46:46 -0800 (PST) MIME-Version: 1.0 References: <202002200354.01K3s8ib077553@repo.freebsd.org> <48DC2EEA-22D6-4A0D-84CE-3F0770962DB3@yuripv.me> In-Reply-To: From: Ed Maste Date: Thu, 20 Feb 2020 09:46:33 -0500 Message-ID: Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb To: Li-Wen Hsu Cc: Xin LI , Yuri Pankov , "Pedro F. Giffuni" , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48NcqX6Mhrz4G0R X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 14:46:49 -0000 On Thu, 20 Feb 2020 at 04:56, Li-Wen Hsu wrote: > > Please note this is not fixed in ci.freebsd.org yet. The reason is it > directly goes to src/release and perform `make packagesystem` to > generate kernel.txz and base.txz. If I read release(7) correctly, > this should be performed under a fresh installed environment. I am > checking how to fix this. Should we revert the change until a build fix can be committed too? From owner-svn-src-all@freebsd.org Thu Feb 20 14:54:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7C73F23B298; Thu, 20 Feb 2020 14:54:12 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nd0420j2z4TYF; Thu, 20 Feb 2020 14:54:12 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.3] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id 7A4F8EE8C; Thu, 20 Feb 2020 14:54:11 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb To: Ed Maste , Li-Wen Hsu Cc: Xin LI , Yuri Pankov , src-committers , svn-src-all , svn-src-head References: <202002200354.01K3s8ib077553@repo.freebsd.org> <48DC2EEA-22D6-4A0D-84CE-3F0770962DB3@yuripv.me> From: Pedro Giffuni Autocrypt: addr=pfg@FreeBSD.org; keydata= mQENBFU6tr0BCAC/MABNSg8O9sLZZ1cCl8GczwjnyF6WEvtfLpIkAWEo49H3TuG3cMNwuavi xnwASLS73ppj6ziWK1QsfdAaA8Mkvk25UtenfsCTiA38q0RwvHPn8W6eorJ6rYHRReNnncA+ oPLrLmL6IOUK9dlcLJP5i45PGwpx9YNI+D/BFcji7enpnsGjunhRE3NJ1YBXiKMormfnPvpV yVWpKnnB03nFIQphW108G5U9wytZqsiGkshn0ar0FBGsdJ19d/ePBuMceaWRtf0nJrNkC9sB D8ISmFp6/DAoQBhyJxvemC83/QNV5u9kGdwemaKOJ6SdAmBBZYbdAxCO8i/Eq33mrXx7ABEB AAG0H1BlZHJvIEdpZmZ1bmkgPHBmZ0BGcmVlQlNELm9yZz6JATcEEwEKACEFAlU6tr0CGwMF CwkIBwMFFQoJCAsFFgMCAQACHgECF4AACgkQzWsLls7yLQTFEgf/blVvg7MPpZp/KWwEShqI VpkJLhXLjvYzjoSCrpuVtNMCdpYh3L6gY5mBr9VASc/iWb6DUUxX9g6oLQ4l1e8eEwSHdXda RG/NjxJhz8dsLO8H6dnwl6HEZ+nymXIibX6GGy10gQeyv6sNGsgSCwlyFJZcv2lW2M1ev11w 3yY1eQnIsPq4vyIMYEQ1aIIYu1JPNEzRZ7sDuRGdnvMH7FhHaNzSs8d4PHw2JSwDHPuN/W6S UhK+A/TDW9BQ4ZzDRpKrIPfWqkAa+76NtGglmJWS99WG7rJAoPUIj2xpzojoQbT3z1vbeGxK cgGvOyQMlrJSRZwOtFuhcdbQ6DX4ETI7NrkBDQRVOra9AQgA1ACQK5u/H1MgjSKXQttCv8Kz /k7fHmaWLrhPAJH6bqR7wpv/Hz2y/8uD+5qg/vk9/pwYuj9TzbCXs9NeWye/+DV8Aw7Z22b2 OjB0VbEpHREDs0zS+0KMP7STOPpyHVYdgWCQ7Qgd/LG0gfUP5M0R8s2OH3Il8rcS4ZeEd/tr O3LyoDiK4mInT/X3oJX7xetws3jpSPk51TDOplamehXjndwemttUTw1czITF9MfDosaihoUr o6NcAtBzFYIF2NuKhrASs9prec+e36a3lCUbMOHof62TnBZZnWtNdmnv1RNv3q17yavqi0F/ rvtmckHhJ8NcnYL8/gGD48nhKf60UQARAQABiQEfBBgBCgAJBQJVOra9AhsMAAoJEM1rC5bO 8i0EkGAH+QG/1y0mcOBFsouMdmDUpRusRxWHdmdIjFt4FJ2/K7YDyrliKcUTOp+zjCyfLVE6 UELiRvsT+mg4QcZL7e+JAuLkW5LhiAskz8/1fRgnwVquTcYd7TPJrYnejpLyumhbsgo0bN4G s9yrJeQpKbln6YQxifzT4Eqot3aEeZxlUEKzQd0Vq1ci8PTI1krvda9x+FdGvKxY9Iz4T+SW NZsvBaCXo9hjJZ7U1VaCdWxgHhy5tuTuMAGGS9lCGbdvdKuAbSQDtcvx0jcY5s7Q2t2udCyV mRDbQYrl8PEyJa3Cz3NoBD9g9EEr9PlX05hOWMVf3M5pS4j/XKbzUbKqiBy1VPw= Organization: FreeBSD Message-ID: <17cf5f33-309d-5bba-dde8-bd85ce0ba191@FreeBSD.org> Date: Thu, 20 Feb 2020 09:54:09 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 14:54:12 -0000 On 2020-02-20 09:46, Ed Maste wrote: > On Thu, 20 Feb 2020 at 04:56, Li-Wen Hsu wrote: >> Please note this is not fixed in ci.freebsd.org yet. The reason is it >> directly goes to src/release and perform `make packagesystem` to >> generate kernel.txz and base.txz. If I read release(7) correctly, >> this should be performed under a fresh installed environment. I am >> checking how to fix this. > Should we revert the change until a build fix can be committed too? I am OK with reverting the change, and I am rather surprised such a simply change could have broken the build. This said, it is probably good that the error is reproducible. Pedro. From owner-svn-src-all@freebsd.org Thu Feb 20 15:10:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AF13423BB05; Thu, 20 Feb 2020 15:10:00 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io1-f68.google.com (mail-io1-f68.google.com [209.85.166.68]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NdLJ3XNCz3M79; Thu, 20 Feb 2020 15:10:00 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io1-f68.google.com with SMTP id z16so4997954iod.11; Thu, 20 Feb 2020 07:10:00 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=fifNgHSavXNNG7msZKuhmbC5NIMTRQitIs2krCZJOhY=; b=SOWZaxp0qiVSbBdbEKJXAdSNGPk3I1947xNyhP/FrulS9xD4VXnom7ENwkRf0up6jL nbg5UYB1NmsjivOGJF9+gbDzn3ooDPoX9ymOcS3BuCH3h3mv8+56bKb0BM/i/sIXkDGI 4qzfm6a1He/A772mw+heok/9m4ur+Lf0zwdB1S7d40Y0/KZQw58d7+/xRynul7zcb+V/ HDMNGtFAy8J5zP8Ihn5uvWH1O6fT6eFwcqZZ6oFZ8zTuWMBgbCCbFUZb/JEJkrAdfJ+S xHJBbdQaU8tH+XDaLC2usiOoS4tt5RBFQ/wVtYx1odMAEoN80qA+BjZxErN9b0VQlX5a okqg== X-Gm-Message-State: APjAAAWrX21eRhHULPGFzYSsoemHYtQQoGiaEOMkkXbjgIEASTdhVBTU vctDxQrpqAiZ2zQ1epUiz0lVoPWBFJEH7AZ2Gpn/pt8X X-Google-Smtp-Source: APXvYqzG0IkOJL5RG6SyMJtxXsZ0OW91FlhAtPgDyluPSm3xaLsyccu/qjpVmc/BhBne5fzWstG/S8MGgAWKG8kuLHU= X-Received: by 2002:a6b:a13:: with SMTP id z19mr6096622ioi.182.1582211398119; Thu, 20 Feb 2020 07:09:58 -0800 (PST) MIME-Version: 1.0 References: <202002200354.01K3s8ib077553@repo.freebsd.org> <48DC2EEA-22D6-4A0D-84CE-3F0770962DB3@yuripv.me> <17cf5f33-309d-5bba-dde8-bd85ce0ba191@FreeBSD.org> In-Reply-To: <17cf5f33-309d-5bba-dde8-bd85ce0ba191@FreeBSD.org> From: Ed Maste Date: Thu, 20 Feb 2020 10:09:46 -0500 Message-ID: Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb To: Pedro Giffuni Cc: Li-Wen Hsu , Xin LI , Yuri Pankov , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48NdLJ3XNCz3M79 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 15:10:00 -0000 On Thu, 20 Feb 2020 at 09:54, Pedro Giffuni wrote: > > On 2020-02-20 09:46, Ed Maste wrote: > > On Thu, 20 Feb 2020 at 04:56, Li-Wen Hsu wrote: > >> Please note this is not fixed in ci.freebsd.org yet. The reason is it > >> directly goes to src/release and perform `make packagesystem` to > >> generate kernel.txz and base.txz. If I read release(7) correctly, > >> this should be performed under a fresh installed environment. I am > >> checking how to fix this. > > Should we revert the change until a build fix can be committed too? > > I am OK with reverting the change, and I am rather surprised such a > simply change could have broken the build. Indeed, this has uncovered a broken dependency in our build process (i.e., that the build host's services_mkdb is being used). IMO we should: 1. Revert the change for now (pfg will you take care of it?) 2. MFC the MAX_PROTO increase as soon as possible 3. Try to fix the use of host's services_mkdb 4. Recommit after either #3 is done, or FreeBSD 12.2 and 11.4 are released From owner-svn-src-all@freebsd.org Thu Feb 20 15:34:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CB84C23CA6E; Thu, 20 Feb 2020 15:34:04 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Ndt41q0xz4cy0; Thu, 20 Feb 2020 15:34:04 +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 1F46D23F0C; Thu, 20 Feb 2020 15:34:04 +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 01KFY39Q095512; Thu, 20 Feb 2020 15:34:03 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KFY35P095508; Thu, 20 Feb 2020 15:34:03 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002201534.01KFY35P095508@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 15:34:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358168 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 358168 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 15:34:05 -0000 Author: kib Date: Thu Feb 20 15:34:02 2020 New Revision: 358168 URL: https://svnweb.freebsd.org/changeset/base/358168 Log: Do not read sigfastblock word on syscall entry. On machines with SMAP, fueword executes two serializing instructions which can be seen in microbenchmarks. As a measure to restore microbenchmark numbers, only read the word on the attempt to deliver signal in ast(). If the word is set, signal is not delivered and word is kept, preventing interruption of interruptible sleeps by signals until userspace calls sigfastblock(UNBLOCK) which clears the word. This way, the spurious EINTR that userspace can see while in critical section is on first interruptible sleep, if a signal is pending, and on signal posting. It is believed that it is not important for rtld and lbithr critical sections. It might be visible for the application code e.g. for the callback of dl_iterate_phdr(3), but again the belief is that the non-compliance is acceptable. Most important is that the retry of the sleeping syscall does not interrupt unless additional signal is posted. For now I added the knob kern.sigfastblock_fetch_always to enable the word read on syscall entry to be able to diagnose possible issues due to spurious EINTR. While there, do some code restructuting to have all sigfastblock() handling located in kern_sig.c. Reviewed by: jeff Discussed with: mjg Tested by: pho Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D23622 Modified: head/sys/kern/kern_exec.c head/sys/kern/kern_sig.c head/sys/kern/subr_syscall.c head/sys/kern/subr_trap.c head/sys/sys/signalvar.h Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Thu Feb 20 10:56:12 2020 (r358167) +++ head/sys/kern/kern_exec.c Thu Feb 20 15:34:02 2020 (r358168) @@ -1035,9 +1035,7 @@ exec_new_vmspace(struct image_params *imgp, struct sys imgp->vmspace_destroyed = 1; imgp->sysent = sv; - td->td_pflags &= ~TDP_SIGFASTBLOCK; - td->td_sigblock_ptr = NULL; - td->td_sigblock_val = 0; + sigfastblock_clear(td); /* May be called with Giant held */ EVENTHANDLER_DIRECT_INVOKE(process_exec, p, imgp); Modified: head/sys/kern/kern_sig.c ============================================================================== --- head/sys/kern/kern_sig.c Thu Feb 20 10:56:12 2020 (r358167) +++ head/sys/kern/kern_sig.c Thu Feb 20 15:34:02 2020 (r358168) @@ -157,6 +157,12 @@ static int kern_lognosys = 0; SYSCTL_INT(_kern, OID_AUTO, lognosys, CTLFLAG_RWTUN, &kern_lognosys, 0, "Log invalid syscalls"); +__read_frequently bool sigfastblock_fetch_always = false; +SYSCTL_BOOL(_kern, OID_AUTO, sigfastblock_fetch_always, CTLFLAG_RWTUN, + &sigfastblock_fetch_always, 0, + "Fetch sigfastblock word on each syscall entry for proper " + "blocking semantic"); + SYSINIT(signal, SI_SUB_P1003_1B, SI_ORDER_FIRST+3, sigqueue_start, NULL); /* @@ -2005,6 +2011,7 @@ trapsignal(struct thread *td, ksiginfo_t *ksi) code = ksi->ksi_code; KASSERT(_SIG_VALID(sig), ("invalid signal")); + sigfastblock_fetch(td); PROC_LOCK(p); ps = p->p_sigacts; mtx_lock(&ps->ps_mtx); @@ -3952,6 +3959,42 @@ sig_drop_caught(struct proc *p) } } +static void +sigfastblock_failed(struct thread *td, bool sendsig, bool write) +{ + ksiginfo_t ksi; + + /* + * Prevent further fetches and SIGSEGVs, allowing thread to + * issue syscalls despite corruption. + */ + sigfastblock_clear(td); + + if (!sendsig) + return; + ksiginfo_init_trap(&ksi); + ksi.ksi_signo = SIGSEGV; + ksi.ksi_code = write ? SEGV_ACCERR : SEGV_MAPERR; + ksi.ksi_addr = td->td_sigblock_ptr; + trapsignal(td, &ksi); +} + +static bool +sigfastblock_fetch_sig(struct thread *td, bool sendsig, uint32_t *valp) +{ + uint32_t res; + + if ((td->td_pflags & TDP_SIGFASTBLOCK) == 0) + return (true); + if (fueword32((void *)td->td_sigblock_ptr, &res) == -1) { + sigfastblock_failed(td, sendsig, false); + return (false); + } + *valp = res; + td->td_sigblock_val = res & ~SIGFASTBLOCK_FLAGS; + return (true); +} + int sys_sigfastblock(struct thread *td, struct sigfastblock_args *uap) { @@ -3960,6 +4003,7 @@ sys_sigfastblock(struct thread *td, struct sigfastbloc uint32_t oldval; error = 0; + p = td->td_proc; switch (uap->cmd) { case SIGFASTBLOCK_SETPTR: if ((td->td_pflags & TDP_SIGFASTBLOCK) != 0) { @@ -3975,18 +4019,22 @@ sys_sigfastblock(struct thread *td, struct sigfastbloc break; case SIGFASTBLOCK_UNBLOCK: - if ((td->td_pflags & TDP_SIGFASTBLOCK) != 0) { + if ((td->td_pflags & TDP_SIGFASTBLOCK) == 0) { error = EINVAL; break; } -again: - res = casueword32(td->td_sigblock_ptr, SIGFASTBLOCK_PEND, - &oldval, 0); - if (res == -1) { - error = EFAULT; - break; - } - if (res == 1) { + + for (;;) { + res = casueword32(td->td_sigblock_ptr, + SIGFASTBLOCK_PEND, &oldval, 0); + if (res == -1) { + error = EFAULT; + sigfastblock_failed(td, false, true); + break; + } + if (res == 0) + break; + MPASS(res == 1); if (oldval != SIGFASTBLOCK_PEND) { error = EBUSY; break; @@ -3994,8 +4042,22 @@ again: error = thread_check_susp(td, false); if (error != 0) break; - goto again; } + if (error != 0) + break; + + /* + * td_sigblock_val is cleared there, but not on a + * syscall exit. The end effect is that a single + * interruptible sleep, while user sigblock word is + * set, might return EINTR or ERESTART to usermode + * without delivering signal. All further sleeps, + * until userspace clears the word and does + * sigfastblock(UNBLOCK), observe current word and no + * longer get interrupted. It is slight + * non-conformance, with alternative to have read the + * sigblock word on each syscall entry. + */ td->td_sigblock_val = 0; /* @@ -4003,7 +4065,6 @@ again: * signals to current thread. But notify others about * fake unblock. */ - p = td->td_proc; if (error == 0 && p->p_numthreads != 1) { PROC_LOCK(p); reschedule_signals(p, td->td_sigmask, 0); @@ -4016,8 +4077,7 @@ again: error = EINVAL; break; } - res = fueword32(td->td_sigblock_ptr, &oldval); - if (res == -1) { + if (!sigfastblock_fetch_sig(td, false, &oldval)) { error = EFAULT; break; } @@ -4025,8 +4085,7 @@ again: error = EBUSY; break; } - td->td_pflags &= ~TDP_SIGFASTBLOCK; - td->td_sigblock_val = 0; + sigfastblock_clear(td); break; default: @@ -4037,32 +4096,59 @@ again: } void -fetch_sigfastblock(struct thread *td) +sigfastblock_clear(struct thread *td) { + struct proc *p; + bool resched; if ((td->td_pflags & TDP_SIGFASTBLOCK) == 0) return; - if (fueword32(td->td_sigblock_ptr, &td->td_sigblock_val) == -1) { - fetch_sigfastblock_failed(td, false); - return; + td->td_sigblock_val = 0; + resched = (td->td_pflags & TDP_SIGFASTPENDING) != 0; + td->td_pflags &= ~(TDP_SIGFASTBLOCK | TDP_SIGFASTPENDING); + if (resched) { + p = td->td_proc; + PROC_LOCK(p); + reschedule_signals(p, td->td_sigmask, 0); + PROC_UNLOCK(p); } - td->td_sigblock_val &= ~SIGFASTBLOCK_FLAGS; } void -fetch_sigfastblock_failed(struct thread *td, bool write) +sigfastblock_fetch(struct thread *td) { - ksiginfo_t ksi; + uint32_t val; - /* - * Prevent further fetches and SIGSEGVs, allowing thread to - * issue syscalls despite corruption. - */ - td->td_pflags &= ~TDP_SIGFASTBLOCK; + (void)sigfastblock_fetch_sig(td, true, &val); +} - ksiginfo_init_trap(&ksi); - ksi.ksi_signo = SIGSEGV; - ksi.ksi_code = write ? SEGV_ACCERR : SEGV_MAPERR; - ksi.ksi_addr = td->td_sigblock_ptr; - trapsignal(td, &ksi); +void +sigfastblock_setpend(struct thread *td) +{ + int res; + uint32_t oldval; + + if ((td->td_pflags & TDP_SIGFASTBLOCK) == 0) + return; + res = fueword32((void *)td->td_sigblock_ptr, &oldval); + if (res == -1) { + sigfastblock_failed(td, true, false); + return; + } + for (;;) { + res = casueword32(td->td_sigblock_ptr, oldval, &oldval, + oldval | SIGFASTBLOCK_PEND); + if (res == -1) { + sigfastblock_failed(td, true, true); + return; + } + if (res == 0) { + td->td_sigblock_val = oldval & ~SIGFASTBLOCK_FLAGS; + td->td_pflags &= ~TDP_SIGFASTPENDING; + break; + } + MPASS(res == 1); + if (thread_check_susp(td, false) != 0) + break; + } } Modified: head/sys/kern/subr_syscall.c ============================================================================== --- head/sys/kern/subr_syscall.c Thu Feb 20 10:56:12 2020 (r358167) +++ head/sys/kern/subr_syscall.c Thu Feb 20 15:34:02 2020 (r358168) @@ -132,11 +132,11 @@ syscallenter(struct thread *td) } /* - * Fetch fast sigblock value at the time of syscall - * entry because sleepqueue primitives might call - * cursig(). + * Fetch fast sigblock value at the time of syscall entry to + * handle sleepqueue primitives which might call cursig(). */ - fetch_sigfastblock(td); + if (__predict_false(sigfastblock_fetch_always)) + (void)sigfastblock_fetch(td); /* Let system calls set td_errno directly. */ td->td_pflags &= ~TDP_NERRNO; Modified: head/sys/kern/subr_trap.c ============================================================================== --- head/sys/kern/subr_trap.c Thu Feb 20 10:56:12 2020 (r358167) +++ head/sys/kern/subr_trap.c Thu Feb 20 15:34:02 2020 (r358168) @@ -134,6 +134,7 @@ userret(struct thread *td, struct trapframe *frame) #ifdef KTRACE KTRUSERRET(td); #endif + td_softdep_cleanup(td); MPASS(td->td_su == NULL); @@ -222,8 +223,7 @@ ast(struct trapframe *framep) { struct thread *td; struct proc *p; - uint32_t oldval; - int flags, sig, res; + int flags, sig; td = curthread; p = td->td_proc; @@ -325,11 +325,12 @@ ast(struct trapframe *framep) */ if (flags & TDF_NEEDSIGCHK || p->p_pendingcnt > 0 || !SIGISEMPTY(p->p_siglist)) { - fetch_sigfastblock(td); + sigfastblock_fetch(td); PROC_LOCK(p); mtx_lock(&p->p_sigacts->ps_mtx); if ((td->td_pflags & TDP_SIGFASTBLOCK) != 0 && td->td_sigblock_val != 0) { + sigfastblock_setpend(td); reschedule_signals(p, fastblock_mask, SIGPROCMASK_PS_LOCKED | SIGPROCMASK_FASTBLK); } else { @@ -346,32 +347,8 @@ ast(struct trapframe *framep) * Handle deferred update of the fast sigblock value, after * the postsig() loop was performed. */ - if (td->td_pflags & TDP_SIGFASTPENDING) { - td->td_pflags &= ~TDP_SIGFASTPENDING; - res = fueword32(td->td_sigblock_ptr, &oldval); - if (res == -1) { - fetch_sigfastblock_failed(td, false); - } else { - for (;;) { - oldval |= SIGFASTBLOCK_PEND; - res = casueword32(td->td_sigblock_ptr, oldval, - &oldval, oldval | SIGFASTBLOCK_PEND); - if (res == -1) { - fetch_sigfastblock_failed(td, true); - break; - } - if (res == 0) { - td->td_sigblock_val = oldval & - ~SIGFASTBLOCK_FLAGS; - break; - } - MPASS(res == 1); - res = thread_check_susp(td, false); - if (res != 0) - break; - } - } - } + if (td->td_pflags & TDP_SIGFASTPENDING) + sigfastblock_setpend(td); /* * We need to check to see if we have to exit or wait due to a Modified: head/sys/sys/signalvar.h ============================================================================== --- head/sys/sys/signalvar.h Thu Feb 20 10:56:12 2020 (r358167) +++ head/sys/sys/signalvar.h Thu Feb 20 15:34:02 2020 (r358168) @@ -273,6 +273,7 @@ int __sys_sigfastblock(int cmd, void *ptr); #ifdef _KERNEL extern sigset_t fastblock_mask; +extern bool sigfastblock_fetch_always; /* Return nonzero if process p has an unmasked pending signal. */ #define SIGPENDING(td) \ @@ -382,8 +383,6 @@ sigallowstop(int prev) int cursig(struct thread *td); void execsigs(struct proc *p); -void fetch_sigfastblock(struct thread *td); -void fetch_sigfastblock_failed(struct thread *td, bool write); void gsignal(int pgid, int sig, ksiginfo_t *ksi); void killproc(struct proc *p, char *why); ksiginfo_t * ksiginfo_alloc(int wait); @@ -405,6 +404,9 @@ void sig_drop_caught(struct proc *p); void sigexit(struct thread *td, int sig) __dead2; int sigev_findtd(struct proc *p, struct sigevent *sigev, struct thread **); int sig_ffs(sigset_t *set); +void sigfastblock_clear(struct thread *td); +void sigfastblock_fetch(struct thread *td); +void sigfastblock_setpend(struct thread *td); void siginit(struct proc *p); void signotify(struct thread *td); void sigqueue_delete(struct sigqueue *queue, int sig); From owner-svn-src-all@freebsd.org Thu Feb 20 15:35:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2E08023CB3F; Thu, 20 Feb 2020 15:35:03 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NdvB4v0rz4dxB; Thu, 20 Feb 2020 15:35:02 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.3] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id 280A3F340; Thu, 20 Feb 2020 15:35:01 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb To: Ed Maste Cc: Li-Wen Hsu , Xin LI , Yuri Pankov , src-committers , svn-src-all , svn-src-head References: <202002200354.01K3s8ib077553@repo.freebsd.org> <48DC2EEA-22D6-4A0D-84CE-3F0770962DB3@yuripv.me> <17cf5f33-309d-5bba-dde8-bd85ce0ba191@FreeBSD.org> From: Pedro Giffuni Organization: FreeBSD Message-ID: Date: Thu, 20 Feb 2020 10:35:00 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 15:35:03 -0000 On 20/02/2020 10:09, Ed Maste wrote: > On Thu, 20 Feb 2020 at 09:54, Pedro Giffuni wrote: >> On 2020-02-20 09:46, Ed Maste wrote: >>> On Thu, 20 Feb 2020 at 04:56, Li-Wen Hsu wrote: >>>> Please note this is not fixed in ci.freebsd.org yet. The reason is it >>>> directly goes to src/release and perform `make packagesystem` to >>>> generate kernel.txz and base.txz. If I read release(7) correctly, >>>> this should be performed under a fresh installed environment. I am >>>> checking how to fix this. >>> Should we revert the change until a build fix can be committed too? >> I am OK with reverting the change, and I am rather surprised such a >> simply change could have broken the build. > Indeed, this has uncovered a broken dependency in our build process > (i.e., that the build host's services_mkdb is being used). > > IMO we should: > > 1. Revert the change for now (pfg will you take care of it?) Yes, Give me some minutes ... > 2. MFC the MAX_PROTO increase as soon as possible > 3. Try to fix the use of host's services_mkdb > 4. Recommit after either #3 is done, or FreeBSD 12.2 and 11.4 are released Pedro. From owner-svn-src-all@freebsd.org Thu Feb 20 15:37:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3076523CDF2; Thu, 20 Feb 2020 15:37:46 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NdyK6Jx7z3D6h; Thu, 20 Feb 2020 15:37:45 +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 3B5F923F23; Thu, 20 Feb 2020 15:37:45 +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 01KFbixC095847; Thu, 20 Feb 2020 15:37:44 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KFbiL6095846; Thu, 20 Feb 2020 15:37:44 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202002201537.01KFbiL6095846@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 20 Feb 2020 15:37:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358169 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 358169 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 15:37:46 -0000 Author: tuexen Date: Thu Feb 20 15:37:44 2020 New Revision: 358169 URL: https://svnweb.freebsd.org/changeset/base/358169 Log: Remove an unused timer type. MFC after: 1 week Modified: head/sys/netinet/sctp_constants.h Modified: head/sys/netinet/sctp_constants.h ============================================================================== --- head/sys/netinet/sctp_constants.h Thu Feb 20 15:34:02 2020 (r358168) +++ head/sys/netinet/sctp_constants.h Thu Feb 20 15:37:44 2020 (r358169) @@ -543,14 +543,13 @@ __FBSDID("$FreeBSD$"); #define SCTP_TIMER_TYPE_ASCONF 10 #define SCTP_TIMER_TYPE_SHUTDOWNGUARD 11 #define SCTP_TIMER_TYPE_AUTOCLOSE 12 -#define SCTP_TIMER_TYPE_EVENTWAKE 13 -#define SCTP_TIMER_TYPE_STRRESET 14 -#define SCTP_TIMER_TYPE_INPKILL 15 -#define SCTP_TIMER_TYPE_ASOCKILL 16 -#define SCTP_TIMER_TYPE_ADDR_WQ 17 -#define SCTP_TIMER_TYPE_PRIM_DELETED 18 +#define SCTP_TIMER_TYPE_STRRESET 13 +#define SCTP_TIMER_TYPE_INPKILL 14 +#define SCTP_TIMER_TYPE_ASOCKILL 15 +#define SCTP_TIMER_TYPE_ADDR_WQ 16 +#define SCTP_TIMER_TYPE_PRIM_DELETED 17 /* add new timers here - and increment LAST */ -#define SCTP_TIMER_TYPE_LAST 19 +#define SCTP_TIMER_TYPE_LAST 18 #define SCTP_IS_TIMER_TYPE_VALID(t) (((t) > SCTP_TIMER_TYPE_NONE) && \ ((t) < SCTP_TIMER_TYPE_LAST)) From owner-svn-src-all@freebsd.org Thu Feb 20 15:52:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EDEF823D77A; Thu, 20 Feb 2020 15:52:36 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NfHS6jDQz449b; Thu, 20 Feb 2020 15:52:36 +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 DB93B24313; Thu, 20 Feb 2020 15:52:36 +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 01KFqaQm007179; Thu, 20 Feb 2020 15:52:36 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KFqaQo007178; Thu, 20 Feb 2020 15:52:36 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <202002201552.01KFqaQo007178@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 20 Feb 2020 15:52:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358170 - head/usr.sbin/services_mkdb X-SVN-Group: head X-SVN-Commit-Author: pfg X-SVN-Commit-Paths: head/usr.sbin/services_mkdb X-SVN-Commit-Revision: 358170 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 15:52:37 -0000 Author: pfg Date: Thu Feb 20 15:52:36 2020 New Revision: 358170 URL: https://svnweb.freebsd.org/changeset/base/358170 Log: Revert r358153: it is causing unexpected issues with the build system. Modified: head/usr.sbin/services_mkdb/services Modified: head/usr.sbin/services_mkdb/services ============================================================================== --- head/usr.sbin/services_mkdb/services Thu Feb 20 15:37:44 2020 (r358169) +++ head/usr.sbin/services_mkdb/services Thu Feb 20 15:52:36 2020 (r358170) @@ -1,62 +1,65 @@ # # Network services, Internet style # -# Service names and port numbers are used to distinguish between different -# services that run over transport protocols such as TCP, UDP, DCCP, and -# SCTP. +# Note that it is presently the policy of IANA to assign a single well-known +# port number for both TCP and UDP; hence, most entries here have two entries +# even if the protocol doesn't support UDP operations. # # The latest IANA port assignments can be gotten from # -# https://www.iana.org/assignments/service-names-port-numbers/ +# http://www.iana.org/assignments/port-numbers # -# System Ports are those from 0 through 1023. -# User Ports are those from 1024 through 49151. -# Dynamic and/or Private Ports are those from 49152 through 65535. +# The Well Known Ports are those from 0 through 1023. +# The Registered Ports are those from 1024 through 49151 +# The Dynamic and/or Private Ports are those from 49152 through 65535 # -# Note that it is presently the policy of IANA to assign a single well-known -# port number for both TCP and UDP; hence, most entries here have two entries -# even if the protocol doesn't support UDP operations. +# Kerberos services are for Kerberos v4, and are unofficial. Sites running +# v5 should uncomment v5 entries and comment v4 entries. # # $FreeBSD$ # From: @(#)services 5.8 (Berkeley) 5/9/91 # # WELL KNOWN PORT NUMBERS # +rtmp 1/ddp #Routing Table Maintenance Protocol tcpmux 1/tcp #TCP Port Service Multiplexer tcpmux 1/udp #TCP Port Service Multiplexer +nbp 2/ddp #Name Binding Protocol compressnet 2/tcp #Management Utility compressnet 2/udp #Management Utility compressnet 3/tcp #Compression Process compressnet 3/udp #Compression Process +echo 4/ddp #AppleTalk Echo Protocol rje 5/tcp #Remote Job Entry rje 5/udp #Remote Job Entry +zip 6/ddp #Zone Information Protocol +echo 7/sctp echo 7/tcp echo 7/udp -echo 7/sctp +discard 9/sctp sink null discard 9/tcp sink null discard 9/udp sink null -discard 9/sctp sink null systat 11/tcp users #Active Users systat 11/udp users #Active Users +daytime 13/sctp daytime 13/tcp daytime 13/udp -daytime 13/sctp qotd 17/tcp quote #Quote of the Day qotd 17/udp quote #Quote of the Day msp 18/tcp #Message Send Protocol msp 18/udp #Message Send Protocol +chargen 19/sctp ttytst source #Character Generator chargen 19/tcp ttytst source #Character Generator chargen 19/udp ttytst source #Character Generator -chargen 19/sctp ttytst source #Character Generator +ftp-data 20/sctp #File Transfer [Default Data] ftp-data 20/tcp #File Transfer [Default Data] ftp-data 20/udp #File Transfer [Default Data] -ftp-data 20/sctp #File Transfer [Default Data] +ftp 21/sctp #File Transfer [Control] ftp 21/tcp #File Transfer [Control] ftp 21/udp #File Transfer [Control] -ftp 21/sctp #File Transfer [Control] +ssh 22/sctp #Secure Shell Login ssh 22/tcp #Secure Shell Login ssh 22/udp #Secure Shell Login -ssh 22/sctp #Secure Shell Login telnet 23/tcp telnet 23/udp # 24/tcp any private mail system @@ -111,22 +114,24 @@ isi-gl 55/tcp #ISI Graphics Language isi-gl 55/udp #ISI Graphics Language xns-auth 56/tcp #XNS Authentication xns-auth 56/udp #XNS Authentication -# 57/tcp any private terminal access -# 57/udp any private terminal access +# 57/tcp any private terminal access +# 57/udp any private terminal access xns-mail 58/tcp #XNS Mail xns-mail 58/udp #XNS Mail # 59/tcp any private file service # 59/udp any private file service +ni-mail 61/tcp #NI MAIL +ni-mail 61/udp #NI MAIL acas 62/tcp #ACA Services acas 62/udp #ACA Services -whoispp 63/tcp whois++ -whoispp 63/udp whois++ +whois++ 63/tcp +whois++ 63/udp covia 64/tcp #Communications Integrator (CI) covia 64/udp #Communications Integrator (CI) tacacs-ds 65/tcp #TACACS-Database Service tacacs-ds 65/udp #TACACS-Database Service -sql-net 66/tcp sql*net #Oracle SQL*NET / replacement -sql-net 66/udp sql*net #Oracle SQL*NET replacement +sql*net 66/tcp #Oracle SQL*NET +sql*net 66/udp #Oracle SQL*NET bootps 67/tcp dhcps #Bootstrap Protocol Server bootps 67/udp dhcps #Bootstrap Protocol Server bootpc 68/tcp dhcpc #Bootstrap Protocol Client @@ -153,9 +158,11 @@ vettcp 78/tcp vettcp 78/udp finger 79/tcp finger 79/udp +http 80/sctp www www-http #World Wide Web HTTP http 80/tcp www www-http #World Wide Web HTTP http 80/udp www www-http #World Wide Web HTTP -http 80/sctp www www-http #World Wide Web HTTP +hosts2-ns 81/tcp #HOSTS2 Name Server +hosts2-ns 81/udp #HOSTS2 Name Server xfer 82/tcp #XFER Utility xfer 82/udp #XFER Utility mit-ml-dev 83/tcp #MIT ML Device @@ -188,8 +195,8 @@ dixie 96/tcp #DIXIE Protocol Specification dixie 96/udp #DIXIE Protocol Specification swift-rvf 97/tcp #Swift Remote Virtural File Protocol swift-rvf 97/udp #Swift Remote Virtural File Protocol -tacnews 98/tcp #TAC News -tacnews 98/udp #TAC News +tacnews 98/tcp #TAC News, Unofficial: Red Hat linuxconf +tacnews 98/udp #TAC News, Unofficial: Red Hat linuxconf metagram 99/tcp #Metagram Relay metagram 99/udp #Metagram Relay newacct 100/tcp #[unauthorized use] @@ -241,8 +248,8 @@ ansatrader 124/tcp #ANSA REX Trader ansatrader 124/udp #ANSA REX Trader locus-map 125/tcp #Locus PC-Interface Net Map Ser locus-map 125/udp #Locus PC-Interface Net Map Ser -nxedit 126/tcp #NXEdit -nxedit 126/udp #NXEdit +unitary 126/tcp #Unisys Unitary Login +unitary 126/udp #Unisys Unitary Login locus-con 127/tcp #Locus PC-Interface Conn Server locus-con 127/udp #Locus PC-Interface Conn Server gss-xlicen 128/tcp #GSS X License Verification @@ -259,8 +266,8 @@ statsrv 133/tcp #Statistics Service statsrv 133/udp #Statistics Service ingres-net 134/tcp #INGRES-NET Service ingres-net 134/udp #INGRES-NET Service -epmap 135/tcp #DCE endpoint resolution -epmap 135/udp #DCE endpoint resolution +loc-srv 135/tcp epmap #Location Service +loc-srv 135/udp epmap #Location Service profile 136/tcp #PROFILE Naming System profile 136/udp #PROFILE Naming System netbios-ns 137/tcp #NETBIOS Name Service @@ -277,16 +284,20 @@ bl-idm 142/tcp #Britton-Lee IDM bl-idm 142/udp #Britton-Lee IDM imap 143/tcp imap2 imap4 #Interim Mail Access Protocol v2 imap 143/udp imap2 imap4 #Interim Mail Access Protocol v2 -uma 144/tcp #Universal Management Architecture -uma 144/udp #Universal Management Architecture +NeWS 144/tcp # Window System +NeWS 144/udp # Window System +#PROBLEMS!============================================================== +#uma 144/tcp #Universal Management Architecture +#uma 144/udp #Universal Management Architecture +#PROBLEMS!============================================================== uaac 145/tcp #UAAC Protocol uaac 145/udp #UAAC Protocol iso-tp0 146/tcp iso-tp0 146/udp iso-ip 147/tcp iso-ip 147/udp -jargon 148/tcp #Jargon -jargon 148/udp #Jargon +cronus 148/tcp jargon #CRONUS-SUPPORT +cronus 148/udp jargon #CRONUS-SUPPORT aed-512 149/tcp #AED 512 Emulation Service aed-512 149/udp #AED 512 Emulation Service sql-net 150/tcp @@ -345,11 +356,11 @@ genrad-mux 176/tcp genrad-mux 176/udp xdmcp 177/tcp #X Display Manager Control Protocol xdmcp 177/udp #X Display Manager Control Protocol -nextstep 178/tcp #NextStep Window Server -nextstep 178/udp #NextStep Window Server +NextStep 178/tcp nextstep NeXTStep #NextStep Window Server +NextStep 178/udp nextstep NeXTStep #NextStep Window Server +bgp 179/sctp #Border Gateway Protocol bgp 179/tcp #Border Gateway Protocol bgp 179/udp #Border Gateway Protocol -bgp 179/sctp #Border Gateway Protocol ris 180/tcp #Intergraph ris 180/udp #Intergraph unify 181/tcp @@ -410,10 +421,14 @@ at-8 208/tcp #AppleTalk Unused at-8 208/udp #AppleTalk Unused qmtp 209/tcp #The Quick Mail Transfer Protocol qmtp 209/udp #The Quick Mail Transfer Protocol -z39-50 210/tcp z39.50 wais #ANSI Z39.50 -z39-50 210/udp z39.50 wais #ANSI Z39.50 -914c-g 211/tcp 914c/g #Texas Instruments 914C/G Terminal -914c-g 211/udp 914c/g #Texas Instruments 914C/G Terminal +#PROBLEMS!============================================================== +#tam 209/tcp #Trivial Authenticated Mail Protocol +#tam 209/udp #Trivial Authenticated Mail Protocol +#PROBLEMS!============================================================== +z39.50 210/tcp wais #ANSI Z39.50 +z39.50 210/udp wais #ANSI Z39.50 +914c/g 211/tcp #Texas Instruments 914C/G Terminal +914c/g 211/udp #Texas Instruments 914C/G Terminal anet 212/tcp #ATEXSSTR anet 212/udp #ATEXSSTR ipx 213/tcp @@ -444,14 +459,14 @@ direct 242/tcp direct 242/udp sur-meas 243/tcp #Survey Measurement sur-meas 243/udp #Survey Measurement -inbusiness 244/tcp -inbusiness 244/udp +dayna 244/tcp +dayna 244/udp link 245/tcp link 245/udp dsp3270 246/tcp #Display Systems Protocol dsp3270 246/udp #Display Systems Protocol -subntbcst-tftp 247/tcp subntbcst_tftp #subntbcst_tftp -subntbcst-tftp 247/udp subntbcst_tftp #subntbcst_tftp +subntbcst_tftp 247/tcp #subntbcst_tftp +subntbcst_tftp 247/udp #subntbcst_tftp bhfhs 248/tcp bhfhs 248/udp # 249-255 reserved @@ -479,11 +494,7 @@ td-service 267/tcp #Tobit David Service Layer td-service 267/udp #Tobit David Service Layer td-replica 268/tcp #Tobit David Replica td-replica 268/udp #Tobit David Replica -manet 269/tcp #MANET Protocols [RFC5498] -manet 269/ucp #MANET Protocols [RFC5498] -gist 270/ucp #Q-mode encapsulation for [RFC5971] -pt-tls 271/tcp #Assessment (NEA) Posture -# 272-279 unassigned +# 269-279 unassigned http-mgmt 280/tcp http-mgmt 280/udp personal-link 281/tcp @@ -530,11 +541,9 @@ pip 321/tcp pip 321/udp rtsps 322/tcp rtsps 322/udp -rpki-rtr 323/tcp #Resource PKI to Router Protocol -rpki-rtr-tls 324/tcp #Resource PKI to Router Protocol over TLS -# 325-332 #unassigned -texar 333/tcp #Texar Security Port -texar 333/udp #Texar Security Port +# 323-332 #unassigned +texar 333/tcp #Texar Security Port +texar 333/udp #Texar Security Port # 334-343 #unassigned pdap 344/tcp #Prospero Data Access Protocol pdap 344/udp #Prospero Data Access Protocol @@ -570,8 +579,8 @@ bhevent 357/tcp bhevent 357/udp shrinkwrap 358/tcp shrinkwrap 358/udp -nsrmp 359/tcp #Network Security Risk Management Protocol -nsrmp 359/udp #Network Security Risk Management Protocol +tenebris_nts 359/tcp #Tenebris Network Trace Service +tenebris_nts 359/udp #Tenebris Network Trace Service scoi2odialog 360/tcp scoi2odialog 360/udp semantix 361/tcp @@ -632,14 +641,14 @@ unidata-ldm 388/tcp #Unidata LDM Version 4 unidata-ldm 388/udp #Unidata LDM Version 4 ldap 389/tcp #Lightweight Directory Access Protocol ldap 389/udp #Lightweight Directory Access Protocol -uis 390/tcp #UIS -uis 390/udp #UIS +uis 390/tcp +uis 390/udp synotics-relay 391/tcp #SynOptics SNMP Relay Port synotics-relay 391/udp #SynOptics SNMP Relay Port synotics-broker 392/tcp #SynOptics Port Broker Port synotics-broker 392/udp #SynOptics Port Broker Port -meta5 393/tcp #Meta5 -meta5 393/udp #Meta5 +dis 393/tcp #Data Interpretation System +dis 393/udp #Data Interpretation System embl-ndt 394/tcp #EMBL Nucleic Data Transfer embl-ndt 394/udp #EMBL Nucleic Data Transfer netcp 395/tcp #NETscout Control Protocol @@ -652,8 +661,8 @@ kryptolan 398/tcp kryptolan 398/udp iso-tsap-c2 399/tcp #ISO-TSAP Class 2 iso-tsap-c2 399/udp #ISO-TSAP Class 2 -osb-sd 400/tcp #Oracle Secure Backup -osb-sd 400/udp #Oracle Secure Backup +work-sol 400/tcp #Workstation Solutions +work-sol 400/udp #Workstation Solutions ups 401/tcp #Uninterruptible Power Supply ups 401/udp #Uninterruptible Power Supply genie 402/tcp #Genie Protocol @@ -738,9 +747,9 @@ decvms-sysmgt 441/tcp decvms-sysmgt 441/udp cvc_hostd 442/tcp cvc_hostd 442/udp +https 443/sctp https 443/tcp https 443/udp -https 443/sctp snpp 444/tcp #Simple Network Paging Protocol snpp 444/udp #Simple Network Paging Protocol # [RFC1568] @@ -783,11 +792,15 @@ datasurfsrvsec 462/udp alpes 463/tcp alpes 463/udp # -kpasswd 464/tcp kpasswd5 # Kerberos (v5) -kpasswd 464/udp kpasswd5 # Kerberos (v5) -urd 465/tcp #URL Rendezvous Directory for SSM -submissions 465/tcp #Message Submission over TLS -igmpv3lite 465/udp #IGMP over UDP for SSM +kpasswd5 464/tcp # Kerberos (v5) +kpasswd5 464/udp # Kerberos (v5) +#PROBLEMS!============================================================== +# IANA has officially assigned these two ports as ``kpasswd'' +#kpasswd 464/tcp # Kerberos (v5) +#kpasswd 464/udp # Kerberos (v5) +#PROBLEMS!============================================================== +smtps 465/tcp #smtp protocol over TLS/SSL (was ssmtp) +smtps 465/udp #smtp protocol over TLS/SSL (was ssmtp) digital-vrc 466/tcp digital-vrc 466/udp mylex-mapd 467/tcp @@ -844,14 +857,14 @@ ticf-1 492/tcp #Transport Independent Convergence ticf-1 492/udp #Transport Independent Convergence for FNA ticf-2 493/tcp #Transport Independent Convergence for FNA ticf-2 493/udp #Transport Independent Convergence for FNA -pov-ray 494/tcp #POV-Ray -pov-ray 494/udp #POV-Ray +pov-ray 494/tcp +pov-ray 494/udp intecourier 495/tcp intecourier 495/udp pim-rp-disc 496/tcp pim-rp-disc 496/udp -retrospect 497/tcp #Retrospect backup and restore service -retrospect 497/udp #Retrospect backup and restore service +dantz 497/tcp +dantz 497/udp siam 498/tcp siam 498/udp iso-ill 499/tcp #ISO ILL Protocol @@ -951,8 +964,8 @@ netnews 532/tcp readnews netnews 532/udp readnews netwall 533/tcp #for emergency broadcasts netwall 533/udp #for emergency broadcasts -windream 534/tcp #windream Admin -windream 534/udp #windream Admin +mm-admin 534/tcp #MegaMedia Admin +mm-admin 534/udp #MegaMedia Admin iiop 535/tcp iiop 535/udp opalis-rdv 536/tcp @@ -987,8 +1000,8 @@ new-rwho 550/tcp new-who new-rwho 550/udp new-who cybercash 551/tcp cybercash 551/udp -devshr-nts 552/tcp deviceshare -devshr-nts 552/udp deviceshare +deviceshare 552/tcp +deviceshare 552/udp pirp 553/tcp pirp 553/udp rtsp 554/tcp #Real Time Stream Control Protocol @@ -1053,6 +1066,9 @@ philips-vc 583/tcp #Philips Video-Conferencing philips-vc 583/udp #Philips Video-Conferencing keyserver 584/tcp keyserver 584/udp +#imap4-ssl@585 never should have been allocated. See PR 46294. +#imap4-ssl 585/tcp #IMAP4+SSL (use of 585 is not recommended, +#imap4-ssl 585/udp # use 993 instead) password-chg 586/tcp password-chg 586/udp submission 587/tcp @@ -1131,8 +1147,8 @@ asf-rmcp 623/tcp #ASF Remote Management and Control asf-rmcp 623/udp #ASF Remote Management and Control Protocol cryptoadmin 624/tcp #Crypto Admin cryptoadmin 624/udp #Crypto Admin -dec-dlm 625/tcp dec_dlm #DEC DLM -dec-dlm 625/udp dec_dlm #DEC DLM +dec_dlm 625/tcp #DEC DLM +dec_dlm 625/udp #DEC DLM asia 626/tcp asia 626/udp passgo-tivoli 627/tcp #PassGo Tivoli @@ -1143,8 +1159,8 @@ qmqp 628/udp 3com-amp3 629/udp #3Com AMP3 rda 630/tcp rda 630/udp -ipp 631/tcp ipps #IPP (Internet Printing Protocol) -ipp 631/udp ipps #IPP (Internet Printing Protocol) +ipp 631/tcp #IPP (Internet Printing Protocol) +ipp 631/udp #IPP (Internet Printing Protocol) bmpp 632/tcp bmpp 632/udp servstat 633/tcp #Service Status update (Sterling Software) @@ -1311,17 +1327,14 @@ iris-xpcs 714/tcp #IRIS over XPCS iris-xpcs 714/udp #IRIS over XPCS iris-lwz 715/tcp iris-lwz 715/udp -pana 716/udp #PANA Messages -# 717-728 #unassigned netviewdm1 729/tcp #IBM NetView DM/6000 Server/Client netviewdm1 729/udp #IBM NetView DM/6000 Server/Client netviewdm2 730/tcp #IBM NetView DM/6000 send/tcp netviewdm2 730/udp #IBM NetView DM/6000 send/tcp netviewdm3 731/tcp #IBM NetView DM/6000 receive/tcp netviewdm3 731/udp #IBM NetView DM/6000 receive/tcp -# 732-740 #unassigned -netgw 741/tcp #netGW -netgw 741/udp #netGW +netgw 741/tcp +netgw 741/udp netrcs 742/tcp #Network based Rev. Cont. Sys. netrcs 742/udp #Network based Rev. Cont. Sys. flexlm 744/tcp #Flexible License Manager @@ -1332,11 +1345,18 @@ ris-cm 748/tcp #Russell Info Sci Calendar Manager ris-cm 748/udp #Russell Info Sci Calendar Manager kerberos-adm 749/tcp #Kerberos administration (v5) kerberos-adm 749/udp #Kerberos administration (v5) -rfile 750/tcp -loadav 750/udp kerberos-iv 750/udp kdc # Kerberos (v4) +kerberos-iv 750/tcp kdc # Kerberos (v4) +#PROBLEMS!======================================================== +#rfile 750/tcp +#loadav 750/udp +#PROBLEMS!======================================================== +kerberos_master 751/tcp # Kerberos `kadmin' (v4) +kerberos_master 751/udp # Kerberos `kadmin' (v4) +#PROBLEMS!======================================================== pump 751/tcp pump 751/udp +#PROBLEMS!======================================================== qrh 752/tcp qrh 752/udp rrh 753/tcp @@ -1346,14 +1366,19 @@ krb_prop 754/tcp krb5_prop # kerberos/v5 server pro tell 754/tcp #send #PROBLEMS!======================================================== tell 754/udp #send -# 755-757 #unassigned nlogin 758/tcp nlogin 758/udp con 759/tcp con 759/udp +krbupdate 760/tcp kreg # Kerberos (v4) registration +#PROBLEMS!======================================================== ns 760/tcp +#PROBLEMS!======================================================== ns 760/udp +kpasswd 761/tcp kpwd # Kerberos (v4) "passwd" +#PROBLEMS!======================================================== rxe 761/tcp +#PROBLEMS!======================================================== rxe 761/udp quotad 762/tcp quotad 762/udp @@ -1376,17 +1401,17 @@ cycleserv2 772/udp submit 773/tcp notify 773/udp rpasswd 774/tcp -acmaint-dbd 774/udp acmaint_dbd +acmaint_dbd 774/udp entomb 775/tcp -acmaint-transd 775/udp acmaint_transd +acmaint_transd 775/udp wpages 776/tcp wpages 776/udp multiling-http 777/tcp #Multiling HTTP multiling-http 777/udp #Multiling HTTP wpgs 780/tcp wpgs 780/udp -mdbs-daemon 800/tcp mdbs_daemon -mdbs-daemon 800/udp mdbs_daemon +mdbs_daemon 800/tcp +mdbs_daemon 800/udp device 801/tcp device 801/udp mbap-s 802/tcp # Modbus Application Protocol Secure @@ -1409,18 +1434,11 @@ dhcp-failover2 847/tcp #dhcp-failover 2 dhcp-failover2 847/udp #dhcp-failover 2 gdoi 848/tcp gdoi 848/udp -# 849-852 #unassigned -domain-s 853/tcp #DNS query-response protocol -domain-s 853/udp #DNS query-response protocol -# 855-859 #unassigned iscsi 860/tcp iscsi 860/udp owamp-control 861/tcp owamp-control 861/udp -twamp-control 862/tcp -twamp-control 862/udp -# 863-872 #unassigned -supfilesrv 871/tcp # for SUP +supfilesrv 871/tcp # for SUP rsync 873/tcp rsync 873/udp iclcnet-locate 886/tcp #ICL coNETion locate server @@ -1473,106 +1491,477 @@ puprouter 999/tcp puprouter 999/udp cadlock2 1000/tcp cadlock2 1000/udp -webpush 1001/tcp #HTTP Web Push surf 1010/tcp surf 1010/udp exp1 1021/tcp #RFC3692-style Experiment 1 (*) [RFC4727] exp1 1021/udp #RFC3692-style Experiment 1 (*) [RFC4727] -exp1 1021/sctp #RFC3692-style Experiment 1 (*) [RFC4727] exp2 1022/tcp #RFC3692-style Experiment 2 (*) [RFC4727] exp2 1022/udp #RFC3692-style Experiment 2 (*) [RFC4727] -exp2 1022/sctp #RFC3692-style Experiment 2 (*) [RFC4727] # # REGISTERED PORT NUMBERS # blackjack 1025/tcp #network blackjack blackjack 1025/udp #network blackjack -cap 1026/tcp #Calendar Access Protocol -cap 1026/udp #Calendar Access Protocol -6a44 1027/udp #IPv6 Behind NAT44 CPEs -boinc-client 1043/tcp #BOINC Client Control -boinc-client 1043/udp #BOINC Client Control +iad1 1030/tcp #BBN IAD +iad1 1030/udp #BBN IAD +iad2 1031/tcp #BBN IAD +iad2 1031/udp #BBN IAD +iad3 1032/tcp #BBN IAD +iad3 1032/udp #BBN IAD nim 1058/tcp nim 1058/udp nimreg 1059/tcp nimreg 1059/udp -instl-boots 1067/tcp instl_boots #Installation Bootstrap Proto. Serv. -instl-boots 1067/udp instl_boots #Installation Bootstrap Proto. Serv. -instl-bootc 1068/tcp instl_bootc #Installation Bootstrap Proto. Cli. -instl-bootc 1068/udp instl_bootc #Installation Bootstrap Proto. Cli. +instl_boots 1067/tcp #Installation Bootstrap Proto. Serv. +instl_boots 1067/udp #Installation Bootstrap Proto. Serv. +instl_bootc 1068/tcp #Installation Bootstrap Proto. Cli. +instl_bootc 1068/udp #Installation Bootstrap Proto. Cli. socks 1080/tcp socks 1080/udp +ansoft-lm-1 1083/tcp #Anasoft License Manager +ansoft-lm-1 1083/udp #Anasoft License Manager +ansoft-lm-2 1084/tcp #Anasoft License Manager +ansoft-lm-2 1084/udp #Anasoft License Manager webobjects 1085/tcp #Web Objects webobjects 1085/udp #Web Objects -ff-annunc 1089/tcp #FF Annunciation -ff-annunc 1089/udp #FF Annunciation -ff-fms 1090/tcp #FF Fieldbus Message Specification -ff-fms 1090/udp #FF Fieldbus Message Specification -ff-sm 1091/tcp #FF System Management -ff-sm 1091/udp #FF System Management -cnrprotocol 1096/tcp #Common Name Resolution Protocol -cnrprotocol 1096/udp #Common Name Resolution Protocol -rmiactivation 1098/tcp #RMI Activation -rmiactivation 1098/udp #RMI Activation -rmiregistry 1099/tcp #RMI Registry -rmiregistry 1099/udp #RMI Registry -mctp 1100/tcp #MCTP -mctp 1100/udp #MCTP kpop 1109/tcp #Unofficial kpop 1109/udp #Unofficial nfsd-status 1110/tcp #Cluster status info nfsd-keepalive 1110/udp #Client status info supfiledbg 1127/tcp # for SUP -c1222-acse 1153/tcp #ANSI C12.22 Port -c1222-acse 1153/udp #ANSI C12.22 Port nfa 1155/tcp #Network File Access nfa 1155/udp #Network File Access +cisco-ipsla 1167/sctp #Cisco IP SLAs Control Protocol cisco-ipsla 1167/tcp #Cisco IP SLAs Control Protocol cisco-ipsla 1167/udp #Cisco IP SLAs Control Protocol -cisco-ipsla 1167/sctp #Cisco IP SLAs Control Protocol -tripwire 1169/tcp #TRIPWIRE -tripwire 1169/udp #TRIPWIRE skkserv 1178/tcp #SKK (kanji input) -mysql-cluster 1186/tcp #MySQL Cluster Manager -mysql-cluster 1186/udp #MySQL Cluster Manager openvpn 1194/tcp #OpenVPN openvpn 1194/udp #OpenVPN -rsf-1 1195/tcp #RSF-1 clustering -rsf-1 1195/udp #RSF-1 clustering -qt-serveradmin 1220/tcp #QT SERVER ADMIN -qt-serveradmin 1220/udp #QT SERVER ADMIN +lupa 1212/tcp +lupa 1212/udp +nerv 1222/tcp #SNI R&D network +nerv 1222/udp #SNI R&D network +hermes 1248/tcp +hermes 1248/udp healthd 1281/tcp #healthd healthd 1281/udp #healthd -pkt-krb-ipsec 1293/tcp #PKT-KRB-IPSec -pkt-krb-ipsec 1293/udp #PKT-KRB-IPSec -h323hostcallsc 1300/tcp #H323 Host Call Secure -h323hostcallsc 1300/udp #H323 Host Call Secure -jtag-server 1309/tcp #JTAG server -jtag-server 1309/udp #JTAG server -hkrb5gatekeeper 1318/tcp #krb5gatekeeper -krb5gatekeeper 1318/udp #krb5gatekeeper -netdb-export 1329/tcp #netdb-export -netdb-export 1329/udp #netdb-export -digital-notary 1335/tcp #Digital Notary Protocol -digital-notary 1335/udp #Digital Notary Protocol -icap 1344/tcp #ICAP -icap 1344/udp #ICAP +alta-ana-lm 1346/tcp #Alta Analytics License Manager +alta-ana-lm 1346/udp #Alta Analytics License Manager +bbn-mmc 1347/tcp #multi media conferencing +bbn-mmc 1347/udp #multi media conferencing +bbn-mmx 1348/tcp #multi media conferencing +bbn-mmx 1348/udp #multi media conferencing +sbook 1349/tcp #Registration Network Protocol +sbook 1349/udp #Registration Network Protocol +editbench 1350/tcp #Registration Network Protocol +editbench 1350/udp #Registration Network Protocol +equationbuilder 1351/tcp #Digital Tool Works (MIT) +equationbuilder 1351/udp #Digital Tool Works (MIT) +lotusnote 1352/tcp #Lotus Note +lotusnote 1352/udp #Lotus Note +relief 1353/tcp #Relief Consulting +relief 1353/udp #Relief Consulting +rightbrain 1354/tcp #RightBrain Software +rightbrain 1354/udp #RightBrain Software +intuitive-edge 1355/tcp #Intuitive Edge +intuitive-edge 1355/udp #Intuitive Edge +cuillamartin 1356/tcp #CuillaMartin Company +cuillamartin 1356/udp #CuillaMartin Company +pegboard 1357/tcp #Electronic PegBoard +pegboard 1357/udp #Electronic PegBoard +connlcli 1358/tcp +connlcli 1358/udp +ftsrv 1359/tcp +ftsrv 1359/udp +mimer 1360/tcp +mimer 1360/udp +linx 1361/tcp +linx 1361/udp +timeflies 1362/tcp +timeflies 1362/udp +ndm-requester 1363/tcp #Network DataMover Requester +ndm-requester 1363/udp #Network DataMover Requester +ndm-server 1364/tcp #Network DataMover Server +ndm-server 1364/udp #Network DataMover Server +adapt-sna 1365/tcp #Network Software Associates +adapt-sna 1365/udp #Network Software Associates +netware-csp 1366/tcp #Novell NetWare Comm Service Platform +netware-csp 1366/udp #Novell NetWare Comm Service Platform +dcs 1367/tcp +dcs 1367/udp +screencast 1368/tcp +screencast 1368/udp +gv-us 1369/tcp #GlobalView to Unix Shell +gv-us 1369/udp #GlobalView to Unix Shell +us-gv 1370/tcp #Unix Shell to GlobalView +us-gv 1370/udp #Unix Shell to GlobalView +fc-cli 1371/tcp #Fujitsu Config Protocol +fc-cli 1371/udp #Fujitsu Config Protocol +fc-ser 1372/tcp #Fujitsu Config Protocol +fc-ser 1372/udp #Fujitsu Config Protocol +chromagrafx 1373/tcp +chromagrafx 1373/udp +molly 1374/tcp #EPI Software Systems +molly 1374/udp #EPI Software Systems +bytex 1375/tcp +bytex 1375/udp +ibm-pps 1376/tcp #IBM Person to Person Software +ibm-pps 1376/udp #IBM Person to Person Software +cichlid 1377/tcp #Cichlid License Manager +cichlid 1377/udp #Cichlid License Manager +elan 1378/tcp #Elan License Manager +elan 1378/udp #Elan License Manager +dbreporter 1379/tcp #Integrity Solutions +dbreporter 1379/udp #Integrity Solutions +telesis-licman 1380/tcp #Telesis Network License Manager +telesis-licman 1380/udp #Telesis Network License Manager +apple-licman 1381/tcp #Apple Network License Manager +apple-licman 1381/udp #Apple Network License Manager +#udt_os 1382/tcp +#udt_os 1382/udp +gwha 1383/tcp #GW Hannaway Network License Manager +gwha 1383/udp #GW Hannaway Network License Manager +os-licman 1384/tcp #Objective Solutions License Manager +os-licman 1384/udp #Objective Solutions License Manager +atex_elmd 1385/tcp #Atex Publishing License Manager +atex_elmd 1385/udp #Atex Publishing License Manager +checksum 1386/tcp #CheckSum License Manager +checksum 1386/udp #CheckSum License Manager +cadsi-lm 1387/tcp #Computer Aided Design Software Inc LM +cadsi-lm 1387/udp #Computer Aided Design Software Inc LM +objective-dbc 1388/tcp #Objective Solutions DataBase Cache +objective-dbc 1388/udp #Objective Solutions DataBase Cache +iclpv-dm 1389/tcp #Document Manager +iclpv-dm 1389/udp #Document Manager +iclpv-sc 1390/tcp #Storage Controller +iclpv-sc 1390/udp #Storage Controller +iclpv-sas 1391/tcp #Storage Access Server +iclpv-sas 1391/udp #Storage Access Server +iclpv-pm 1392/tcp #Print Manager +iclpv-pm 1392/udp #Print Manager +iclpv-nls 1393/tcp #Network Log Server +iclpv-nls 1393/udp #Network Log Server +iclpv-nlc 1394/tcp #Network Log Client +iclpv-nlc 1394/udp #Network Log Client +iclpv-wsm 1395/tcp #PC Workstation Manager software +iclpv-wsm 1395/udp #PC Workstation Manager software +dvl-activemail 1396/tcp #DVL Active Mail +dvl-activemail 1396/udp #DVL Active Mail +audio-activmail 1397/tcp #Audio Active Mail +audio-activmail 1397/udp #Audio Active Mail +video-activmail 1398/tcp #Video Active Mail +video-activmail 1398/udp #Video Active Mail +cadkey-licman 1399/tcp #Cadkey License Manager +cadkey-licman 1399/udp #Cadkey License Manager +cadkey-tablet 1400/tcp #Cadkey Tablet Daemon +cadkey-tablet 1400/udp #Cadkey Tablet Daemon +goldleaf-licman 1401/tcp #Goldleaf License Manager +goldleaf-licman 1401/udp #Goldleaf License Manager +prm-sm-np 1402/tcp #Prospero Resource Manager +prm-sm-np 1402/udp #Prospero Resource Manager +prm-nm-np 1403/tcp #Prospero Resource Manager +prm-nm-np 1403/udp #Prospero Resource Manager +igi-lm 1404/tcp #Infinite Graphics License Manager +igi-lm 1404/udp #Infinite Graphics License Manager +ibm-res 1405/tcp #IBM Remote Execution Starter +ibm-res 1405/udp #IBM Remote Execution Starter +netlabs-lm 1406/tcp #NetLabs License Manager +netlabs-lm 1406/udp #NetLabs License Manager +dbsa-lm 1407/tcp #DBSA License Manager +dbsa-lm 1407/udp #DBSA License Manager +sophia-lm 1408/tcp #Sophia License Manager +sophia-lm 1408/udp #Sophia License Manager +here-lm 1409/tcp #Here License Manager +here-lm 1409/udp #Here License Manager +hiq 1410/tcp #HiQ License Manager +hiq 1410/udp #HiQ License Manager +af 1411/tcp #AudioFile +af 1411/udp #AudioFile +innosys 1412/tcp +innosys 1412/udp +innosys-acl 1413/tcp +innosys-acl 1413/udp +ibm-mqseries 1414/tcp #IBM MQSeries +ibm-mqseries 1414/udp #IBM MQSeries +dbstar 1415/tcp +dbstar 1415/udp +novell-lu6.2 1416/tcp #Novell LU6.2 +novell-lu6.2 1416/udp #Novell LU6.2 +timbuktu-srv1 1417/tcp #Timbuktu Service 1 Port +timbuktu-srv1 1417/udp #Timbuktu Service 1 Port +timbuktu-srv2 1418/tcp #Timbuktu Service 2 Port +timbuktu-srv2 1418/udp #Timbuktu Service 2 Port +timbuktu-srv3 1419/tcp #Timbuktu Service 3 Port +timbuktu-srv3 1419/udp #Timbuktu Service 3 Port +timbuktu-srv4 1420/tcp #Timbuktu Service 4 Port +timbuktu-srv4 1420/udp #Timbuktu Service 4 Port +gandalf-lm 1421/tcp #Gandalf License Manager +gandalf-lm 1421/udp #Gandalf License Manager +autodesk-lm 1422/tcp #Autodesk License Manager +autodesk-lm 1422/udp #Autodesk License Manager +essbase 1423/tcp #Essbase Arbor Software +essbase 1423/udp #Essbase Arbor Software +hybrid 1424/tcp #Hybrid Encryption Protocol +hybrid 1424/udp #Hybrid Encryption Protocol +zion-lm 1425/tcp #Zion Software License Manager +zion-lm 1425/udp #Zion Software License Manager +sas-1 1426/tcp #Satellite-data Acquisition System 1 +sas-1 1426/udp #Satellite-data Acquisition System 1 +mloadd 1427/tcp #mloadd monitoring tool +mloadd 1427/udp #mloadd monitoring tool +informatik-lm 1428/tcp #Informatik License Manager +informatik-lm 1428/udp #Informatik License Manager +nms 1429/tcp #Hypercom NMS +nms 1429/udp #Hypercom NMS +tpdu 1430/tcp #Hypercom TPDU +tpdu 1430/udp #Hypercom TPDU +rgtp 1431/tcp #Reverse Gossip Transport +rgtp 1431/udp #Reverse Gossip Transport +blueberry-lm 1432/tcp #Blueberry Software License Manager +blueberry-lm 1432/udp #Blueberry Software License Manager ms-sql-s 1433/tcp #Microsoft-SQL-Server ms-sql-s 1433/udp #Microsoft-SQL-Server ms-sql-m 1434/tcp #Microsoft-SQL-Monitor ms-sql-m 1434/udp #Microsoft-SQL-Monitor +ibm-cics 1435/tcp +ibm-cics 1435/udp +sas-2 1436/tcp #Satellite-data Acquisition System 2 +sas-2 1436/udp #Satellite-data Acquisition System 2 +tabula 1437/tcp +tabula 1437/udp +eicon-server 1438/tcp #Eicon Security Agent/Server +eicon-server 1438/udp #Eicon Security Agent/Server +eicon-x25 1439/tcp #Eicon X25/SNA Gateway +eicon-x25 1439/udp #Eicon X25/SNA Gateway +eicon-slp 1440/tcp #Eicon Service Location Protocol +eicon-slp 1440/udp #Eicon Service Location Protocol +cadis-1 1441/tcp #Cadis License Management +cadis-1 1441/udp #Cadis License Management +cadis-2 1442/tcp #Cadis License Management +cadis-2 1442/udp #Cadis License Management +ies-lm 1443/tcp #Integrated Engineering Software +ies-lm 1443/udp #Integrated Engineering Software +marcam-lm 1444/tcp #Marcam License Management +marcam-lm 1444/udp #Marcam License Management +proxima-lm 1445/tcp #Proxima License Manager +proxima-lm 1445/udp #Proxima License Manager +ora-lm 1446/tcp #Optical Research Associates License Manager +ora-lm 1446/udp #Optical Research Associates License Manager +apri-lm 1447/tcp #Applied Parallel Research LM +apri-lm 1447/udp #Applied Parallel Research LM +oc-lm 1448/tcp #OpenConnect License Manager +oc-lm 1448/udp #OpenConnect License Manager +peport 1449/tcp +peport 1449/udp +dwf 1450/tcp #Tandem Distributed Workbench Facility +dwf 1450/udp #Tandem Distributed Workbench Facility +infoman 1451/tcp #IBM Information Management +infoman 1451/udp #IBM Information Management +gtegsc-lm 1452/tcp #GTE Government Systems License Man +gtegsc-lm 1452/udp #GTE Government Systems License Man +genie-lm 1453/tcp #Genie License Manager +genie-lm 1453/udp #Genie License Manager +interhdl_elmd 1454/tcp #interHDL License Manager +interhdl_elmd 1454/udp #interHDL License Manager +esl-lm 1455/tcp #ESL License Manager +esl-lm 1455/udp #ESL License Manager +dca 1456/tcp +dca 1456/udp +valisys-lm 1457/tcp #Valisys License Manager +valisys-lm 1457/udp #Valisys License Manager +nrcabq-lm 1458/tcp #Nichols Research Corp. +nrcabq-lm 1458/udp #Nichols Research Corp. +proshare1 1459/tcp #Proshare Notebook Application +proshare1 1459/udp #Proshare Notebook Application +proshare2 1460/tcp #Proshare Notebook Application +proshare2 1460/udp #Proshare Notebook Application +ibm_wrless_lan 1461/tcp #IBM Wireless LAN +ibm_wrless_lan 1461/udp #IBM Wireless LAN +world-lm 1462/tcp #World License Manager +world-lm 1462/udp #World License Manager +nucleus 1463/tcp +nucleus 1463/udp +msl_lmd 1464/tcp #MSL License Manager +msl_lmd 1464/udp #MSL License Manager +pipes 1465/tcp #Pipes Platform +pipes 1465/udp #Pipes Platform mfarlin@peerlogic.com +oceansoft-lm 1466/tcp #Ocean Software License Manager +oceansoft-lm 1466/udp #Ocean Software License Manager +csdmbase 1467/tcp +csdmbase 1467/udp +csdm 1468/tcp +csdm 1468/udp +aal-lm 1469/tcp #Active Analysis Limited License Manager +aal-lm 1469/udp #Active Analysis Limited License Manager +uaiact 1470/tcp #Universal Analytics +uaiact 1470/udp #Universal Analytics +csdmbase 1471/tcp +csdmbase 1471/udp +csdm 1472/tcp +csdm 1472/udp +openmath 1473/tcp +openmath 1473/udp +telefinder 1474/tcp +telefinder 1474/udp +taligent-lm 1475/tcp #Taligent License Manager +taligent-lm 1475/udp #Taligent License Manager +clvm-cfg 1476/tcp +clvm-cfg 1476/udp +ms-sna-server 1477/tcp +ms-sna-server 1477/udp +ms-sna-base 1478/tcp +ms-sna-base 1478/udp +dberegister 1479/tcp +dberegister 1479/udp +pacerforum 1480/tcp +pacerforum 1480/udp +airs 1481/tcp +airs 1481/udp +miteksys-lm 1482/tcp #Miteksys License Manager +miteksys-lm 1482/udp #Miteksys License Manager +afs 1483/tcp #AFS License Manager +afs 1483/udp #AFS License Manager +confluent 1484/tcp #Confluent License Manager +confluent 1484/udp #Confluent License Manager +lansource 1485/tcp +lansource 1485/udp +nms_topo_serv 1486/tcp +nms_topo_serv 1486/udp +localinfosrvr 1487/tcp +localinfosrvr 1487/udp +docstor 1488/tcp +docstor 1488/udp +dmdocbroker 1489/tcp +dmdocbroker 1489/udp +insitu-conf 1490/tcp +insitu-conf 1490/udp +anynetgateway 1491/tcp +anynetgateway 1491/udp +stone-design-1 1492/tcp +stone-design-1 1492/udp +netmap_lm 1493/tcp +netmap_lm 1493/udp +ica 1494/tcp +ica 1494/udp +cvc 1495/tcp +cvc 1495/udp +liberty-lm 1496/tcp +liberty-lm 1496/udp +rfx-lm 1497/tcp +rfx-lm 1497/udp +watcom-sql 1498/tcp +watcom-sql 1498/udp +fhc 1499/tcp #Federico Heinz Consultora +fhc 1499/udp #Federico Heinz Consultora +vlsi-lm 1500/tcp #VLSI License Manager +vlsi-lm 1500/udp #VLSI License Manager +sas-3 1501/tcp #Satellite-data Acquisition System 3 +sas-3 1501/udp #Satellite-data Acquisition System 3 +shivadiscovery 1502/tcp #Shiva +shivadiscovery 1502/udp #Shiva +imtc-mcs 1503/tcp #Databeam +imtc-mcs 1503/udp #Databeam +evb-elm 1504/tcp #EVB Software Engineering License Manager +evb-elm 1504/udp #EVB Software Engineering License Manager +funkproxy 1505/tcp #Funk Software, Inc. +funkproxy 1505/udp #Funk Software, Inc. +utcd 1506/tcp #Universal Time daemon (utcd) +utcd 1506/udp #Universal Time daemon (utcd) +symplex 1507/tcp +symplex 1507/udp +diagmond 1508/tcp +diagmond 1508/udp +robcad-lm 1509/tcp #Robcad, Ltd. License Manager +robcad-lm 1509/udp #Robcad, Ltd. License Manager +mvx-lm 1510/tcp #Midland Valley Exploration Ltd. Lic. Man. +mvx-lm 1510/udp #Midland Valley Exploration Ltd. Lic. Man. +3l-l1 1511/tcp +3l-l1 1511/udp +wins 1512/tcp #Microsoft's Windows Internet Name Service +wins 1512/udp #Microsoft's Windows Internet Name Service +fujitsu-dtc 1513/tcp #Fujitsu Systems Business of America, Inc +fujitsu-dtc 1513/udp #Fujitsu Systems Business of America, Inc +fujitsu-dtcns 1514/tcp #Fujitsu Systems Business of America, Inc +fujitsu-dtcns 1514/udp #Fujitsu Systems Business of America, Inc +ifor-protocol 1515/tcp +ifor-protocol 1515/udp +vpad 1516/tcp #Virtual Places Audio data +vpad 1516/udp #Virtual Places Audio data +vpac 1517/tcp #Virtual Places Audio control +vpac 1517/udp #Virtual Places Audio control +vpvd 1518/tcp #Virtual Places Video data +vpvd 1518/udp #Virtual Places Video data +vpvc 1519/tcp #Virtual Places Video control +vpvc 1519/udp #Virtual Places Video control +atm-zip-office 1520/tcp #atm zip office +atm-zip-office 1520/udp #atm zip office +ncube-lm 1521/tcp #nCube License Manager +ncube-lm 1521/udp #nCube License Manager +rna-lm 1522/tcp #Ricardo North America License Manager +rna-lm 1522/udp #Ricardo North America License Manager +cichild-lm 1523/tcp +cichild-lm 1523/udp ingreslock 1524/tcp #ingres ingreslock 1524/udp #ingres +prospero-np 1525/tcp #Prospero Directory Service non-priv +prospero-np 1525/udp #Prospero Directory Service non-priv #PROBLEMS!======================================================== orasrv 1525/tcp #oracle orasrv 1525/udp #oracle #PROBLEMS!======================================================== -prospero-np 1525/tcp #Prospero Directory Service non-priv -prospero-np 1525/udp #Prospero Directory Service non-priv pdap-np 1526/tcp #Prospero Data Access Prot non-priv pdap-np 1526/udp #Prospero Data Access Prot non-priv tlisrv 1527/tcp #oracle tlisrv 1527/udp #oracle +mciautoreg 1528/tcp +mciautoreg 1528/udp +support 1529/tcp prmsd gnatsd # cygnus bug tracker *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Feb 20 16:38:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EA81323E8C5; Thu, 20 Feb 2020 16:38:30 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NgJQ5ldyz45by; Thu, 20 Feb 2020 16:38:30 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8D15924AB3; Thu, 20 Feb 2020 16:38:30 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01KGcU4s031224; Thu, 20 Feb 2020 16:38:30 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KGcUbJ031223; Thu, 20 Feb 2020 16:38:30 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002201638.01KGcUbJ031223@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 20 Feb 2020 16:38:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358171 - head X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 358171 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 16:38:31 -0000 Author: bapt Date: Thu Feb 20 16:38:30 2020 New Revision: 358171 URL: https://svnweb.freebsd.org/changeset/base/358171 Log: Use OLD_LIBS instead of OLD_FILES so the user get a chance to keep them around if needed Reported by: tijl Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Thu Feb 20 15:52:36 2020 (r358170) +++ head/ObsoleteFiles.inc Thu Feb 20 16:38:30 2020 (r358171) @@ -37,10 +37,10 @@ # done # 20200220: Upgrade of ncurses, shlib bumped to version 9 -OLD_FILES+=lib/libncurses.so.8 -OLD_FILES+=lib/libncursesw.so.8 -OLD_FILES+=usr/lib32/libncurses.so.8 -OLD_FILES+=usr/lib32/libncursesw.so.8 +OLD_LIBS+=lib/libncurses.so.8 +OLD_LIBS+=lib/libncursesw.so.8 +OLD_LIBS+=usr/lib32/libncurses.so.8 +OLD_LIBS+=usr/lib32/libncursesw.so.8 # 20200206: Remove elf2aout OLD_FILES+=usr/bin/elf2aout From owner-svn-src-all@freebsd.org Thu Feb 20 16:58:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 334DE23F0A1; Thu, 20 Feb 2020 16:58:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NglK1GFpz4cp5; Thu, 20 Feb 2020 16:58:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 208FE24E58; Thu, 20 Feb 2020 16:58:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01KGwK1H043008; Thu, 20 Feb 2020 16:58:20 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KGwJnO042999; Thu, 20 Feb 2020 16:58:19 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202002201658.01KGwJnO042999@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Thu, 20 Feb 2020 16:58:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358172 - in head: lib/libc/stdlib libexec/rtld-elf/rtld-libc sys/bsm sys/compat/freebsd32 sys/kern sys/security/audit sys/sys usr.bin/truss X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head: lib/libc/stdlib libexec/rtld-elf/rtld-libc sys/bsm sys/compat/freebsd32 sys/kern sys/security/audit sys/sys usr.bin/truss X-SVN-Commit-Revision: 358172 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 16:58:21 -0000 Author: mjg Date: Thu Feb 20 16:58:19 2020 New Revision: 358172 URL: https://svnweb.freebsd.org/changeset/base/358172 Log: vfs: add realpathat syscall realpath(3) is used a lot e.g., by clang and is a major source of getcwd and fstatat calls. This can be done more efficiently in the kernel. This works by performing a regular lookup while saving the name and found parent directory. If the terminal vnode is a directory we can resolve it using usual means. Otherwise we can use the name saved by lookup and resolve the parent. See the review for sample syscall counts. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23574 Modified: head/lib/libc/stdlib/realpath.c head/libexec/rtld-elf/rtld-libc/Makefile.inc head/sys/bsm/audit_kevents.h head/sys/compat/freebsd32/syscalls.master head/sys/kern/syscalls.master head/sys/kern/vfs_cache.c head/sys/security/audit/audit_bsm.c head/sys/sys/param.h head/usr.bin/truss/syscalls.c Modified: head/lib/libc/stdlib/realpath.c ============================================================================== --- head/lib/libc/stdlib/realpath.c Thu Feb 20 16:38:30 2020 (r358171) +++ head/lib/libc/stdlib/realpath.c Thu Feb 20 16:58:19 2020 (r358172) @@ -42,14 +42,19 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include "un-namespace.h" +#include "libc_private.h" +extern int __realpathat(int fd, const char *path, char *buf, size_t size, + int flags); + /* * Find the real name of path, by removing all ".", ".." and symlink * components. Returns (resolved) on success, or (NULL) on failure, * in which case the path which caused trouble is left in (resolved). */ -static char * +static char * __noinline realpath1(const char *path, char *resolved) { struct stat sb; @@ -222,6 +227,10 @@ realpath(const char * __restrict path, char * __restri m = resolved = malloc(PATH_MAX); if (resolved == NULL) return (NULL); + } + if (__getosreldate() >= 1300080) { + if (__realpathat(AT_FDCWD, path, resolved, PATH_MAX, 0) == 0) + return (resolved); } res = realpath1(path, resolved); if (res == NULL) Modified: head/libexec/rtld-elf/rtld-libc/Makefile.inc ============================================================================== --- head/libexec/rtld-elf/rtld-libc/Makefile.inc Thu Feb 20 16:38:30 2020 (r358171) +++ head/libexec/rtld-elf/rtld-libc/Makefile.inc Thu Feb 20 16:58:19 2020 (r358172) @@ -49,7 +49,7 @@ _libc_other_objects= sigsetjmp lstat stat fstat fstata sysarch __sysctl issetugid __getcwd utrace \ thr_self thr_kill pread mmap lseek _exit _fstat _fstatat _fstatfs \ getdirentries _getdirentries _close _fcntl _open _openat _read \ - _sigprocmask _write readlink _setjmp setjmp setjmperr + _sigprocmask _write readlink __realpathat _setjmp setjmp setjmperr # Finally add additional architecture-dependent libc dependencies Modified: head/sys/bsm/audit_kevents.h ============================================================================== --- head/sys/bsm/audit_kevents.h Thu Feb 20 16:38:30 2020 (r358171) +++ head/sys/bsm/audit_kevents.h Thu Feb 20 16:58:19 2020 (r358172) @@ -657,6 +657,7 @@ #define AUE_LGETUUID 43261 /* CADETS. */ #define AUE_EXECVEAT 43262 /* FreeBSD/Linux. */ #define AUE_SHMRENAME 43263 /* FreeBSD-specific. */ +#define AUE_REALPATHAT 43264 /* FreeBSD-specific. */ /* * Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the Modified: head/sys/compat/freebsd32/syscalls.master ============================================================================== --- head/sys/compat/freebsd32/syscalls.master Thu Feb 20 16:38:30 2020 (r358171) +++ head/sys/compat/freebsd32/syscalls.master Thu Feb 20 16:58:19 2020 (r358172) @@ -1160,5 +1160,7 @@ 572 AUE_SHMRENAME NOPROTO { int shm_rename(const char *path_from, \ const char *path_to, int flags); } 573 AUE_NULL NOPROTO { int sigfastblock(int cmd, uint32_t *ptr); } +574 AUE_REALPATHAT NOPROTO { int __realpathat(int fd, const char *path, \ + char *buf, size_t size, int flags); } ; vim: syntax=off Modified: head/sys/kern/syscalls.master ============================================================================== --- head/sys/kern/syscalls.master Thu Feb 20 16:38:30 2020 (r358171) +++ head/sys/kern/syscalls.master Thu Feb 20 16:58:19 2020 (r358172) @@ -3218,6 +3218,15 @@ _Inout_opt_ uint32_t *ptr ); } +574 AUE_REALPATHAT STD { + int __realpathat( + int fd, + _In_z_ const char *path, + _Out_writes_z_(size) char *buf, + size_t size, + int flags + ); + } ; Please copy any additions and changes to the following compatability tables: ; sys/compat/freebsd32/syscalls.master Modified: head/sys/kern/vfs_cache.c ============================================================================== --- head/sys/kern/vfs_cache.c Thu Feb 20 16:38:30 2020 (r358171) +++ head/sys/kern/vfs_cache.c Thu Feb 20 16:58:19 2020 (r358172) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -387,8 +388,12 @@ STATNODE_COUNTER(shrinking_skipped, "Number of times shrinking was already in progress"); static void cache_zap_locked(struct namecache *ncp, bool neg_locked); -static int vn_fullpath1(struct thread *td, struct vnode *vp, struct vnode *rdir, +static int vn_fullpath_hardlink(struct thread *td, struct nameidata *ndp, char **retbuf, + char **freebuf, size_t *buflen); +static int vn_fullpath_any(struct thread *td, struct vnode *vp, struct vnode *rdir, char *buf, char **retbuf, size_t *buflen); +static int vn_fullpath_dir(struct thread *td, struct vnode *vp, struct vnode *rdir, + char *buf, char **retbuf, size_t *len, bool slash_prefixed, size_t addend); static MALLOC_DEFINE(M_VFSCACHE, "vfscache", "VFS name cache entries"); @@ -2201,7 +2206,7 @@ vn_getcwd(struct thread *td, char *buf, char **retbuf, rdir = fdp->fd_rdir; vrefact(rdir); FILEDESC_SUNLOCK(fdp); - error = vn_fullpath1(td, cdir, rdir, buf, retbuf, buflen); + error = vn_fullpath_any(td, cdir, rdir, buf, retbuf, buflen); vrele(rdir); vrele(cdir); @@ -2212,6 +2217,37 @@ vn_getcwd(struct thread *td, char *buf, char **retbuf, return (error); } +static int +kern___realpathat(struct thread *td, int fd, const char *path, char *buf, + size_t size, int flags, enum uio_seg pathseg) +{ + struct nameidata nd; + char *retbuf, *freebuf; + int error; + + if (flags != 0) + return (EINVAL); + NDINIT_ATRIGHTS(&nd, LOOKUP, FOLLOW | SAVENAME | WANTPARENT | AUDITVNODE1, + pathseg, path, fd, &cap_fstat_rights, td); + if ((error = namei(&nd)) != 0) + return (error); + error = vn_fullpath_hardlink(td, &nd, &retbuf, &freebuf, &size); + if (error == 0) { + error = copyout(retbuf, buf, size); + free(freebuf, M_TEMP); + } + NDFREE(&nd, 0); + return (error); +} + +int +sys___realpathat(struct thread *td, struct __realpathat_args *uap) +{ + + return (kern___realpathat(td, uap->fd, uap->path, uap->buf, uap->size, + uap->flags, UIO_USERSPACE)); +} + /* * Retrieve the full filesystem path that correspond to a vnode from the name * cache (if available) @@ -2235,7 +2271,7 @@ vn_fullpath(struct thread *td, struct vnode *vn, char rdir = fdp->fd_rdir; vrefact(rdir); FILEDESC_SUNLOCK(fdp); - error = vn_fullpath1(td, vn, rdir, buf, retbuf, &buflen); + error = vn_fullpath_any(td, vn, rdir, buf, retbuf, &buflen); vrele(rdir); if (!error) @@ -2263,7 +2299,7 @@ vn_fullpath_global(struct thread *td, struct vnode *vn return (EINVAL); buflen = MAXPATHLEN; buf = malloc(buflen, M_TEMP, M_WAITOK); - error = vn_fullpath1(td, vn, rootvnode, buf, retbuf, &buflen); + error = vn_fullpath_any(td, vn, rootvnode, buf, retbuf, &buflen); if (!error) *freebuf = buf; else @@ -2334,40 +2370,40 @@ vn_vptocnp(struct vnode **vp, struct ucred *cred, char } /* - * The magic behind vn_getcwd() and vn_fullpath(). + * Resolve a directory to a pathname. + * + * The name of the directory can always be found in the namecache or fetched + * from the filesystem. There is also guaranteed to be only one parent, meaning + * we can just follow vnodes up until we find the root. + * + * The vnode must be referenced. */ static int -vn_fullpath1(struct thread *td, struct vnode *vp, struct vnode *rdir, - char *buf, char **retbuf, size_t *len) +vn_fullpath_dir(struct thread *td, struct vnode *vp, struct vnode *rdir, + char *buf, char **retbuf, size_t *len, bool slash_prefixed, size_t addend) { - int error, slash_prefixed; #ifdef KDTRACE_HOOKS struct vnode *startvp = vp; #endif struct vnode *vp1; size_t buflen; + int error; + VNPASS(vp->v_type == VDIR || VN_IS_DOOMED(vp), vp); + VNPASS(vp->v_usecount > 0, vp); + buflen = *len; - buflen--; - buf[buflen] = '\0'; + if (!slash_prefixed) { + MPASS(*len >= 2); + buflen--; + buf[buflen] = '\0'; + } + error = 0; - slash_prefixed = 0; SDT_PROBE1(vfs, namecache, fullpath, entry, vp); counter_u64_add(numfullpathcalls, 1); - vref(vp); - if (vp->v_type != VDIR) { - error = vn_vptocnp(&vp, td->td_ucred, buf, &buflen); - if (error) - return (error); - if (buflen == 0) { - vrele(vp); - return (ENOMEM); - } - buf[--buflen] = '/'; - slash_prefixed = 1; - } while (vp != rdir && vp != rootvnode) { /* * The vp vnode must be already fully constructed, @@ -2420,7 +2456,7 @@ vn_fullpath1(struct thread *td, struct vnode *vp, stru break; } buf[--buflen] = '/'; - slash_prefixed = 1; + slash_prefixed = true; } if (error) return (error); @@ -2437,10 +2473,126 @@ vn_fullpath1(struct thread *td, struct vnode *vp, stru counter_u64_add(numfullpathfound, 1); vrele(vp); - SDT_PROBE3(vfs, namecache, fullpath, return, 0, startvp, buf + buflen); *retbuf = buf + buflen; + SDT_PROBE3(vfs, namecache, fullpath, return, 0, startvp, *retbuf); *len -= buflen; + *len += addend; return (0); +} + +/* + * Resolve an arbitrary vnode to a pathname. + * + * Note 2 caveats: + * - hardlinks are not tracked, thus if the vnode is not a directory this can + * resolve to a different path than the one used to find it + * - namecache is not mandatory, meaning names are not guaranteed to be added + * (in which case resolving fails) + */ +static int +vn_fullpath_any(struct thread *td, struct vnode *vp, struct vnode *rdir, + char *buf, char **retbuf, size_t *buflen) +{ + size_t orig_buflen; + bool slash_prefixed; + int error; + + if (*buflen < 2) + return (EINVAL); + + orig_buflen = *buflen; + + vref(vp); + slash_prefixed = false; + if (vp->v_type != VDIR) { + *buflen -= 1; + buf[*buflen] = '\0'; + error = vn_vptocnp(&vp, td->td_ucred, buf, buflen); + if (error) + return (error); + if (*buflen == 0) { + vrele(vp); + return (ENOMEM); + } + *buflen -= 1; + buf[*buflen] = '/'; + slash_prefixed = true; + } + + return (vn_fullpath_dir(td, vp, rdir, buf, retbuf, buflen, slash_prefixed, + orig_buflen - *buflen)); +} + +/* + * Resolve an arbitrary vnode to a pathname (taking care of hardlinks). + * + * Since the namecache does not track handlings, the caller is expected to first + * look up the target vnode with SAVENAME | WANTPARENT flags passed to namei. + * + * Then we have 2 cases: + * - if the found vnode is a directory, the path can be constructed just by + * fullowing names up the chain + * - otherwise we populate the buffer with the saved name and start resolving + * from the parent + */ +static int +vn_fullpath_hardlink(struct thread *td, struct nameidata *ndp, char **retbuf, + char **freebuf, size_t *buflen) +{ + char *buf, *tmpbuf; + struct filedesc *fdp; + struct vnode *rdir; + struct componentname *cnp; + struct vnode *vp; + size_t addend; + int error; + bool slash_prefixed; + + if (*buflen < 2) + return (EINVAL); + if (*buflen > MAXPATHLEN) + *buflen = MAXPATHLEN; + + slash_prefixed = false; + + buf = malloc(*buflen, M_TEMP, M_WAITOK); + fdp = td->td_proc->p_fd; + FILEDESC_SLOCK(fdp); + rdir = fdp->fd_rdir; + vrefact(rdir); + FILEDESC_SUNLOCK(fdp); + + addend = 0; + vp = ndp->ni_vp; + if (vp->v_type != VDIR) { + cnp = &ndp->ni_cnd; + addend = cnp->cn_namelen + 2; + if (*buflen < addend) { + error = ENOMEM; + goto out_bad; + } + *buflen -= addend; + tmpbuf = buf + *buflen; + tmpbuf[0] = '/'; + memcpy(&tmpbuf[1], cnp->cn_nameptr, cnp->cn_namelen); + tmpbuf[addend - 1] = '\0'; + slash_prefixed = true; + vp = ndp->ni_dvp; + } + + vref(vp); + error = vn_fullpath_dir(td, vp, rdir, buf, retbuf, buflen, slash_prefixed, addend); + if (error != 0) + goto out_bad; + + vrele(rdir); + *freebuf = buf; + + return (0); +out_bad: + vrele(rdir); + free(buf, M_TEMP); + return (error); } struct vnode * Modified: head/sys/security/audit/audit_bsm.c ============================================================================== --- head/sys/security/audit/audit_bsm.c Thu Feb 20 16:38:30 2020 (r358171) +++ head/sys/security/audit/audit_bsm.c Thu Feb 20 16:58:19 2020 (r358172) @@ -830,6 +830,7 @@ kaudit_to_bsm(struct kaudit_record *kar, struct au_rec case AUE_UNLINK: case AUE_UNLINKAT: case AUE_UTIMES: + case AUE_REALPATHAT: ATFD1_TOKENS(1); UPATH1_VNODE1_TOKENS; break; Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Thu Feb 20 16:38:30 2020 (r358171) +++ head/sys/sys/param.h Thu Feb 20 16:58:19 2020 (r358172) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300079 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300080 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, Modified: head/usr.bin/truss/syscalls.c ============================================================================== --- head/usr.bin/truss/syscalls.c Thu Feb 20 16:38:30 2020 (r358171) +++ head/usr.bin/truss/syscalls.c Thu Feb 20 16:58:19 2020 (r358172) @@ -115,6 +115,9 @@ static struct syscall decoded_syscalls[] = { .args = { { Int, 0 }, { Int, 1 }, { CapRights | OUT, 2 } } }, { .name = "__getcwd", .ret_type = 1, .nargs = 2, .args = { { Name | OUT, 0 }, { Int, 1 } } }, + { .name = "__realpathat", .ret_type = 1, .nargs = 5, + .args = { { Atfd, 0 }, { Name | IN, 1 }, { Name | OUT, 2 }, + { Sizet, 3 }, { Int, 4} } }, { .name = "_umtx_op", .ret_type = 1, .nargs = 5, .args = { { Ptr, 0 }, { Umtxop, 1 }, { LongHex, 2 }, { Ptr, 3 }, { Ptr, 4 } } }, From owner-svn-src-all@freebsd.org Thu Feb 20 16:59:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D4C5023F136; Thu, 20 Feb 2020 16:59:01 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Ngm4426Fz4dth; Thu, 20 Feb 2020 16:59:00 +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 7B4CC24E61; Thu, 20 Feb 2020 16:59:00 +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 01KGx01w043094; Thu, 20 Feb 2020 16:59:00 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KGwwSF043081; Thu, 20 Feb 2020 16:58:58 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202002201658.01KGwwSF043081@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Thu, 20 Feb 2020 16:58:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358173 - in head/sys: compat/freebsd32 kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: compat/freebsd32 kern sys X-SVN-Commit-Revision: 358173 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 16:59:01 -0000 Author: mjg Date: Thu Feb 20 16:58:57 2020 New Revision: 358173 URL: https://svnweb.freebsd.org/changeset/base/358173 Log: make sysent for r358172 ("vfs: add realpathat syscall") Modified: head/sys/compat/freebsd32/freebsd32_syscall.h head/sys/compat/freebsd32/freebsd32_syscalls.c head/sys/compat/freebsd32/freebsd32_sysent.c head/sys/compat/freebsd32/freebsd32_systrace_args.c head/sys/kern/init_sysent.c head/sys/kern/syscalls.c head/sys/kern/systrace_args.c head/sys/sys/syscall.h head/sys/sys/syscall.mk head/sys/sys/sysproto.h Modified: head/sys/compat/freebsd32/freebsd32_syscall.h ============================================================================== --- head/sys/compat/freebsd32/freebsd32_syscall.h Thu Feb 20 16:58:19 2020 (r358172) +++ head/sys/compat/freebsd32/freebsd32_syscall.h Thu Feb 20 16:58:57 2020 (r358173) @@ -500,4 +500,5 @@ #define FREEBSD32_SYS_shm_open2 571 #define FREEBSD32_SYS_shm_rename 572 #define FREEBSD32_SYS_sigfastblock 573 -#define FREEBSD32_SYS_MAXSYSCALL 574 +#define FREEBSD32_SYS___realpathat 574 +#define FREEBSD32_SYS_MAXSYSCALL 575 Modified: head/sys/compat/freebsd32/freebsd32_syscalls.c ============================================================================== --- head/sys/compat/freebsd32/freebsd32_syscalls.c Thu Feb 20 16:58:19 2020 (r358172) +++ head/sys/compat/freebsd32/freebsd32_syscalls.c Thu Feb 20 16:58:57 2020 (r358173) @@ -610,4 +610,5 @@ const char *freebsd32_syscallnames[] = { "shm_open2", /* 571 = shm_open2 */ "shm_rename", /* 572 = shm_rename */ "sigfastblock", /* 573 = sigfastblock */ + "__realpathat", /* 574 = __realpathat */ }; Modified: head/sys/compat/freebsd32/freebsd32_sysent.c ============================================================================== --- head/sys/compat/freebsd32/freebsd32_sysent.c Thu Feb 20 16:58:19 2020 (r358172) +++ head/sys/compat/freebsd32/freebsd32_sysent.c Thu Feb 20 16:58:57 2020 (r358173) @@ -663,4 +663,5 @@ struct sysent freebsd32_sysent[] = { { AS(shm_open2_args), (sy_call_t *)sys_shm_open2, AUE_SHMOPEN, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 571 = shm_open2 */ { AS(shm_rename_args), (sy_call_t *)sys_shm_rename, AUE_SHMRENAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 572 = shm_rename */ { AS(sigfastblock_args), (sy_call_t *)sys_sigfastblock, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 573 = sigfastblock */ + { AS(__realpathat_args), (sy_call_t *)sys___realpathat, AUE_REALPATHAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 574 = __realpathat */ }; Modified: head/sys/compat/freebsd32/freebsd32_systrace_args.c ============================================================================== --- head/sys/compat/freebsd32/freebsd32_systrace_args.c Thu Feb 20 16:58:19 2020 (r358172) +++ head/sys/compat/freebsd32/freebsd32_systrace_args.c Thu Feb 20 16:58:57 2020 (r358173) @@ -3363,6 +3363,17 @@ systrace_args(int sysnum, void *params, uint64_t *uarg *n_args = 2; break; } + /* __realpathat */ + case 574: { + struct __realpathat_args *p = params; + iarg[0] = p->fd; /* int */ + uarg[1] = (intptr_t) p->path; /* const char * */ + uarg[2] = (intptr_t) p->buf; /* char * */ + uarg[3] = p->size; /* size_t */ + iarg[4] = p->flags; /* int */ + *n_args = 5; + break; + } default: *n_args = 0; break; @@ -9062,6 +9073,28 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *d break; }; break; + /* __realpathat */ + case 574: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland char *"; + break; + case 3: + p = "size_t"; + break; + case 4: + p = "int"; + break; + default: + break; + }; + break; default: break; }; @@ -10953,6 +10986,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char * break; /* sigfastblock */ case 573: + if (ndx == 0 || ndx == 1) + p = "int"; + break; + /* __realpathat */ + case 574: if (ndx == 0 || ndx == 1) p = "int"; break; Modified: head/sys/kern/init_sysent.c ============================================================================== --- head/sys/kern/init_sysent.c Thu Feb 20 16:58:19 2020 (r358172) +++ head/sys/kern/init_sysent.c Thu Feb 20 16:58:57 2020 (r358173) @@ -629,4 +629,5 @@ struct sysent sysent[] = { { AS(shm_open2_args), (sy_call_t *)sys_shm_open2, AUE_SHMOPEN, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 571 = shm_open2 */ { AS(shm_rename_args), (sy_call_t *)sys_shm_rename, AUE_SHMRENAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 572 = shm_rename */ { AS(sigfastblock_args), (sy_call_t *)sys_sigfastblock, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 573 = sigfastblock */ + { AS(__realpathat_args), (sy_call_t *)sys___realpathat, AUE_REALPATHAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 574 = __realpathat */ }; Modified: head/sys/kern/syscalls.c ============================================================================== --- head/sys/kern/syscalls.c Thu Feb 20 16:58:19 2020 (r358172) +++ head/sys/kern/syscalls.c Thu Feb 20 16:58:57 2020 (r358173) @@ -580,4 +580,5 @@ const char *syscallnames[] = { "shm_open2", /* 571 = shm_open2 */ "shm_rename", /* 572 = shm_rename */ "sigfastblock", /* 573 = sigfastblock */ + "__realpathat", /* 574 = __realpathat */ }; Modified: head/sys/kern/systrace_args.c ============================================================================== --- head/sys/kern/systrace_args.c Thu Feb 20 16:58:19 2020 (r358172) +++ head/sys/kern/systrace_args.c Thu Feb 20 16:58:57 2020 (r358173) @@ -3355,6 +3355,17 @@ systrace_args(int sysnum, void *params, uint64_t *uarg *n_args = 2; break; } + /* __realpathat */ + case 574: { + struct __realpathat_args *p = params; + iarg[0] = p->fd; /* int */ + uarg[1] = (intptr_t) p->path; /* const char * */ + uarg[2] = (intptr_t) p->buf; /* char * */ + uarg[3] = p->size; /* size_t */ + iarg[4] = p->flags; /* int */ + *n_args = 5; + break; + } default: *n_args = 0; break; @@ -8967,6 +8978,28 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *d break; }; break; + /* __realpathat */ + case 574: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland char *"; + break; + case 3: + p = "size_t"; + break; + case 4: + p = "int"; + break; + default: + break; + }; + break; default: break; }; @@ -10885,6 +10918,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char * break; /* sigfastblock */ case 573: + if (ndx == 0 || ndx == 1) + p = "int"; + break; + /* __realpathat */ + case 574: if (ndx == 0 || ndx == 1) p = "int"; break; Modified: head/sys/sys/syscall.h ============================================================================== --- head/sys/sys/syscall.h Thu Feb 20 16:58:19 2020 (r358172) +++ head/sys/sys/syscall.h Thu Feb 20 16:58:57 2020 (r358173) @@ -509,4 +509,5 @@ #define SYS_shm_open2 571 #define SYS_shm_rename 572 #define SYS_sigfastblock 573 -#define SYS_MAXSYSCALL 574 +#define SYS___realpathat 574 +#define SYS_MAXSYSCALL 575 Modified: head/sys/sys/syscall.mk ============================================================================== --- head/sys/sys/syscall.mk Thu Feb 20 16:58:19 2020 (r358172) +++ head/sys/sys/syscall.mk Thu Feb 20 16:58:57 2020 (r358173) @@ -414,4 +414,5 @@ MIASM = \ __sysctlbyname.o \ shm_open2.o \ shm_rename.o \ - sigfastblock.o + sigfastblock.o \ + __realpathat.o Modified: head/sys/sys/sysproto.h ============================================================================== --- head/sys/sys/sysproto.h Thu Feb 20 16:58:19 2020 (r358172) +++ head/sys/sys/sysproto.h Thu Feb 20 16:58:57 2020 (r358173) @@ -1823,6 +1823,13 @@ struct sigfastblock_args { char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)]; char ptr_l_[PADL_(uint32_t *)]; uint32_t * ptr; char ptr_r_[PADR_(uint32_t *)]; }; +struct __realpathat_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; + char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)]; + char size_l_[PADL_(size_t)]; size_t size; char size_r_[PADR_(size_t)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; +}; int nosys(struct thread *, struct nosys_args *); void sys_sys_exit(struct thread *, struct sys_exit_args *); int sys_fork(struct thread *, struct fork_args *); @@ -2212,6 +2219,7 @@ int sys___sysctlbyname(struct thread *, struct __sysct int sys_shm_open2(struct thread *, struct shm_open2_args *); int sys_shm_rename(struct thread *, struct shm_rename_args *); int sys_sigfastblock(struct thread *, struct sigfastblock_args *); +int sys___realpathat(struct thread *, struct __realpathat_args *); #ifdef COMPAT_43 @@ -3136,6 +3144,7 @@ int freebsd12_shm_open(struct thread *, struct freebsd #define SYS_AUE_shm_open2 AUE_SHMOPEN #define SYS_AUE_shm_rename AUE_SHMRENAME #define SYS_AUE_sigfastblock AUE_NULL +#define SYS_AUE___realpathat AUE_REALPATHAT #undef PAD_ #undef PADL_ From owner-svn-src-all@freebsd.org Thu Feb 20 17:08:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4B5A523F756; Thu, 20 Feb 2020 17:08:54 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NgzT4MKPz3LfR; Thu, 20 Feb 2020 17:08: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 6CF452503C; Thu, 20 Feb 2020 17:08: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 01KH8rTb049155; Thu, 20 Feb 2020 17:08:53 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KH8red049154; Thu, 20 Feb 2020 17:08:53 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002201708.01KH8red049154@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 17:08:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358174 - head/sys/dev/pci X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/dev/pci X-SVN-Commit-Revision: 358174 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 17:08:54 -0000 Author: kib Date: Thu Feb 20 17:08:52 2020 New Revision: 358174 URL: https://svnweb.freebsd.org/changeset/base/358174 Log: Add more values for PCI capabilities, PCIe extended capabilities, and subclasses. Taken from https://pcisig.com/sites/default/files/files/PCI_Code-ID_r_1_11__v24_Jan_2019.pdf Submitted by: Dmitry Luhtionov MFC after: 1 week Modified: head/sys/dev/pci/pcireg.h Modified: head/sys/dev/pci/pcireg.h ============================================================================== --- head/sys/dev/pci/pcireg.h Thu Feb 20 16:58:57 2020 (r358173) +++ head/sys/dev/pci/pcireg.h Thu Feb 20 17:08:52 2020 (r358174) @@ -151,6 +151,7 @@ #define PCIY_SATA 0x12 /* SATA */ #define PCIY_PCIAF 0x13 /* PCI Advanced Features */ #define PCIY_EA 0x14 /* PCI Extended Allocation */ +#define PCIY_FPB 0x15 /* Flattening Portal Bridge */ /* Extended Capability Register Fields */ @@ -194,6 +195,20 @@ #define PCIZ_LN_REQ 0x001c /* LN Requester */ #define PCIZ_DPC 0x001d /* Downstream Port Containment */ #define PCIZ_L1PM 0x001e /* L1 PM Substates */ +#define PCIZ_PTM 0x001f /* Precision Time Measurement */ +#define PCIZ_M_PCIE 0x0020 /* PCIe over M-PHY */ +#define PCIZ_FRS 0x0021 /* FRS Queuing */ +#define PCIZ_RTR 0x0022 /* Readiness Time Reporting */ +#define PCIZ_DVSEC 0x0023 /* Designated Vendor-Specific */ +#define PCIZ_VF_REBAR 0x0024 /* VF Resizable BAR */ +#define PCIZ_DLNK 0x0025 /* Data Link Feature */ +#define PCIZ_16GT 0x0026 /* Physical Layer 16.0 GT/s */ +#define PCIZ_LMR 0x0027 /* Lane Margining at Receiver */ +#define PCIZ_HIER_ID 0x0028 /* Hierarchy ID */ +#define PCIZ_NPEM 0x0029 /* Native PCIe Enclosure Management */ +#define PCIZ_PL32 0x002a /* Physical Layer 32.0 GT/s */ +#define PCIZ_AP 0x002b /* Alternate Protocol */ +#define PCIZ_SFI 0x002c /* System Firmware Intermediary */ /* config registers for header type 0 devices */ @@ -334,6 +349,8 @@ #define PCIS_STORAGE_NVM 0x08 #define PCIP_STORAGE_NVM_NVMHCI_1_0 0x01 #define PCIP_STORAGE_NVM_ENTERPRISE_NVMHCI_1_0 0x02 +#define PCIS_STORAGE_UFS 0x09 +#define PCIP_STORAGE_UFS_UFSHCI_1_0 0x01 #define PCIS_STORAGE_OTHER 0x80 #define PCIC_NETWORK 0x02 @@ -344,6 +361,8 @@ #define PCIS_NETWORK_ISDN 0x04 #define PCIS_NETWORK_WORLDFIP 0x05 #define PCIS_NETWORK_PICMG 0x06 +#define PCIS_NETWORK_INFINIBAND 0x07 +#define PCIS_NETWORK_HFC 0x08 #define PCIS_NETWORK_OTHER 0x80 #define PCIC_DISPLAY 0x03 @@ -357,6 +376,7 @@ #define PCIS_MULTIMEDIA_AUDIO 0x01 #define PCIS_MULTIMEDIA_TELE 0x02 #define PCIS_MULTIMEDIA_HDA 0x03 +#define PCIP_MULTIMEDIA_HDA_VENDOR 0x01 #define PCIS_MULTIMEDIA_OTHER 0x80 #define PCIC_MEMORY 0x05 @@ -377,6 +397,8 @@ #define PCIS_BRIDGE_RACEWAY 0x08 #define PCIS_BRIDGE_PCI_TRANSPARENT 0x09 #define PCIS_BRIDGE_INFINIBAND 0x0a +#define PCIS_BRIDGE_AS_PCI 0x0b +#define PCIS_BRIDGE_AS_PCI_ASI_SIG 0x01 #define PCIS_BRIDGE_OTHER 0x80 #define PCIC_SIMPLECOMM 0x07 @@ -408,6 +430,7 @@ #define PCIS_BASEPERIPH_PCIHOT 0x04 #define PCIS_BASEPERIPH_SDHC 0x05 #define PCIS_BASEPERIPH_IOMMU 0x06 +#define PCIS_BASEPERIPH_RCEC 0x07 #define PCIS_BASEPERIPH_OTHER 0x80 #define PCIC_INPUTDEV 0x09 @@ -450,6 +473,7 @@ #define PCIP_SERIALBUS_IPMI_BT 0x02 #define PCIS_SERIALBUS_SERCOS 0x08 #define PCIS_SERIALBUS_CANBUS 0x09 +#define PCIS_SERIALBUS_MIPI_I3C 0x0a #define PCIC_WIRELESS 0x0d #define PCIS_WIRELESS_IRDA 0x00 @@ -459,6 +483,8 @@ #define PCIS_WIRELESS_BROADBAND 0x12 #define PCIS_WIRELESS_80211A 0x20 #define PCIS_WIRELESS_80211B 0x21 +#define PCIS_WIRELESS_CELL 0x40 +#define PCIS_WIRELESS_CELL_E 0x41 #define PCIS_WIRELESS_OTHER 0x80 #define PCIC_INTELLIIO 0x0e From owner-svn-src-all@freebsd.org Thu Feb 20 17:10:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B907723F826; Thu, 20 Feb 2020 17:10: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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nh1F4Xqvz3PGL; Thu, 20 Feb 2020 17:10: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 967B925042; Thu, 20 Feb 2020 17:10: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 01KHAPYV049300; Thu, 20 Feb 2020 17:10:25 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KHAPFL049299; Thu, 20 Feb 2020 17:10:25 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002201710.01KHAPFL049299@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 17:10:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358175 - head/usr.sbin/pciconf X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/usr.sbin/pciconf X-SVN-Commit-Revision: 358175 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 17:10:25 -0000 Author: kib Date: Thu Feb 20 17:10:25 2020 New Revision: 358175 URL: https://svnweb.freebsd.org/changeset/base/358175 Log: Print out some newly added PCIe extended capabilities and subclasses. Taken from https://pcisig.com/sites/default/files/files/PCI_Code-ID_r_1_11__v24_Jan_2019.pdf Submitted by: Dmitry Luhtionov MFC after: 1 week Modified: head/usr.sbin/pciconf/cap.c head/usr.sbin/pciconf/pciconf.c Modified: head/usr.sbin/pciconf/cap.c ============================================================================== --- head/usr.sbin/pciconf/cap.c Thu Feb 20 17:08:52 2020 (r358174) +++ head/usr.sbin/pciconf/cap.c Thu Feb 20 17:10:25 2020 (r358175) @@ -1015,6 +1015,20 @@ static struct { { PCIZ_LN_REQ, "LN Requester" }, { PCIZ_DPC, "Downstream Port Containment" }, { PCIZ_L1PM, "L1 PM Substates" }, + { PCIZ_PTM, "Precision Time Measurement" }, + { PCIZ_M_PCIE, "PCIe over M-PHY" }, + { PCIZ_FRS, "FRS Queuing" }, + { PCIZ_RTR, "Readiness Time Reporting" }, + { PCIZ_DVSEC, "Designated Vendor-Specific" }, + { PCIZ_VF_REBAR, "VF Resizable BAR" }, + { PCIZ_DLNK, "Data Link Feature" }, + { PCIZ_16GT, "Physical Layer 16.0 GT/s" }, + { PCIZ_LMR, "Lane Margining at Receiver" }, + { PCIZ_HIER_ID, "Hierarchy ID" }, + { PCIZ_NPEM, "Native PCIe Enclosure Management" }, + { PCIZ_PL32, "Physical Layer 32.0 GT/s" }, + { PCIZ_AP, "Alternate Protocol" }, + { PCIZ_SFI, "System Firmware Intermediary" }, { 0, NULL } }; Modified: head/usr.sbin/pciconf/pciconf.c ============================================================================== --- head/usr.sbin/pciconf/pciconf.c Thu Feb 20 17:08:52 2020 (r358174) +++ head/usr.sbin/pciconf/pciconf.c Thu Feb 20 17:10:25 2020 (r358175) @@ -665,12 +665,17 @@ static struct {PCIC_STORAGE, PCIS_STORAGE_SATA, "SATA"}, {PCIC_STORAGE, PCIS_STORAGE_SAS, "SAS"}, {PCIC_STORAGE, PCIS_STORAGE_NVM, "NVM"}, + {PCIC_STORAGE, PCIS_STORAGE_UFS, "UFS"}, {PCIC_NETWORK, -1, "network"}, {PCIC_NETWORK, PCIS_NETWORK_ETHERNET, "ethernet"}, {PCIC_NETWORK, PCIS_NETWORK_TOKENRING, "token ring"}, {PCIC_NETWORK, PCIS_NETWORK_FDDI, "fddi"}, {PCIC_NETWORK, PCIS_NETWORK_ATM, "ATM"}, {PCIC_NETWORK, PCIS_NETWORK_ISDN, "ISDN"}, + {PCIC_NETWORK, PCIS_NETWORK_WORLDFIP, "WorldFip"}, + {PCIC_NETWORK, PCIS_NETWORK_PICMG, "PICMG"}, + {PCIC_NETWORK, PCIS_NETWORK_INFINIBAND, "InfiniBand"}, + {PCIC_NETWORK, PCIS_NETWORK_HFC, "host fabric"}, {PCIC_DISPLAY, -1, "display"}, {PCIC_DISPLAY, PCIS_DISPLAY_VGA, "VGA"}, {PCIC_DISPLAY, PCIS_DISPLAY_XGA, "XGA"}, @@ -693,6 +698,11 @@ static struct {PCIC_BRIDGE, PCIS_BRIDGE_NUBUS, "PCI-NuBus"}, {PCIC_BRIDGE, PCIS_BRIDGE_CARDBUS, "PCI-CardBus"}, {PCIC_BRIDGE, PCIS_BRIDGE_RACEWAY, "PCI-RACEway"}, + {PCIC_BRIDGE, PCIS_BRIDGE_PCI_TRANSPARENT, + "Semi-transparent PCI-to-PCI"}, + {PCIC_BRIDGE, PCIS_BRIDGE_INFINIBAND, "InfiniBand-PCI"}, + {PCIC_BRIDGE, PCIS_BRIDGE_AS_PCI, + "AdvancedSwitching-PCI"}, {PCIC_SIMPLECOMM, -1, "simple comms"}, {PCIC_SIMPLECOMM, PCIS_SIMPLECOMM_UART, "UART"}, /* could detect 16550 */ {PCIC_SIMPLECOMM, PCIS_SIMPLECOMM_PAR, "parallel port"}, @@ -706,6 +716,8 @@ static struct {PCIC_BASEPERIPH, PCIS_BASEPERIPH_PCIHOT, "PCI hot-plug controller"}, {PCIC_BASEPERIPH, PCIS_BASEPERIPH_SDHC, "SD host controller"}, {PCIC_BASEPERIPH, PCIS_BASEPERIPH_IOMMU, "IOMMU"}, + {PCIC_BASEPERIPH, PCIS_BASEPERIPH_RCEC, + "Root Complex Event Collector"}, {PCIC_INPUTDEV, -1, "input device"}, {PCIC_INPUTDEV, PCIS_INPUTDEV_KEYBOARD, "keyboard"}, {PCIC_INPUTDEV, PCIS_INPUTDEV_DIGITIZER,"digitizer"}, @@ -721,10 +733,23 @@ static struct {PCIC_SERIALBUS, PCIS_SERIALBUS_USB, "USB"}, {PCIC_SERIALBUS, PCIS_SERIALBUS_FC, "Fibre Channel"}, {PCIC_SERIALBUS, PCIS_SERIALBUS_SMBUS, "SMBus"}, + {PCIC_SERIALBUS, PCIS_SERIALBUS_INFINIBAND, "InfiniBand"}, + {PCIC_SERIALBUS, PCIS_SERIALBUS_IPMI, "IPMI"}, + {PCIC_SERIALBUS, PCIS_SERIALBUS_SERCOS, "SERCOS"}, + {PCIC_SERIALBUS, PCIS_SERIALBUS_CANBUS, "CANbus"}, + {PCIC_SERIALBUS, PCIS_SERIALBUS_MIPI_I3C, "MIPI I3C"}, {PCIC_WIRELESS, -1, "wireless controller"}, {PCIC_WIRELESS, PCIS_WIRELESS_IRDA, "iRDA"}, {PCIC_WIRELESS, PCIS_WIRELESS_IR, "IR"}, {PCIC_WIRELESS, PCIS_WIRELESS_RF, "RF"}, + {PCIC_WIRELESS, PCIS_WIRELESS_BLUETOOTH, "bluetooth"}, + {PCIC_WIRELESS, PCIS_WIRELESS_BROADBAND, "broadband"}, + {PCIC_WIRELESS, PCIS_WIRELESS_80211A, "ethernet 802.11a"}, + {PCIC_WIRELESS, PCIS_WIRELESS_80211B, "ethernet 802.11b"}, + {PCIC_WIRELESS, PCIS_WIRELESS_CELL, + "cellular controller/modem"}, + {PCIC_WIRELESS, PCIS_WIRELESS_CELL_E, + "cellular controller/modem plus ethernet"}, {PCIC_INTELLIIO, -1, "intelligent I/O controller"}, {PCIC_INTELLIIO, PCIS_INTELLIIO_I2O, "I2O"}, {PCIC_SATCOM, -1, "satellite communication"}, From owner-svn-src-all@freebsd.org Thu Feb 20 17:19:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5206323FB39; Thu, 20 Feb 2020 17:19:17 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NhCT0l7Rz4CjP; Thu, 20 Feb 2020 17:19:17 +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 09D522520E; Thu, 20 Feb 2020 17:19:17 +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 01KHJGWj055281; Thu, 20 Feb 2020 17:19:16 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KHJGQ9055280; Thu, 20 Feb 2020 17:19:16 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202002201719.01KHJGQ9055280@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 20 Feb 2020 17:19:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358176 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/compat/linuxkpi/common/include/linux X-SVN-Commit-Revision: 358176 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 17:19:17 -0000 Author: manu Date: Thu Feb 20 17:19:16 2020 New Revision: 358176 URL: https://svnweb.freebsd.org/changeset/base/358176 Log: linuxkpi: Add list_is_first function This function just test if the element is the first of the list. Reviewed by: hselasky MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23766 Modified: head/sys/compat/linuxkpi/common/include/linux/list.h Modified: head/sys/compat/linuxkpi/common/include/linux/list.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/list.h Thu Feb 20 17:10:25 2020 (r358175) +++ head/sys/compat/linuxkpi/common/include/linux/list.h Thu Feb 20 17:19:16 2020 (r358176) @@ -449,6 +449,13 @@ static inline void list_cut_position(struct list_head __list_cut_position(list, head, entry); } +static inline int list_is_first(const struct list_head *list, + const struct list_head *head) +{ + + return (list->prev == head); +} + static inline int list_is_last(const struct list_head *list, const struct list_head *head) { From owner-svn-src-all@freebsd.org Thu Feb 20 17:20:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5CDF923FC0A; Thu, 20 Feb 2020 17:20:51 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NhFG6hCZz4Gdc; Thu, 20 Feb 2020 17:20:50 +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 B928125232; Thu, 20 Feb 2020 17:20:50 +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 01KHKojO056245; Thu, 20 Feb 2020 17:20:50 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KHKodp056244; Thu, 20 Feb 2020 17:20:50 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202002201720.01KHKodp056244@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 20 Feb 2020 17:20:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358177 - head/sys/compat/linuxkpi/common/include/linux X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/compat/linuxkpi/common/include/linux X-SVN-Commit-Revision: 358177 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 17:20:51 -0000 Author: manu Date: Thu Feb 20 17:20:50 2020 New Revision: 358177 URL: https://svnweb.freebsd.org/changeset/base/358177 Log: linuxkpi: Add str_has_prefix This function test if the string str begins with the string pointed at by prefix. Reviewed by: hselasky MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23767 Modified: head/sys/compat/linuxkpi/common/include/linux/string.h Modified: head/sys/compat/linuxkpi/common/include/linux/string.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/string.h Thu Feb 20 17:19:16 2020 (r358176) +++ head/sys/compat/linuxkpi/common/include/linux/string.h Thu Feb 20 17:20:50 2020 (r358177) @@ -154,4 +154,13 @@ memchr_inv(const void *start, int c, size_t length) return (NULL); } +static inline size_t +str_has_prefix(const char *str, const char *prefix) +{ + size_t len; + + len = strlen(prefix); + return (strncmp(str, prefix, len) == 0 ? len : 0); +} + #endif /* _LINUX_STRING_H_ */ From owner-svn-src-all@freebsd.org Thu Feb 20 17:26:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 56FBA23FE40; Thu, 20 Feb 2020 17:26:09 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NhMP1GYVz4Rbq; Thu, 20 Feb 2020 17:26:09 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1A902253F3; Thu, 20 Feb 2020 17:26:09 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01KHQ8F5061095; Thu, 20 Feb 2020 17:26:08 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KHQ8Kg061094; Thu, 20 Feb 2020 17:26:08 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202002201726.01KHQ8Kg061094@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Thu, 20 Feb 2020 17:26:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358178 - head/sys/dev/virtio/mmio X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/sys/dev/virtio/mmio X-SVN-Commit-Revision: 358178 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 17:26:09 -0000 Author: kp Date: Thu Feb 20 17:26:08 2020 New Revision: 358178 URL: https://svnweb.freebsd.org/changeset/base/358178 Log: virtio: Pass the interrupt type in mmio mode When we register an interrupt handler we need to pass the intr_type along in bus_setup_intr(). The interrupt type matters because it is used to decide if we need to enter NET_EPOCH. That meant that vtmmio-based if_vtnet did not, which led to panics with INVARIANTS set. Sponsored by: Axiado Modified: head/sys/dev/virtio/mmio/virtio_mmio.c Modified: head/sys/dev/virtio/mmio/virtio_mmio.c ============================================================================== --- head/sys/dev/virtio/mmio/virtio_mmio.c Thu Feb 20 17:20:50 2020 (r358177) +++ head/sys/dev/virtio/mmio/virtio_mmio.c Thu Feb 20 17:26:08 2020 (r358178) @@ -196,7 +196,7 @@ vtmmio_setup_intr(device_t dev, enum intr_type type) return (ENXIO); } - if (bus_setup_intr(dev, sc->res[1], INTR_TYPE_MISC | INTR_MPSAFE, + if (bus_setup_intr(dev, sc->res[1], type | INTR_MPSAFE, NULL, vtmmio_vq_intr, sc, &sc->ih)) { device_printf(dev, "Can't setup the interrupt\n"); return (ENXIO); From owner-svn-src-all@freebsd.org Thu Feb 20 18:36:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C065F241326; Thu, 20 Feb 2020 18:36:17 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NjwK1Kq7z4Zcv; Thu, 20 Feb 2020 18:36:16 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-il1-f169.google.com with SMTP id f70so24538113ill.6; Thu, 20 Feb 2020 10:36:16 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hzBzFkRvPS4a9NRFdWBQHjihdeo+BoKExDiPFwkF7G8=; b=WZLoH+PbqSIKmyv70gK7jj8FxK/XdGT43/lMrOFGQlk5j+1/vOr5rM59R0mzbMLM1/ jIHe8oyPCKcuqHwp/eKwJOPPrU9HlQtf4WRRhh49HJcSgdtAnmp7LHgYadKYM+PcyAzk aLBdANgq0669RtgnCtNTvziVV+fMyKrDkxEhZ5Pe8TLWFf8PqYVNQTUbMHk4Cf/aVIXI ehWRZ+ax9f31SNsQf9bU5L4ICDIV9D6TMb4rpkOGIGcCPRTGaVKlVMDrJ/P5Nly2JOXw JZjtviw0aSVlXeiYA0yy5gnfhKfpb3w6qpConb6YoCGiZRleag2ZG9cDB6QZHqrNR62c X2IA== X-Gm-Message-State: APjAAAVsUKTm6qEbZvoXU2qIgEpCu21XxVTFWtjWqKwa+UrKIfaqiWlR D4do6kS7wi3Y93WZxalTMljYuBxSaqv2UnOHN3CX0ZMCFq4= X-Google-Smtp-Source: APXvYqyP3FzumgDoG6qMgRD9YimlDVUft+b2kRgASxD4bzXSHCyZ8CDzrj2k12tZKEbO8l4LnD2fj3iatxAvIdyodxA= X-Received: by 2002:a92:db4f:: with SMTP id w15mr28889655ilq.182.1582223775576; Thu, 20 Feb 2020 10:36:15 -0800 (PST) MIME-Version: 1.0 References: <202002201552.01KFqaQo007178@repo.freebsd.org> In-Reply-To: <202002201552.01KFqaQo007178@repo.freebsd.org> From: Ed Maste Date: Thu, 20 Feb 2020 13:36:02 -0500 Message-ID: Subject: Re: svn commit: r358170 - head/usr.sbin/services_mkdb To: "Pedro F. Giffuni" Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48NjwK1Kq7z4Zcv X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 18:36:17 -0000 On Thu, 20 Feb 2020 at 10:52, Pedro F. Giffuni wrote: > > Author: pfg > Date: Thu Feb 20 15:52:36 2020 > New Revision: 358170 > URL: https://svnweb.freebsd.org/changeset/base/358170 > > Log: > Revert r358153: it is causing unexpected issues with the build system. Thanks Pedro. As an aside free pre-commit testing is available via GitHub and Cirrus-CI (if you have a GitHub fork of FreeBSD). Cirrus-CI just needs to be enabled (from the "Marketplace") for your GitHub account. https://github.com/marketplace/cirrus-ci Choose Public Repositories $0 Either grant Cirrus-CI access to all of your repositories, or just FreeBSD, as you see fit. Every time you push to your GitHub fork Cirrus-CI will build and do a boot smoke-test (in QEMU) of your changes. Here's a failing run of one of my test branches, rebased after r358153: https://cirrus-ci.com/build/4641705500606464 And then a passing run, rebased after the revert: https://cirrus-ci.com/build/6173402775945216 From owner-svn-src-all@freebsd.org Thu Feb 20 21:07:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4EA0A245B90; Thu, 20 Feb 2020 21:07:25 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NnGj176Rz3N4f; Thu, 20 Feb 2020 21:07:25 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1E65127CB4; Thu, 20 Feb 2020 21:07:25 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01KL7OIt094791; Thu, 20 Feb 2020 21:07:24 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KL7Olw094786; Thu, 20 Feb 2020 21:07:24 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <202002202107.01KL7Olw094786@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Thu, 20 Feb 2020 21:07:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358180 - head/usr.sbin/bhyve X-SVN-Group: head X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: head/usr.sbin/bhyve X-SVN-Commit-Revision: 358180 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 21:07:25 -0000 Author: vmaffione Date: Thu Feb 20 21:07:23 2020 New Revision: 358180 URL: https://svnweb.freebsd.org/changeset/base/358180 Log: bhyve: enable virtio-net mergeable rx buffers for tap(4) This patch adds a new netbe_peek_recvlen() function to the net backend API. The new function allows the virtio-net receive code to know in advance how many virtio descriptors chains will be needed to receive the next packet. As a result, the implementation of the virtio-net mergeable rx buffers feature becomes efficient, so that we can enable it also with the tap(4) backend. For the tap(4) backend, a bounce buffer is introduced to implement the peeck_recvlen() callback, which implies an additional packet copy on the receive datapath. In the future, it should be possible to remove the bounce buffer (and so the additional copy), by obtaining the length of the next packet from kevent data. Reviewed by: grehan, aleksandr.fedorov@itglobal.com MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23472 Modified: head/usr.sbin/bhyve/iov.c head/usr.sbin/bhyve/iov.h head/usr.sbin/bhyve/net_backends.c head/usr.sbin/bhyve/net_backends.h head/usr.sbin/bhyve/pci_virtio_net.c Modified: head/usr.sbin/bhyve/iov.c ============================================================================== --- head/usr.sbin/bhyve/iov.c Thu Feb 20 19:07:29 2020 (r358179) +++ head/usr.sbin/bhyve/iov.c Thu Feb 20 21:07:23 2020 (r358180) @@ -119,24 +119,25 @@ iov_to_buf(const struct iovec *iov, int niov, void **b } ssize_t -buf_to_iov(const void *buf, size_t buflen, struct iovec *iov, int niov, +buf_to_iov(const void *buf, size_t buflen, const struct iovec *iov, int niov, size_t seek) { struct iovec *diov; - int ndiov, i; size_t off = 0, len; + int i; if (seek > 0) { + int ndiov; + diov = malloc(sizeof(struct iovec) * niov); seek_iov(iov, niov, diov, &ndiov, seek); - } else { - diov = iov; - ndiov = niov; + iov = diov; + niov = ndiov; } - for (i = 0; i < ndiov && off < buflen; i++) { - len = MIN(diov[i].iov_len, buflen - off); - memcpy(diov[i].iov_base, buf + off, len); + for (i = 0; i < niov && off < buflen; i++) { + len = MIN(iov[i].iov_len, buflen - off); + memcpy(iov[i].iov_base, buf + off, len); off += len; } Modified: head/usr.sbin/bhyve/iov.h ============================================================================== --- head/usr.sbin/bhyve/iov.h Thu Feb 20 19:07:29 2020 (r358179) +++ head/usr.sbin/bhyve/iov.h Thu Feb 20 21:07:23 2020 (r358180) @@ -38,7 +38,7 @@ void seek_iov(const struct iovec *iov1, int niov1, str void truncate_iov(struct iovec *iov, int *niov, size_t length); size_t count_iov(const struct iovec *iov, int niov); ssize_t iov_to_buf(const struct iovec *iov, int niov, void **buf); -ssize_t buf_to_iov(const void *buf, size_t buflen, struct iovec *iov, int niov, - size_t seek); +ssize_t buf_to_iov(const void *buf, size_t buflen, const struct iovec *iov, + int niov, size_t seek); #endif /* _IOV_H_ */ Modified: head/usr.sbin/bhyve/net_backends.c ============================================================================== --- head/usr.sbin/bhyve/net_backends.c Thu Feb 20 19:07:29 2020 (r358179) +++ head/usr.sbin/bhyve/net_backends.c Thu Feb 20 21:07:23 2020 (r358180) @@ -103,6 +103,13 @@ struct net_backend { int iovcnt); /* + * Get the length of the next packet that can be received from + * the backend. If no packets are currently available, this + * function returns 0. + */ + ssize_t (*peek_recvlen)(struct net_backend *be); + + /* * Called to receive a packet from the backend. When the function * returns a positive value 'len', the scatter-gather vector * provided by the caller contains a packet with such length. @@ -167,6 +174,13 @@ SET_DECLARE(net_backend_set, struct net_backend); struct tap_priv { struct mevent *mevp; + /* + * A bounce buffer that allows us to implement the peek_recvlen + * callback. In the future we may get the same information from + * the kevent data. + */ + char bbuf[1 << 16]; + ssize_t bbuflen; }; static void @@ -223,6 +237,9 @@ tap_init(struct net_backend *be, const char *devname, errx(EX_OSERR, "Unable to apply rights for sandbox"); #endif + memset(priv->bbuf, 0, sizeof(priv->bbuf)); + priv->bbuflen = 0; + priv->mevp = mevent_add_disabled(be->fd, EVF_READ, cb, param); if (priv->mevp == NULL) { WPRINTF(("Could not register event")); @@ -246,15 +263,56 @@ tap_send(struct net_backend *be, const struct iovec *i } static ssize_t +tap_peek_recvlen(struct net_backend *be) +{ + struct tap_priv *priv = (struct tap_priv *)be->opaque; + ssize_t ret; + + if (priv->bbuflen > 0) { + /* + * We already have a packet in the bounce buffer. + * Just return its length. + */ + return priv->bbuflen; + } + + /* + * Read the next packet (if any) into the bounce buffer, so + * that we get to know its length and we can return that + * to the caller. + */ + ret = read(be->fd, priv->bbuf, sizeof(priv->bbuf)); + if (ret < 0 && errno == EWOULDBLOCK) { + return (0); + } + + if (ret > 0) + priv->bbuflen = ret; + + return (ret); +} + +static ssize_t tap_recv(struct net_backend *be, const struct iovec *iov, int iovcnt) { + struct tap_priv *priv = (struct tap_priv *)be->opaque; ssize_t ret; - /* Should never be called without a valid tap fd */ - assert(be->fd != -1); + if (priv->bbuflen > 0) { + /* + * A packet is available in the bounce buffer, so + * we read it from there. + */ + ret = buf_to_iov(priv->bbuf, priv->bbuflen, + iov, iovcnt, 0); - ret = readv(be->fd, iov, iovcnt); + /* Mark the bounce buffer as empty. */ + priv->bbuflen = 0; + return (ret); + } + + ret = readv(be->fd, iov, iovcnt); if (ret < 0 && errno == EWOULDBLOCK) { return (0); } @@ -299,6 +357,7 @@ static struct net_backend tap_backend = { .init = tap_init, .cleanup = tap_cleanup, .send = tap_send, + .peek_recvlen = tap_peek_recvlen, .recv = tap_recv, .recv_enable = tap_recv_enable, .recv_disable = tap_recv_disable, @@ -313,6 +372,7 @@ static struct net_backend vmnet_backend = { .init = tap_init, .cleanup = tap_cleanup, .send = tap_send, + .peek_recvlen = tap_peek_recvlen, .recv = tap_recv, .recv_enable = tap_recv_enable, .recv_disable = tap_recv_disable, @@ -331,8 +391,7 @@ DATA_SET(net_backend_set, vmnet_backend); #define NETMAP_FEATURES (VIRTIO_NET_F_CSUM | VIRTIO_NET_F_HOST_TSO4 | \ VIRTIO_NET_F_HOST_TSO6 | VIRTIO_NET_F_HOST_UFO | \ VIRTIO_NET_F_GUEST_CSUM | VIRTIO_NET_F_GUEST_TSO4 | \ - VIRTIO_NET_F_GUEST_TSO6 | VIRTIO_NET_F_GUEST_UFO | \ - VIRTIO_NET_F_MRG_RXBUF) + VIRTIO_NET_F_GUEST_TSO6 | VIRTIO_NET_F_GUEST_UFO) struct netmap_priv { char ifname[IFNAMSIZ]; @@ -540,6 +599,26 @@ txsync: } static ssize_t +netmap_peek_recvlen(struct net_backend *be) +{ + struct netmap_priv *priv = (struct netmap_priv *)be->opaque; + struct netmap_ring *ring = priv->rx; + uint32_t head = ring->head; + ssize_t totlen = 0; + + while (head != ring->tail) { + struct netmap_slot *slot = ring->slot + head; + + totlen += slot->len; + if ((slot->flags & NS_MOREFRAG) == 0) + break; + head = nm_ring_next(ring, head); + } + + return (totlen); +} + +static ssize_t netmap_recv(struct net_backend *be, const struct iovec *iov, int iovcnt) { struct netmap_priv *priv = (struct netmap_priv *)be->opaque; @@ -628,6 +707,7 @@ static struct net_backend netmap_backend = { .init = netmap_init, .cleanup = netmap_cleanup, .send = netmap_send, + .peek_recvlen = netmap_peek_recvlen, .recv = netmap_recv, .recv_enable = netmap_recv_enable, .recv_disable = netmap_recv_disable, @@ -642,6 +722,7 @@ static struct net_backend vale_backend = { .init = netmap_init, .cleanup = netmap_cleanup, .send = netmap_send, + .peek_recvlen = netmap_peek_recvlen, .recv = netmap_recv, .recv_enable = netmap_recv_enable, .recv_disable = netmap_recv_disable, @@ -756,6 +837,13 @@ netbe_send(struct net_backend *be, const struct iovec { return (be->send(be, iov, iovcnt)); +} + +ssize_t +netbe_peek_recvlen(struct net_backend *be) +{ + + return (be->peek_recvlen(be)); } /* Modified: head/usr.sbin/bhyve/net_backends.h ============================================================================== --- head/usr.sbin/bhyve/net_backends.h Thu Feb 20 19:07:29 2020 (r358179) +++ head/usr.sbin/bhyve/net_backends.h Thu Feb 20 21:07:23 2020 (r358180) @@ -45,6 +45,7 @@ int netbe_set_cap(net_backend_t *be, uint64_t cap, unsigned vnet_hdr_len); size_t netbe_get_vnet_hdr_len(net_backend_t *be); ssize_t netbe_send(net_backend_t *be, const struct iovec *iov, int iovcnt); +ssize_t netbe_peek_recvlen(net_backend_t *be); ssize_t netbe_recv(net_backend_t *be, const struct iovec *iov, int iovcnt); ssize_t netbe_rx_discard(net_backend_t *be); void netbe_rx_disable(net_backend_t *be); Modified: head/usr.sbin/bhyve/pci_virtio_net.c ============================================================================== --- head/usr.sbin/bhyve/pci_virtio_net.c Thu Feb 20 19:07:29 2020 (r358179) +++ head/usr.sbin/bhyve/pci_virtio_net.c Thu Feb 20 21:07:23 2020 (r358180) @@ -228,22 +228,34 @@ pci_vtnet_rx(struct pci_vtnet_softc *sc) struct virtio_mrg_rxbuf_info info[VTNET_MAXSEGS]; struct iovec iov[VTNET_MAXSEGS + 1]; struct vqueue_info *vq; - uint32_t riov_bytes; - struct iovec *riov; - int riov_len; - uint32_t ulen; - int n_chains; - int len; vq = &sc->vsc_queues[VTNET_RXQ]; for (;;) { struct virtio_net_rxhdr *hdr; + uint32_t riov_bytes; + struct iovec *riov; + uint32_t ulen; + int riov_len; + int n_chains; + ssize_t rlen; + ssize_t plen; + plen = netbe_peek_recvlen(sc->vsc_be); + if (plen <= 0) { + /* + * No more packets (plen == 0), or backend errored + * (plen < 0). Interrupt if needed and stop. + */ + vq_endchains(vq, /*used_all_avail=*/0); + return; + } + plen += prepend_hdr_len; + /* * Get a descriptor chain to store the next ingress * packet. In case of mergeable rx buffers, get as * many chains as necessary in order to make room - * for a maximum sized LRO packet. + * for plen bytes. */ riov_bytes = 0; riov_len = 0; @@ -287,8 +299,7 @@ pci_vtnet_rx(struct pci_vtnet_softc *sc) riov_bytes += info[n_chains].len; riov += n; n_chains++; - } while (riov_bytes < VTNET_MAX_PKT_LEN && - riov_len < VTNET_MAXSEGS); + } while (riov_bytes < plen && riov_len < VTNET_MAXSEGS); riov = iov; hdr = riov[0].iov_base; @@ -312,21 +323,20 @@ pci_vtnet_rx(struct pci_vtnet_softc *sc) memset(hdr, 0, prepend_hdr_len); } - len = netbe_recv(sc->vsc_be, riov, riov_len); - - if (len <= 0) { + rlen = netbe_recv(sc->vsc_be, riov, riov_len); + if (rlen != plen - prepend_hdr_len) { /* - * No more packets (len == 0), or backend errored - * (err < 0). Return unused available buffers - * and stop. + * If this happens it means there is something + * wrong with the backend (e.g., some other + * process is stealing our packets). */ + WPRINTF(("netbe_recv: expected %zd bytes, " + "got %zd", plen - prepend_hdr_len, rlen)); vq_retchains(vq, n_chains); - /* Interrupt if needed/appropriate and stop. */ - vq_endchains(vq, /*used_all_avail=*/0); - return; + continue; } - ulen = (uint32_t)(len + prepend_hdr_len); + ulen = (uint32_t)plen; /* * Publish the used buffers to the guest, reporting the @@ -346,12 +356,11 @@ pci_vtnet_rx(struct pci_vtnet_softc *sc) vq_relchain_prepare(vq, info[i].idx, iolen); ulen -= iolen; i++; - assert(i <= n_chains); } while (ulen > 0); hdr->vrh_bufs = i; vq_relchain_publish(vq); - vq_retchains(vq, n_chains - i); + assert(i == n_chains); } } @@ -592,7 +601,8 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst * free(sc); return (err); } - sc->vsc_consts.vc_hv_caps |= netbe_get_cap(sc->vsc_be); + sc->vsc_consts.vc_hv_caps |= VIRTIO_NET_F_MRG_RXBUF | + netbe_get_cap(sc->vsc_be); } if (!mac_provided) { From owner-svn-src-all@freebsd.org Thu Feb 20 21:12:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 61C81245EFD; Thu, 20 Feb 2020 21:12:12 +0000 (UTC) (envelope-from csjp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NnNC0Hvbz4231; Thu, 20 Feb 2020 21:12:11 +0000 (UTC) (envelope-from csjp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E738327E7E; Thu, 20 Feb 2020 21:12:10 +0000 (UTC) (envelope-from csjp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01KLCAD8000853; Thu, 20 Feb 2020 21:12:10 GMT (envelope-from csjp@FreeBSD.org) Received: (from csjp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KLCAKx000852; Thu, 20 Feb 2020 21:12:10 GMT (envelope-from csjp@FreeBSD.org) Message-Id: <202002202112.01KLCAKx000852@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: csjp set sender to csjp@FreeBSD.org using -f From: "Christian S.J. Peron" Date: Thu, 20 Feb 2020 21:12:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358181 - head/usr.sbin/pstat X-SVN-Group: head X-SVN-Commit-Author: csjp X-SVN-Commit-Paths: head/usr.sbin/pstat X-SVN-Commit-Revision: 358181 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 21:12:12 -0000 Author: csjp Date: Thu Feb 20 21:12:10 2020 New Revision: 358181 URL: https://svnweb.freebsd.org/changeset/base/358181 Log: - Implement -h (human readable) for the size of the underlying block disk. Currently, the size of the swap device is unconditionally reported using blocks, even if -h has been used. - While here, switch to CONVERT_BLOCKS() instead of CONVERT() which will avoid overflowing size counters (in human readable form see: r196244) - Update the column headers to reflect that a size is being reported instead of the block size units being used Before: $ swapinfo Device 1K-blocks Used Avail Capacity /dev/gpt/swapfs 1048576 0 1048576 0% $ After: $ swapinfo -h Device Size Used Avail Capacity /dev/gpt/swapfs 1.0G 0B 1.0G 0% $ Differential Revision: https://reviews.freebsd.org/D23758 Reviewed by: kevans MFC after: 3 weeks Modified: head/usr.sbin/pstat/pstat.c Modified: head/usr.sbin/pstat/pstat.c ============================================================================== --- head/usr.sbin/pstat/pstat.c Thu Feb 20 21:07:23 2020 (r358180) +++ head/usr.sbin/pstat/pstat.c Thu Feb 20 21:12:10 2020 (r358181) @@ -95,6 +95,8 @@ static struct { #define NNAMES (sizeof(namelist) / sizeof(*namelist)) static struct nlist nl[NNAMES]; +#define SIZEHDR "Size" + static int humanflag; static int usenumflag; static int totalflag; @@ -471,7 +473,12 @@ print_swap_header(void) long blocksize; const char *header; - header = getbsize(&hlen, &blocksize); + if (humanflag) { + header = SIZEHDR; + hlen = sizeof(SIZEHDR); + } else { + header = getbsize(&hlen, &blocksize); + } if (totalflag == 0) (void)printf("%-15s %*s %8s %8s %8s\n", "Device", hlen, header, @@ -484,23 +491,30 @@ print_swap_line(const char *swdevname, intmax_t nblks, { char usedbuf[5]; char availbuf[5]; + char sizebuf[5]; int hlen, pagesize; long blocksize; pagesize = getpagesize(); getbsize(&hlen, &blocksize); - printf("%-15s %*jd ", swdevname, hlen, CONVERT(nblks)); + printf("%-15s ", swdevname); if (humanflag) { + humanize_number(sizebuf, sizeof(sizebuf), + CONVERT_BLOCKS(nblks), "", + HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL); humanize_number(usedbuf, sizeof(usedbuf), CONVERT_BLOCKS(bused), "", HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL); humanize_number(availbuf, sizeof(availbuf), CONVERT_BLOCKS(bavail), "", HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL); - printf("%8s %8s %5.0f%%\n", usedbuf, availbuf, bpercent); + printf("%8s %8s %8s %5.0f%%\n", sizebuf, + usedbuf, availbuf, bpercent); } else { - printf("%8jd %8jd %5.0f%%\n", (intmax_t)CONVERT(bused), + printf("%*jd %8jd %8jd %5.0f%%\n", hlen, + (intmax_t)CONVERT(nblks), + (intmax_t)CONVERT(bused), (intmax_t)CONVERT(bavail), bpercent); } } From owner-svn-src-all@freebsd.org Thu Feb 20 21:15:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D9AE7246065; Thu, 20 Feb 2020 21:15:28 +0000 (UTC) (envelope-from csjp@ion.sqrt.ca) Received: from ion.sqrt.ca (ion.sqrt.ca [192.73.242.220]) by mx1.freebsd.org (Postfix) with ESMTP id 48NnS04Rdjz46WX; Thu, 20 Feb 2020 21:15:28 +0000 (UTC) (envelope-from csjp@ion.sqrt.ca) Received: by ion.sqrt.ca (Postfix, from userid 1000) id 6F90A819EE; Thu, 20 Feb 2020 13:15:22 -0800 (PST) Date: Thu, 20 Feb 2020 13:15:22 -0800 From: csjp@ion.sqrt.ca To: "Christian S.J. Peron" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r358181 - head/usr.sbin/pstat Message-ID: <20200220211522.GA31441@ion.sqrt.ca> References: <202002202112.01KLCAKx000852@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202002202112.01KLCAKx000852@repo.freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Rspamd-Queue-Id: 48NnS04Rdjz46WX X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 21:15:29 -0000 To be clear, the before and after should have read: Before: $ swapinfo -h Device 1K-blocks Used Avail Capacity /dev/gpt/swapfs 1048576 0B 1.0G 0% $ After: $ swapinfo -h Device Size Used Avail Capacity /dev/gpt/swapfs 1.0G 0B 1.0G 0% $ On Thu, Feb 20, 2020 at 09:12:10PM +0000, Christian S.J. Peron wrote: > Author: csjp > Date: Thu Feb 20 21:12:10 2020 > New Revision: 358181 > URL: https://svnweb.freebsd.org/changeset/base/358181 > > Log: > - Implement -h (human readable) for the size of the underlying block disk. > Currently, the size of the swap device is unconditionally reported using > blocks, even if -h has been used. > - While here, switch to CONVERT_BLOCKS() instead of CONVERT() which will > avoid overflowing size counters (in human readable form see: r196244) > - Update the column headers to reflect that a size is being reported instead > of the block size units being used > > Before: > > $ swapinfo > Device 1K-blocks Used Avail Capacity > /dev/gpt/swapfs 1048576 0 1048576 0% > $ > > After: > > $ swapinfo -h > Device Size Used Avail Capacity > /dev/gpt/swapfs 1.0G 0B 1.0G 0% > $ > > Differential Revision: https://reviews.freebsd.org/D23758 > Reviewed by: kevans > MFC after: 3 weeks > > Modified: > head/usr.sbin/pstat/pstat.c > > Modified: head/usr.sbin/pstat/pstat.c > ============================================================================== > --- head/usr.sbin/pstat/pstat.c Thu Feb 20 21:07:23 2020 (r358180) > +++ head/usr.sbin/pstat/pstat.c Thu Feb 20 21:12:10 2020 (r358181) > @@ -95,6 +95,8 @@ static struct { > #define NNAMES (sizeof(namelist) / sizeof(*namelist)) > static struct nlist nl[NNAMES]; > > +#define SIZEHDR "Size" > + > static int humanflag; > static int usenumflag; > static int totalflag; > @@ -471,7 +473,12 @@ print_swap_header(void) > long blocksize; > const char *header; > > - header = getbsize(&hlen, &blocksize); > + if (humanflag) { > + header = SIZEHDR; > + hlen = sizeof(SIZEHDR); > + } else { > + header = getbsize(&hlen, &blocksize); > + } > if (totalflag == 0) > (void)printf("%-15s %*s %8s %8s %8s\n", > "Device", hlen, header, > @@ -484,23 +491,30 @@ print_swap_line(const char *swdevname, intmax_t nblks, > { > char usedbuf[5]; > char availbuf[5]; > + char sizebuf[5]; > int hlen, pagesize; > long blocksize; > > pagesize = getpagesize(); > getbsize(&hlen, &blocksize); > > - printf("%-15s %*jd ", swdevname, hlen, CONVERT(nblks)); > + printf("%-15s ", swdevname); > if (humanflag) { > + humanize_number(sizebuf, sizeof(sizebuf), > + CONVERT_BLOCKS(nblks), "", > + HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL); > humanize_number(usedbuf, sizeof(usedbuf), > CONVERT_BLOCKS(bused), "", > HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL); > humanize_number(availbuf, sizeof(availbuf), > CONVERT_BLOCKS(bavail), "", > HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL); > - printf("%8s %8s %5.0f%%\n", usedbuf, availbuf, bpercent); > + printf("%8s %8s %8s %5.0f%%\n", sizebuf, > + usedbuf, availbuf, bpercent); > } else { > - printf("%8jd %8jd %5.0f%%\n", (intmax_t)CONVERT(bused), > + printf("%*jd %8jd %8jd %5.0f%%\n", hlen, > + (intmax_t)CONVERT(nblks), > + (intmax_t)CONVERT(bused), > (intmax_t)CONVERT(bavail), bpercent); > } > } From owner-svn-src-all@freebsd.org Thu Feb 20 21:25:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C6758246949; Thu, 20 Feb 2020 21:25:12 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NngD4vzzz4NWn; Thu, 20 Feb 2020 21:25:12 +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 A2D91176; Thu, 20 Feb 2020 21:25:12 +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 01KLPCZl009062; Thu, 20 Feb 2020 21:25:12 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KLPCZk009061; Thu, 20 Feb 2020 21:25:12 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002202125.01KLPCZk009061@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 20 Feb 2020 21:25:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358182 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 358182 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 21:25:12 -0000 Author: kib Date: Thu Feb 20 21:25:12 2020 New Revision: 358182 URL: https://svnweb.freebsd.org/changeset/base/358182 Log: Fix a bug in r358168, do not call sigfastblock_setpend() under a mutex. PR: 244250 Reported and tested by: lwhsu Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/subr_trap.c Modified: head/sys/kern/subr_trap.c ============================================================================== --- head/sys/kern/subr_trap.c Thu Feb 20 21:12:10 2020 (r358181) +++ head/sys/kern/subr_trap.c Thu Feb 20 21:25:12 2020 (r358182) @@ -326,21 +326,23 @@ ast(struct trapframe *framep) if (flags & TDF_NEEDSIGCHK || p->p_pendingcnt > 0 || !SIGISEMPTY(p->p_siglist)) { sigfastblock_fetch(td); - PROC_LOCK(p); - mtx_lock(&p->p_sigacts->ps_mtx); if ((td->td_pflags & TDP_SIGFASTBLOCK) != 0 && td->td_sigblock_val != 0) { sigfastblock_setpend(td); + PROC_LOCK(p); reschedule_signals(p, fastblock_mask, - SIGPROCMASK_PS_LOCKED | SIGPROCMASK_FASTBLK); + SIGPROCMASK_FASTBLK); + PROC_UNLOCK(p); } else { + PROC_LOCK(p); + mtx_lock(&p->p_sigacts->ps_mtx); while ((sig = cursig(td)) != 0) { KASSERT(sig >= 0, ("sig %d", sig)); postsig(sig); } + mtx_unlock(&p->p_sigacts->ps_mtx); + PROC_UNLOCK(p); } - mtx_unlock(&p->p_sigacts->ps_mtx); - PROC_UNLOCK(p); } /* From owner-svn-src-all@freebsd.org Thu Feb 20 21:30:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 72551246B92; Thu, 20 Feb 2020 21:30:00 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nnmm1mw9z4Xh4; Thu, 20 Feb 2020 21:30:00 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1D1481A2; Thu, 20 Feb 2020 21:30:00 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01KLTx0w009350; Thu, 20 Feb 2020 21:29:59 GMT (envelope-from bcran@FreeBSD.org) Received: (from bcran@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KLTxKF009349; Thu, 20 Feb 2020 21:29:59 GMT (envelope-from bcran@FreeBSD.org) Message-Id: <202002202129.01KLTxKF009349@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcran set sender to bcran@FreeBSD.org using -f From: Rebecca Cran Date: Thu, 20 Feb 2020 21:29:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358183 - head/usr.bin/dtc X-SVN-Group: head X-SVN-Commit-Author: bcran X-SVN-Commit-Paths: head/usr.bin/dtc X-SVN-Commit-Revision: 358183 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 21:30:00 -0000 Author: bcran Date: Thu Feb 20 21:29:59 2020 New Revision: 358183 URL: https://svnweb.freebsd.org/changeset/base/358183 Log: dtc: remove unknown option printf, since getopt will print it Since we don't set opterr to 0, getopt prints a message when it encounters an unknown/invalid option. We therefore don't need to print our own message in the default handler. Reviewed by: kevans, theraven Differential Revision: https://reviews.freebsd.org/D23662 Modified: head/usr.bin/dtc/dtc.cc Modified: head/usr.bin/dtc/dtc.cc ============================================================================== --- head/usr.bin/dtc/dtc.cc Thu Feb 20 21:25:12 2020 (r358182) +++ head/usr.bin/dtc/dtc.cc Thu Feb 20 21:29:59 2020 (r358183) @@ -304,7 +304,10 @@ main(int argc, char **argv) } break; default: - fprintf(stderr, "Unknown option %c\n", ch); + /* + * Since opterr is non-zero, getopt will have + * already printed an error message. + */ return EXIT_FAILURE; } } From owner-svn-src-all@freebsd.org Thu Feb 20 21:46:40 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3E8FE2474A6; Thu, 20 Feb 2020 21:46:40 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48Np7z0WTFz41CL; Thu, 20 Feb 2020 21:46:38 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id 01KLkXUi076043; Thu, 20 Feb 2020 13:46:33 -0800 (PST) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 01KLkXRM076042; Thu, 20 Feb 2020 13:46:33 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202002202146.01KLkXRM076042@gndrsh.dnsmgr.net> Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb In-Reply-To: To: Ed Maste Date: Thu, 20 Feb 2020 13:46:33 -0800 (PST) CC: Pedro Giffuni , Li-Wen Hsu , Xin LI , Yuri Pankov , src-committers , svn-src-all , svn-src-head Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 48Np7z0WTFz41CL X-Spamd-Bar: + Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of freebsd@gndrsh.dnsmgr.net has no SPF policy when checking 69.59.192.140) smtp.mailfrom=freebsd@gndrsh.dnsmgr.net X-Spamd-Result: default: False [1.81 / 15.00]; ARC_NA(0.00)[]; HAS_REPLYTO(0.00)[rgrimes@freebsd.org]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[dnsmgr.net]; AUTH_NA(1.00)[]; REPLYTO_DOM_NEQ_FROM_DOM(0.00)[]; NEURAL_SPAM_MEDIUM(0.45)[0.455,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; NEURAL_SPAM_LONG(0.42)[0.424,0]; RCPT_COUNT_SEVEN(0.00)[8]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:13868, ipnet:69.59.192.0/19, country:US]; MID_RHS_MATCH_FROM(0.00)[]; IP_SCORE(0.03)[ip: (0.13), ipnet: 69.59.192.0/19(0.07), asn: 13868(0.03), country: US(-0.05)]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 21:46:40 -0000 [ Charset UTF-8 unsupported, converting... ] > On Thu, 20 Feb 2020 at 09:54, Pedro Giffuni wrote: > > > > On 2020-02-20 09:46, Ed Maste wrote: > > > On Thu, 20 Feb 2020 at 04:56, Li-Wen Hsu wrote: > > >> Please note this is not fixed in ci.freebsd.org yet. The reason is it > > >> directly goes to src/release and perform `make packagesystem` to > > >> generate kernel.txz and base.txz. If I read release(7) correctly, > > >> this should be performed under a fresh installed environment. I am > > >> checking how to fix this. > > > Should we revert the change until a build fix can be committed too? > > > > I am OK with reverting the change, and I am rather surprised such a > > simply change could have broken the build. > > Indeed, this has uncovered a broken dependency in our build process > (i.e., that the build host's services_mkdb is being used). > > IMO we should: > > 1. Revert the change for now (pfg will you take care of it?) > 2. MFC the MAX_PROTO increase as soon as possible > 3. Try to fix the use of host's services_mkdb > 4. Recommit after either #3 is done, or FreeBSD 12.2 and 11.4 are released Agree fully with items 1 to 3, as to item 4 I think needs some work: 4. Recommit services to head after #3 is done 5. MFC Fixes #2 and #3 after a short bake in ^head (1 or 2 weeks) 6. MFC of services file to stable/12&11 after #2 and #3 are shipped in 12.2 and 11.4 respectfully. This should ensure no disruptions to anyone on stable/ happens, though I could probably be convinced that once #3 is fixed the risk here is low. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Thu Feb 20 21:48:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 83D162475AB; Thu, 20 Feb 2020 21:48:39 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NpBG6p87z43xt; Thu, 20 Feb 2020 21:48:38 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E0D3F59E; Thu, 20 Feb 2020 21:48:38 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01KLmcJY021619; Thu, 20 Feb 2020 21:48:38 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KLmag8021607; Thu, 20 Feb 2020 21:48:36 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <202002202148.01KLmag8021607@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Thu, 20 Feb 2020 21:48:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358184 - stable/12/usr.sbin/bhyve X-SVN-Group: stable-12 X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: stable/12/usr.sbin/bhyve X-SVN-Commit-Revision: 358184 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 21:48:39 -0000 Author: vmaffione Date: Thu Feb 20 21:48:36 2020 New Revision: 358184 URL: https://svnweb.freebsd.org/changeset/base/358184 Log: MFC r356523 bhyve: add wrapper for debug printf statements Add printf() wrapper to use CR/CRLF terminators depending on whether stdio is mapped to a tty open in raw mode. Try to use the wrapper everywhere. For now we leave the custom DPRINTF/WPRINTF defined by device models, but we may remove them in the future. Reviewed by: grehan, jhb Differential Revision: https://reviews.freebsd.org/D22657 Added: stable/12/usr.sbin/bhyve/debug.h - copied unchanged from r356523, head/usr.sbin/bhyve/debug.h Modified: stable/12/usr.sbin/bhyve/bhyverun.c stable/12/usr.sbin/bhyve/block_if.c stable/12/usr.sbin/bhyve/bootrom.c stable/12/usr.sbin/bhyve/consport.c stable/12/usr.sbin/bhyve/mptbl.c stable/12/usr.sbin/bhyve/net_backends.c stable/12/usr.sbin/bhyve/net_utils.c stable/12/usr.sbin/bhyve/pci_e82545.c stable/12/usr.sbin/bhyve/pci_emul.c stable/12/usr.sbin/bhyve/pci_fbuf.c stable/12/usr.sbin/bhyve/pci_lpc.c stable/12/usr.sbin/bhyve/pci_nvme.c stable/12/usr.sbin/bhyve/pci_uart.c stable/12/usr.sbin/bhyve/pci_virtio_block.c stable/12/usr.sbin/bhyve/pci_virtio_console.c stable/12/usr.sbin/bhyve/pci_virtio_net.c stable/12/usr.sbin/bhyve/pci_virtio_rnd.c stable/12/usr.sbin/bhyve/pci_virtio_scsi.c stable/12/usr.sbin/bhyve/pci_xhci.c stable/12/usr.sbin/bhyve/ps2kbd.c stable/12/usr.sbin/bhyve/ps2mouse.c stable/12/usr.sbin/bhyve/rfb.c stable/12/usr.sbin/bhyve/smbiostbl.c stable/12/usr.sbin/bhyve/task_switch.c stable/12/usr.sbin/bhyve/uart_emul.c stable/12/usr.sbin/bhyve/usb_mouse.c stable/12/usr.sbin/bhyve/virtio.c stable/12/usr.sbin/bhyve/xmsr.c Modified: stable/12/usr.sbin/bhyve/bhyverun.c ============================================================================== --- stable/12/usr.sbin/bhyve/bhyverun.c Thu Feb 20 21:29:59 2020 (r358183) +++ stable/12/usr.sbin/bhyve/bhyverun.c Thu Feb 20 21:48:36 2020 (r358184) @@ -167,6 +167,8 @@ uint16_t cores, maxcpus, sockets, threads; char *guest_uuid_str; +int raw_stdio = 0; + static int guest_vmexit_on_hlt, guest_vmexit_on_pause; static int virtio_msix = 1; static int x2apic_mode = 0; /* default is xAPIC */ Modified: stable/12/usr.sbin/bhyve/block_if.c ============================================================================== --- stable/12/usr.sbin/bhyve/block_if.c Thu Feb 20 21:29:59 2020 (r358183) +++ stable/12/usr.sbin/bhyve/block_if.c Thu Feb 20 21:48:36 2020 (r358184) @@ -59,6 +59,7 @@ __FBSDID("$FreeBSD$"); #include #include "bhyverun.h" +#include "debug.h" #include "mevent.h" #include "block_if.h" @@ -442,7 +443,7 @@ blockif_open(const char *optstr, const char *ident) else if (sscanf(cp, "sectorsize=%d", &ssopt) == 1) pssopt = ssopt; else { - fprintf(stderr, "Invalid device option \"%s\"\n", cp); + EPRINTLN("Invalid device option \"%s\"", cp); goto err; } } @@ -514,7 +515,7 @@ blockif_open(const char *optstr, const char *ident) if (ssopt != 0) { if (!powerof2(ssopt) || !powerof2(pssopt) || ssopt < 512 || ssopt > pssopt) { - fprintf(stderr, "Invalid sector size %d/%d\n", + EPRINTLN("Invalid sector size %d/%d", ssopt, pssopt); goto err; } @@ -528,8 +529,8 @@ blockif_open(const char *optstr, const char *ident) */ if (S_ISCHR(sbuf.st_mode)) { if (ssopt < sectsz || (ssopt % sectsz) != 0) { - fprintf(stderr, "Sector size %d incompatible " - "with underlying device sector size %d\n", + EPRINTLN("Sector size %d incompatible " + "with underlying device sector size %d", ssopt, sectsz); goto err; } Modified: stable/12/usr.sbin/bhyve/bootrom.c ============================================================================== --- stable/12/usr.sbin/bhyve/bootrom.c Thu Feb 20 21:29:59 2020 (r358183) +++ stable/12/usr.sbin/bhyve/bootrom.c Thu Feb 20 21:48:36 2020 (r358184) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include "bhyverun.h" #include "bootrom.h" +#include "debug.h" #define MAX_BOOTROM_SIZE (16 * 1024 * 1024) /* 16 MB */ @@ -60,13 +61,13 @@ bootrom_init(struct vmctx *ctx, const char *romfile) rv = -1; fd = open(romfile, O_RDONLY); if (fd < 0) { - fprintf(stderr, "Error opening bootrom \"%s\": %s\n", + EPRINTLN("Error opening bootrom \"%s\": %s", romfile, strerror(errno)); goto done; } if (fstat(fd, &sbuf) < 0) { - fprintf(stderr, "Could not fstat bootrom file \"%s\": %s\n", + EPRINTLN("Could not fstat bootrom file \"%s\": %s", romfile, strerror(errno)); goto done; } @@ -76,13 +77,13 @@ bootrom_init(struct vmctx *ctx, const char *romfile) * MMIO space (e.g. APIC, HPET, MSI). */ if (sbuf.st_size > MAX_BOOTROM_SIZE || sbuf.st_size < PAGE_SIZE) { - fprintf(stderr, "Invalid bootrom size %ld\n", sbuf.st_size); + EPRINTLN("Invalid bootrom size %ld", sbuf.st_size); goto done; } if (sbuf.st_size & PAGE_MASK) { - fprintf(stderr, "Bootrom size %ld is not a multiple of the " - "page size\n", sbuf.st_size); + EPRINTLN("Bootrom size %ld is not a multiple of the " + "page size", sbuf.st_size); goto done; } @@ -100,8 +101,8 @@ bootrom_init(struct vmctx *ctx, const char *romfile) for (i = 0; i < sbuf.st_size / PAGE_SIZE; i++) { rlen = read(fd, ptr + i * PAGE_SIZE, PAGE_SIZE); if (rlen != PAGE_SIZE) { - fprintf(stderr, "Incomplete read of page %d of bootrom " - "file %s: %ld bytes\n", i, romfile, rlen); + EPRINTLN("Incomplete read of page %d of bootrom " + "file %s: %ld bytes", i, romfile, rlen); goto done; } } Modified: stable/12/usr.sbin/bhyve/consport.c ============================================================================== --- stable/12/usr.sbin/bhyve/consport.c Thu Feb 20 21:29:59 2020 (r358183) +++ stable/12/usr.sbin/bhyve/consport.c Thu Feb 20 21:48:36 2020 (r358184) @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include "inout.h" #include "pci_lpc.h" +#include "debug.h" #define BVM_CONSOLE_PORT 0x220 #define BVM_CONS_SIG ('b' << 8 | 'v') @@ -70,6 +71,7 @@ ttyopen(void) cfmakeraw(&tio_new); tcsetattr(STDIN_FILENO, TCSANOW, &tio_new); + raw_stdio = 1; atexit(ttyclose); } Copied: stable/12/usr.sbin/bhyve/debug.h (from r356523, head/usr.sbin/bhyve/debug.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/usr.sbin/bhyve/debug.h Thu Feb 20 21:48:36 2020 (r358184, copy of r356523, head/usr.sbin/bhyve/debug.h) @@ -0,0 +1,47 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 Vincenzo Maffione + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _DEBUG_H_ +#define _DEBUG_H_ + + +extern int raw_stdio; + +#define FPRINTLN(filep, fmt, arg...) \ + do { \ + if (raw_stdio) \ + fprintf(filep, fmt "\r\n", ##arg); \ + else \ + fprintf(filep, fmt "\n", ##arg); \ + } while (0) + +#define PRINTLN(fmt, arg...) FPRINTLN(stdout, fmt, ##arg) +#define EPRINTLN(fmt, arg...) FPRINTLN(stderr, fmt, ##arg) + +#endif Modified: stable/12/usr.sbin/bhyve/mptbl.c ============================================================================== --- stable/12/usr.sbin/bhyve/mptbl.c Thu Feb 20 21:29:59 2020 (r358183) +++ stable/12/usr.sbin/bhyve/mptbl.c Thu Feb 20 21:48:36 2020 (r358184) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include "acpi.h" +#include "debug.h" #include "bhyverun.h" #include "mptbl.h" #include "pci_emul.h" @@ -312,7 +313,7 @@ mptable_build(struct vmctx *ctx, int ncpu) startaddr = paddr_guest2host(ctx, MPTABLE_BASE, MPTABLE_MAX_LENGTH); if (startaddr == NULL) { - fprintf(stderr, "mptable requires mapped mem\n"); + EPRINTLN("mptable requires mapped mem"); return (ENOMEM); } @@ -323,10 +324,10 @@ mptable_build(struct vmctx *ctx, int ncpu) */ for (bus = 1; bus <= PCI_BUSMAX; bus++) { if (pci_bus_configured(bus)) { - fprintf(stderr, "MPtable is incompatible with " - "multiple PCI hierarchies.\r\n"); - fprintf(stderr, "MPtable generation can be disabled " - "by passing the -Y option to bhyve(8).\r\n"); + EPRINTLN("MPtable is incompatible with " + "multiple PCI hierarchies."); + EPRINTLN("MPtable generation can be disabled " + "by passing the -Y option to bhyve(8)."); return (EINVAL); } } Modified: stable/12/usr.sbin/bhyve/net_backends.c ============================================================================== --- stable/12/usr.sbin/bhyve/net_backends.c Thu Feb 20 21:29:59 2020 (r358183) +++ stable/12/usr.sbin/bhyve/net_backends.c Thu Feb 20 21:48:36 2020 (r358184) @@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$"); #include +#include "debug.h" #include "iov.h" #include "mevent.h" #include "net_backends.h" @@ -156,7 +157,7 @@ SET_DECLARE(net_backend_set, struct net_backend); #define VNET_HDR_LEN sizeof(struct virtio_net_rxhdr) -#define WPRINTF(params) printf params +#define WPRINTF(params) PRINTLN params /* * The tap backend @@ -192,7 +193,7 @@ tap_init(struct net_backend *be, const char *devname, #endif if (cb == NULL) { - WPRINTF(("TAP backend requires non-NULL callback\n")); + WPRINTF(("TAP backend requires non-NULL callback")); return (-1); } @@ -201,7 +202,7 @@ tap_init(struct net_backend *be, const char *devname, be->fd = open(tbuf, O_RDWR); if (be->fd == -1) { - WPRINTF(("open of tap device %s failed\n", tbuf)); + WPRINTF(("open of tap device %s failed", tbuf)); goto error; } @@ -210,7 +211,7 @@ tap_init(struct net_backend *be, const char *devname, * notifications with the event loop */ if (ioctl(be->fd, FIONBIO, &opt) < 0) { - WPRINTF(("tap device O_NONBLOCK failed\n")); + WPRINTF(("tap device O_NONBLOCK failed")); goto error; } @@ -222,7 +223,7 @@ tap_init(struct net_backend *be, const char *devname, priv->mevp = mevent_add_disabled(be->fd, EVF_READ, cb, param); if (priv->mevp == NULL) { - WPRINTF(("Could not register event\n")); + WPRINTF(("Could not register event")); goto error; } @@ -363,7 +364,7 @@ netmap_set_vnet_hdr_len(struct net_backend *be, int vn req.nr_arg1 = vnet_hdr_len; err = ioctl(be->fd, NIOCREGIF, &req); if (err) { - WPRINTF(("Unable to set vnet header length %d\n", + WPRINTF(("Unable to set vnet header length %d", vnet_hdr_len)); return (err); } @@ -420,7 +421,7 @@ netmap_init(struct net_backend *be, const char *devnam priv->nmd = nm_open(priv->ifname, NULL, NETMAP_NO_TX_POLL, NULL); if (priv->nmd == NULL) { - WPRINTF(("Unable to nm_open(): interface '%s', errno (%s)\n", + WPRINTF(("Unable to nm_open(): interface '%s', errno (%s)", devname, strerror(errno))); free(priv); return (-1); @@ -435,7 +436,7 @@ netmap_init(struct net_backend *be, const char *devnam priv->mevp = mevent_add_disabled(be->fd, EVF_READ, cb, param); if (priv->mevp == NULL) { - WPRINTF(("Could not register event\n")); + WPRINTF(("Could not register event")); return (-1); } @@ -472,7 +473,7 @@ netmap_send(struct net_backend *be, struct iovec *iov, ring = priv->tx; head = ring->head; if (head == ring->tail) { - WPRINTF(("No space, drop %zu bytes\n", count_iov(iov, iovcnt))); + WPRINTF(("No space, drop %zu bytes", count_iov(iov, iovcnt))); goto txsync; } nm_buf = NETMAP_BUF(ring, ring->slot[head].buf_idx); @@ -513,7 +514,7 @@ netmap_send(struct net_backend *be, struct iovec *iov, * We ran out of netmap slots while * splitting the iovec fragments. */ - WPRINTF(("No space, drop %zu bytes\n", + WPRINTF(("No space, drop %zu bytes", count_iov(iov, iovcnt))); goto txsync; } @@ -585,7 +586,7 @@ netmap_recv(struct net_backend *be, struct iovec *iov, iovcnt--; if (iovcnt == 0) { /* No space to receive. */ - WPRINTF(("Short iov, drop %zd bytes\n", + WPRINTF(("Short iov, drop %zd bytes", totlen)); return (-ENOSPC); } Modified: stable/12/usr.sbin/bhyve/net_utils.c ============================================================================== --- stable/12/usr.sbin/bhyve/net_utils.c Thu Feb 20 21:29:59 2020 (r358183) +++ stable/12/usr.sbin/bhyve/net_utils.c Thu Feb 20 21:48:36 2020 (r358184) @@ -35,6 +35,10 @@ #include #include +#include "bhyverun.h" +#include "debug.h" +#include "net_utils.h" + int net_parsemac(char *mac_str, uint8_t *mac_addr) { @@ -49,7 +53,7 @@ net_parsemac(char *mac_str, uint8_t *mac_addr) if (ea == NULL || ETHER_IS_MULTICAST(ea->octet) || memcmp(ea->octet, zero_addr, ETHER_ADDR_LEN) == 0) { - fprintf(stderr, "Invalid MAC %s\n", mac_str); + EPRINTLN("Invalid MAC %s", mac_str); return (EINVAL); } else memcpy(mac_addr, ea->octet, ETHER_ADDR_LEN); Modified: stable/12/usr.sbin/bhyve/pci_e82545.c ============================================================================== --- stable/12/usr.sbin/bhyve/pci_e82545.c Thu Feb 20 21:29:59 2020 (r358183) +++ stable/12/usr.sbin/bhyve/pci_e82545.c Thu Feb 20 21:48:36 2020 (r358184) @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); #include "mii.h" #include "bhyverun.h" +#include "debug.h" #include "pci_emul.h" #include "mevent.h" #include "net_utils.h" @@ -229,8 +230,8 @@ struct ck_info { * Debug printf */ static int e82545_debug = 0; -#define DPRINTF(msg,params...) if (e82545_debug) fprintf(stderr, "e82545: " msg, params) -#define WPRINTF(msg,params...) fprintf(stderr, "e82545: " msg, params) +#define WPRINTF(msg,params...) PRINTLN("e82545: " msg, params) +#define DPRINTF(msg,params...) if (e82545_debug) WPRINTF(msg, params) #define MIN(a,b) (((a)<(b))?(a):(b)) #define MAX(a,b) (((a)>(b))?(a):(b)) @@ -399,21 +400,21 @@ e82545_init_eeprom(struct e82545_softc *sc) } checksum = NVM_SUM - checksum; sc->eeprom_data[NVM_CHECKSUM_REG] = checksum; - DPRINTF("eeprom checksum: 0x%x\r\n", checksum); + DPRINTF("eeprom checksum: 0x%x", checksum); } static void e82545_write_mdi(struct e82545_softc *sc, uint8_t reg_addr, uint8_t phy_addr, uint32_t data) { - DPRINTF("Write mdi reg:0x%x phy:0x%x data: 0x%x\r\n", reg_addr, phy_addr, data); + DPRINTF("Write mdi reg:0x%x phy:0x%x data: 0x%x", reg_addr, phy_addr, data); } static uint32_t e82545_read_mdi(struct e82545_softc *sc, uint8_t reg_addr, uint8_t phy_addr) { - //DPRINTF("Read mdi reg:0x%x phy:0x%x\r\n", reg_addr, phy_addr); + //DPRINTF("Read mdi reg:0x%x phy:0x%x", reg_addr, phy_addr); switch (reg_addr) { case PHY_STATUS: return (MII_SR_LINK_STATUS | MII_SR_AUTONEG_CAPS | @@ -430,7 +431,7 @@ e82545_read_mdi(struct e82545_softc *sc, uint8_t reg_a case PHY_ID2: return (M88E1011_I_PHY_ID | E82545_REVISION_4) & 0xFFFF; default: - DPRINTF("Unknown mdi read reg:0x%x phy:0x%x\r\n", reg_addr, phy_addr); + DPRINTF("Unknown mdi read reg:0x%x phy:0x%x", reg_addr, phy_addr); return 0; } /* not reached */ @@ -442,13 +443,13 @@ e82545_eecd_strobe(struct e82545_softc *sc) /* Microwire state machine */ /* DPRINTF("eeprom state machine srtobe " - "0x%x 0x%x 0x%x 0x%x\r\n", + "0x%x 0x%x 0x%x 0x%x", sc->nvm_mode, sc->nvm_bits, sc->nvm_opaddr, sc->nvm_data);*/ if (sc->nvm_bits == 0) { DPRINTF("eeprom state machine not expecting data! " - "0x%x 0x%x 0x%x 0x%x\r\n", + "0x%x 0x%x 0x%x 0x%x", sc->nvm_mode, sc->nvm_bits, sc->nvm_opaddr, sc->nvm_data); return; @@ -479,13 +480,13 @@ e82545_eecd_strobe(struct e82545_softc *sc) uint16_t op = sc->nvm_opaddr & E82545_NVM_OPCODE_MASK; uint16_t addr = sc->nvm_opaddr & E82545_NVM_ADDR_MASK; if (op != E82545_NVM_OPCODE_WRITE) { - DPRINTF("Illegal eeprom write op 0x%x\r\n", + DPRINTF("Illegal eeprom write op 0x%x", sc->nvm_opaddr); } else if (addr >= E82545_NVM_EEPROM_SIZE) { - DPRINTF("Illegal eeprom write addr 0x%x\r\n", + DPRINTF("Illegal eeprom write addr 0x%x", sc->nvm_opaddr); } else { - DPRINTF("eeprom write eeprom[0x%x] = 0x%x\r\n", + DPRINTF("eeprom write eeprom[0x%x] = 0x%x", addr, sc->nvm_data); sc->eeprom_data[addr] = sc->nvm_data; } @@ -503,7 +504,7 @@ e82545_eecd_strobe(struct e82545_softc *sc) uint16_t op = sc->nvm_opaddr & E82545_NVM_OPCODE_MASK; switch (op) { case E82545_NVM_OPCODE_EWEN: - DPRINTF("eeprom write enable: 0x%x\r\n", + DPRINTF("eeprom write enable: 0x%x", sc->nvm_opaddr); /* back to opcode mode */ sc->nvm_opaddr = 0; @@ -518,10 +519,10 @@ e82545_eecd_strobe(struct e82545_softc *sc) sc->nvm_bits = E82545_NVM_DATA_BITS; if (addr < E82545_NVM_EEPROM_SIZE) { sc->nvm_data = sc->eeprom_data[addr]; - DPRINTF("eeprom read: eeprom[0x%x] = 0x%x\r\n", + DPRINTF("eeprom read: eeprom[0x%x] = 0x%x", addr, sc->nvm_data); } else { - DPRINTF("eeprom illegal read: 0x%x\r\n", + DPRINTF("eeprom illegal read: 0x%x", sc->nvm_opaddr); sc->nvm_data = 0; } @@ -533,7 +534,7 @@ e82545_eecd_strobe(struct e82545_softc *sc) sc->nvm_data = 0; break; default: - DPRINTF("eeprom unknown op: 0x%x\r\r", + DPRINTF("eeprom unknown op: 0x%x", sc->nvm_opaddr); /* back to opcode mode */ sc->nvm_opaddr = 0; @@ -543,7 +544,7 @@ e82545_eecd_strobe(struct e82545_softc *sc) } } else { DPRINTF("eeprom state machine wrong state! " - "0x%x 0x%x 0x%x 0x%x\r\n", + "0x%x 0x%x 0x%x 0x%x", sc->nvm_mode, sc->nvm_bits, sc->nvm_opaddr, sc->nvm_data); } @@ -558,7 +559,7 @@ e82545_itr_callback(int fd, enum ev_type type, void *p pthread_mutex_lock(&sc->esc_mtx); new = sc->esc_ICR & sc->esc_IMS; if (new && !sc->esc_irq_asserted) { - DPRINTF("itr callback: lintr assert %x\r\n", new); + DPRINTF("itr callback: lintr assert %x", new); sc->esc_irq_asserted = 1; pci_lintr_assert(sc->esc_pi); } else { @@ -573,7 +574,7 @@ e82545_icr_assert(struct e82545_softc *sc, uint32_t bi { uint32_t new; - DPRINTF("icr assert: 0x%x\r\n", bits); + DPRINTF("icr assert: 0x%x", bits); /* * An interrupt is only generated if bits are set that @@ -584,11 +585,11 @@ e82545_icr_assert(struct e82545_softc *sc, uint32_t bi sc->esc_ICR |= bits; if (new == 0) { - DPRINTF("icr assert: masked %x, ims %x\r\n", new, sc->esc_IMS); + DPRINTF("icr assert: masked %x, ims %x", new, sc->esc_IMS); } else if (sc->esc_mevpitr != NULL) { - DPRINTF("icr assert: throttled %x, ims %x\r\n", new, sc->esc_IMS); + DPRINTF("icr assert: throttled %x, ims %x", new, sc->esc_IMS); } else if (!sc->esc_irq_asserted) { - DPRINTF("icr assert: lintr assert %x\r\n", new); + DPRINTF("icr assert: lintr assert %x", new); sc->esc_irq_asserted = 1; pci_lintr_assert(sc->esc_pi); if (sc->esc_ITR != 0) { @@ -612,11 +613,11 @@ e82545_ims_change(struct e82545_softc *sc, uint32_t bi sc->esc_IMS |= bits; if (new == 0) { - DPRINTF("ims change: masked %x, ims %x\r\n", new, sc->esc_IMS); + DPRINTF("ims change: masked %x, ims %x", new, sc->esc_IMS); } else if (sc->esc_mevpitr != NULL) { - DPRINTF("ims change: throttled %x, ims %x\r\n", new, sc->esc_IMS); + DPRINTF("ims change: throttled %x, ims %x", new, sc->esc_IMS); } else if (!sc->esc_irq_asserted) { - DPRINTF("ims change: lintr assert %x\n\r", new); + DPRINTF("ims change: lintr assert %x", new); sc->esc_irq_asserted = 1; pci_lintr_assert(sc->esc_pi); if (sc->esc_ITR != 0) { @@ -631,7 +632,7 @@ static void e82545_icr_deassert(struct e82545_softc *sc, uint32_t bits) { - DPRINTF("icr deassert: 0x%x\r\n", bits); + DPRINTF("icr deassert: 0x%x", bits); sc->esc_ICR &= ~bits; /* @@ -639,7 +640,7 @@ e82545_icr_deassert(struct e82545_softc *sc, uint32_t * was an asserted interrupt, clear it */ if (sc->esc_irq_asserted && !(sc->esc_ICR & sc->esc_IMS)) { - DPRINTF("icr deassert: lintr deassert %x\r\n", bits); + DPRINTF("icr deassert: lintr deassert %x", bits); pci_lintr_deassert(sc->esc_pi); sc->esc_irq_asserted = 0; } @@ -649,7 +650,7 @@ static void e82545_intr_write(struct e82545_softc *sc, uint32_t offset, uint32_t value) { - DPRINTF("intr_write: off %x, val %x\n\r", offset, value); + DPRINTF("intr_write: off %x, val %x", offset, value); switch (offset) { case E1000_ICR: @@ -683,7 +684,7 @@ e82545_intr_read(struct e82545_softc *sc, uint32_t off retval = 0; - DPRINTF("intr_read: off %x\n\r", offset); + DPRINTF("intr_read: off %x", offset); switch (offset) { case E1000_ICR: @@ -717,7 +718,7 @@ e82545_devctl(struct e82545_softc *sc, uint32_t val) sc->esc_CTRL = val & ~E1000_CTRL_RST; if (val & E1000_CTRL_RST) { - DPRINTF("e1k: s/w reset, ctl %x\n", val); + DPRINTF("e1k: s/w reset, ctl %x", val); e82545_reset(sc, 1); } /* XXX check for phy reset ? */ @@ -746,7 +747,7 @@ e82545_rx_ctl(struct e82545_softc *sc, uint32_t val) /* Save RCTL after stripping reserved bits 31:27,24,21,14,11:10,0 */ sc->esc_RCTL = val & ~0xF9204c01; - DPRINTF("rx_ctl - %s RCTL %x, val %x\n", + DPRINTF("rx_ctl - %s RCTL %x, val %x", on ? "on" : "off", sc->esc_RCTL, val); /* state change requested */ @@ -836,10 +837,10 @@ e82545_rx_callback(int fd, enum ev_type type, void *pa uint16_t *tp, tag, head; pthread_mutex_lock(&sc->esc_mtx); - DPRINTF("rx_run: head %x, tail %x\r\n", sc->esc_RDH, sc->esc_RDT); + DPRINTF("rx_run: head %x, tail %x", sc->esc_RDH, sc->esc_RDT); if (!sc->esc_rx_enabled || sc->esc_rx_loopback) { - DPRINTF("rx disabled (!%d || %d) -- packet(s) dropped\r\n", + DPRINTF("rx disabled (!%d || %d) -- packet(s) dropped", sc->esc_rx_enabled, sc->esc_rx_loopback); while (netbe_rx_discard(sc->esc_be) > 0) { } @@ -852,7 +853,7 @@ e82545_rx_callback(int fd, enum ev_type type, void *pa head = sc->esc_RDH; left = (size + sc->esc_RDT - head) % size; if (left < maxpktdesc) { - DPRINTF("rx overflow (%d < %d) -- packet(s) dropped\r\n", + DPRINTF("rx overflow (%d < %d) -- packet(s) dropped", left, maxpktdesc); while (netbe_rx_discard(sc->esc_be) > 0) { } @@ -873,7 +874,7 @@ e82545_rx_callback(int fd, enum ev_type type, void *pa } len = netbe_recv(sc->esc_be, vec, maxpktdesc); if (len <= 0) { - DPRINTF("netbe_recv() returned %d\n", len); + DPRINTF("netbe_recv() returned %d", len); goto done; } @@ -888,7 +889,7 @@ e82545_rx_callback(int fd, enum ev_type type, void *pa len += ETHER_CRC_LEN; n = (len + bufsz - 1) / bufsz; - DPRINTF("packet read %d bytes, %d segs, head %d\r\n", + DPRINTF("packet read %d bytes, %d segs, head %d", len, n, head); /* Apply VLAN filter. */ @@ -898,9 +899,9 @@ e82545_rx_callback(int fd, enum ev_type type, void *pa tag = ntohs(tp[1]) & 0x0fff; if ((sc->esc_fvlan[tag >> 5] & (1 << (tag & 0x1f))) != 0) { - DPRINTF("known VLAN %d\r\n", tag); + DPRINTF("known VLAN %d", tag); } else { - DPRINTF("unknown VLAN %d\r\n", tag); + DPRINTF("unknown VLAN %d", tag); n = 0; continue; } @@ -951,7 +952,7 @@ done: if (cause != 0) e82545_icr_assert(sc, cause); done1: - DPRINTF("rx_run done: head %x, tail %x\r\n", sc->esc_RDH, sc->esc_RDT); + DPRINTF("rx_run done: head %x, tail %x", sc->esc_RDH, sc->esc_RDT); pthread_mutex_unlock(&sc->esc_mtx); } @@ -1037,7 +1038,7 @@ e82545_transmit_checksum(struct iovec *iov, int iovcnt uint16_t cksum; int cklen; - DPRINTF("tx cksum: iovcnt/s/off/len %d/%d/%d/%d\r\n", + DPRINTF("tx cksum: iovcnt/s/off/len %d/%d/%d/%d", iovcnt, ck->ck_start, ck->ck_off, ck->ck_len); cklen = ck->ck_len ? ck->ck_len - ck->ck_start + 1 : INT_MAX; cksum = e82545_iov_checksum(iov, iovcnt, ck->ck_start, cklen); @@ -1108,14 +1109,14 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head switch (dtype) { case E1000_TXD_TYP_C: DPRINTF("tx ctxt desc idx %d: %016jx " - "%08x%08x\r\n", + "%08x%08x", head, dsc->td.buffer_addr, dsc->td.upper.data, dsc->td.lower.data); /* Save context and return */ sc->esc_txctx = dsc->cd; goto done; case E1000_TXD_TYP_L: - DPRINTF("tx legacy desc idx %d: %08x%08x\r\n", + DPRINTF("tx legacy desc idx %d: %08x%08x", head, dsc->td.upper.data, dsc->td.lower.data); /* * legacy cksum start valid in first descriptor @@ -1124,7 +1125,7 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head ckinfo[0].ck_start = dsc->td.upper.fields.css; break; case E1000_TXD_TYP_D: - DPRINTF("tx data desc idx %d: %08x%08x\r\n", + DPRINTF("tx data desc idx %d: %08x%08x", head, dsc->td.upper.data, dsc->td.lower.data); ntype = dtype; break; @@ -1134,7 +1135,7 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head } else { /* Descriptor type must be consistent */ assert(dtype == ntype); - DPRINTF("tx next desc idx %d: %08x%08x\r\n", + DPRINTF("tx next desc idx %d: %08x%08x", head, dsc->td.upper.data, dsc->td.lower.data); } @@ -1201,7 +1202,7 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head } if (iovcnt > I82545_MAX_TXSEGS) { - WPRINTF("tx too many descriptors (%d > %d) -- dropped\r\n", + WPRINTF("tx too many descriptors (%d > %d) -- dropped", iovcnt, I82545_MAX_TXSEGS); goto done; } @@ -1232,7 +1233,7 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head * the Intel 82576EB (Rev 2.63) datasheet. */ if (hdrlen > 240) { - WPRINTF("TSO hdrlen too large: %d\r\n", hdrlen); + WPRINTF("TSO hdrlen too large: %d", hdrlen); goto done; } @@ -1248,7 +1249,7 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head */ if (vlen != 0 && hdrlen < ETHER_ADDR_LEN*2) { WPRINTF("TSO hdrlen too small for vlan insertion " - "(%d vs %d) -- dropped\r\n", hdrlen, + "(%d vs %d) -- dropped", hdrlen, ETHER_ADDR_LEN*2); goto done; } @@ -1270,7 +1271,7 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head if (hdrlen < ckinfo[0].ck_start + 6 || hdrlen < ckinfo[0].ck_off + 2) { WPRINTF("TSO hdrlen too small for IP fields (%d) " - "-- dropped\r\n", hdrlen); + "-- dropped", hdrlen); goto done; } if (sc->esc_txctx.cmd_and_length & E1000_TXD_CMD_TCP) { @@ -1278,13 +1279,13 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head (ckinfo[1].ck_valid && hdrlen < ckinfo[1].ck_off + 2)) { WPRINTF("TSO hdrlen too small for TCP fields " - "(%d) -- dropped\r\n", hdrlen); + "(%d) -- dropped", hdrlen); goto done; } } else { if (hdrlen < ckinfo[1].ck_start + 8) { WPRINTF("TSO hdrlen too small for UDP fields " - "(%d) -- dropped\r\n", hdrlen); + "(%d) -- dropped", hdrlen); goto done; } } @@ -1349,7 +1350,7 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head tcp = (sc->esc_txctx.cmd_and_length & E1000_TXD_CMD_TCP) != 0; mss = sc->esc_txctx.tcp_seg_setup.fields.mss; paylen = (sc->esc_txctx.cmd_and_length & 0x000fffff); - DPRINTF("tx %s segmentation offload %d+%d/%d bytes %d iovs\r\n", + DPRINTF("tx %s segmentation offload %d+%d/%d bytes %d iovs", tcp ? "TCP" : "UDP", hdrlen, paylen, mss, iovcnt); ipid = ntohs(*(uint16_t *)&hdr[ckinfo[0].ck_start + 4]); tcpseq = 0; @@ -1380,7 +1381,7 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head } else pvoff += nnow; } - DPRINTF("tx segment %d %d+%d bytes %d iovs\r\n", + DPRINTF("tx segment %d %d+%d bytes %d iovs", seg, hdrlen, now, tiovcnt); /* Update IP header. */ @@ -1447,7 +1448,7 @@ e82545_tx_run(struct e82545_softc *sc) head = sc->esc_TDH; tail = sc->esc_TDT; size = sc->esc_TDLEN / 16; - DPRINTF("tx_run: head %x, rhead %x, tail %x\r\n", + DPRINTF("tx_run: head %x, rhead %x, tail %x", sc->esc_TDH, sc->esc_TDHr, sc->esc_TDT); pthread_mutex_unlock(&sc->esc_mtx); @@ -1471,7 +1472,7 @@ e82545_tx_run(struct e82545_softc *sc) if (cause) e82545_icr_assert(sc, cause); - DPRINTF("tx_run done: head %x, rhead %x, tail %x\r\n", + DPRINTF("tx_run done: head %x, rhead %x, tail %x", sc->esc_TDH, sc->esc_TDHr, sc->esc_TDT); } @@ -1598,10 +1599,10 @@ e82545_write_register(struct e82545_softc *sc, uint32_ int ridx; if (offset & 0x3) { - DPRINTF("Unaligned register write offset:0x%x value:0x%x\r\n", offset, value); + DPRINTF("Unaligned register write offset:0x%x value:0x%x", offset, value); return; } - DPRINTF("Register write: 0x%x value: 0x%x\r\n", offset, value); + DPRINTF("Register write: 0x%x value: 0x%x", offset, value); switch (offset) { case E1000_CTRL: @@ -1745,7 +1746,7 @@ e82545_write_register(struct e82545_softc *sc, uint32_ break; case E1000_EECD: { - //DPRINTF("EECD write 0x%x -> 0x%x\r\n", sc->eeprom_control, value); + //DPRINTF("EECD write 0x%x -> 0x%x", sc->eeprom_control, value); /* edge triggered low->high */ uint32_t eecd_strobe = ((sc->eeprom_control & E1000_EECD_SK) ? 0 : (value & E1000_EECD_SK)); @@ -1773,7 +1774,7 @@ e82545_write_register(struct e82545_softc *sc, uint32_ sc->mdi_control = (value & ~(E1000_MDIC_ERROR|E1000_MDIC_DEST)); if ((value & E1000_MDIC_READY) != 0) { - DPRINTF("Incorrect MDIC ready bit: 0x%x\r\n", value); + DPRINTF("Incorrect MDIC ready bit: 0x%x", value); return; } switch (value & E82545_MDIC_OP_MASK) { @@ -1786,7 +1787,7 @@ e82545_write_register(struct e82545_softc *sc, uint32_ value & E82545_MDIC_DATA_MASK); break; default: - DPRINTF("Unknown MDIC op: 0x%x\r\n", value); + DPRINTF("Unknown MDIC op: 0x%x", value); return; } /* TODO: barrier? */ @@ -1800,7 +1801,7 @@ e82545_write_register(struct e82545_softc *sc, uint32_ case E1000_STATUS: return; default: - DPRINTF("Unknown write register: 0x%x value:%x\r\n", offset, value); + DPRINTF("Unknown write register: 0x%x value:%x", offset, value); return; } } @@ -1812,11 +1813,11 @@ e82545_read_register(struct e82545_softc *sc, uint32_t int ridx; if (offset & 0x3) { - DPRINTF("Unaligned register read offset:0x%x\r\n", offset); + DPRINTF("Unaligned register read offset:0x%x", offset); return 0; } - DPRINTF("Register read: 0x%x\r\n", offset); + DPRINTF("Register read: 0x%x", offset); switch (offset) { case E1000_CTRL: @@ -1941,7 +1942,7 @@ e82545_read_register(struct e82545_softc *sc, uint32_t retval = sc->esc_fvlan[(offset - E1000_VFTA) >> 2]; break; case E1000_EECD: - //DPRINTF("EECD read %x\r\n", sc->eeprom_control); + //DPRINTF("EECD read %x", sc->eeprom_control); retval = sc->eeprom_control; break; case E1000_MDIC: @@ -2071,7 +2072,7 @@ e82545_read_register(struct e82545_softc *sc, uint32_t retval = 0; break; default: - DPRINTF("Unknown read register: 0x%x\r\n", offset); + DPRINTF("Unknown read register: 0x%x", offset); retval = 0; break; } @@ -2085,7 +2086,7 @@ e82545_write(struct vmctx *ctx, int vcpu, struct pci_d { struct e82545_softc *sc; - //DPRINTF("Write bar:%d offset:0x%lx value:0x%lx size:%d\r\n", baridx, offset, value, size); + //DPRINTF("Write bar:%d offset:0x%lx value:0x%lx size:%d", baridx, offset, value, size); sc = pi->pi_arg; @@ -2096,33 +2097,33 @@ e82545_write(struct vmctx *ctx, int vcpu, struct pci_d switch (offset) { case E82545_IOADDR: if (size != 4) { - DPRINTF("Wrong io addr write sz:%d value:0x%lx\r\n", size, value); + DPRINTF("Wrong io addr write sz:%d value:0x%lx", size, value); } else sc->io_addr = (uint32_t)value; break; case E82545_IODATA: if (size != 4) { - DPRINTF("Wrong io data write size:%d value:0x%lx\r\n", size, value); + DPRINTF("Wrong io data write size:%d value:0x%lx", size, value); } else if (sc->io_addr > E82545_IO_REGISTER_MAX) { - DPRINTF("Non-register io write addr:0x%x value:0x%lx\r\n", sc->io_addr, value); + DPRINTF("Non-register io write addr:0x%x value:0x%lx", sc->io_addr, value); } else e82545_write_register(sc, sc->io_addr, (uint32_t)value); break; default: - DPRINTF("Unknown io bar write offset:0x%lx value:0x%lx size:%d\r\n", offset, value, size); + DPRINTF("Unknown io bar write offset:0x%lx value:0x%lx size:%d", offset, value, size); break; } break; case E82545_BAR_REGISTER: if (size != 4) { - DPRINTF("Wrong register write size:%d offset:0x%lx value:0x%lx\r\n", size, offset, value); + DPRINTF("Wrong register write size:%d offset:0x%lx value:0x%lx", size, offset, value); } else e82545_write_register(sc, (uint32_t)offset, (uint32_t)value); break; default: - DPRINTF("Unknown write bar:%d off:0x%lx val:0x%lx size:%d\r\n", + DPRINTF("Unknown write bar:%d off:0x%lx val:0x%lx size:%d", baridx, offset, value, size); } @@ -2136,7 +2137,7 @@ e82545_read(struct vmctx *ctx, int vcpu, struct pci_de struct e82545_softc *sc; uint64_t retval; - //DPRINTF("Read bar:%d offset:0x%lx size:%d\r\n", baridx, offset, size); + //DPRINTF("Read bar:%d offset:0x%lx size:%d", baridx, offset, size); sc = pi->pi_arg; retval = 0; @@ -2147,35 +2148,35 @@ e82545_read(struct vmctx *ctx, int vcpu, struct pci_de switch (offset) { case E82545_IOADDR: if (size != 4) { - DPRINTF("Wrong io addr read sz:%d\r\n", size); + DPRINTF("Wrong io addr read sz:%d", size); } else retval = sc->io_addr; break; case E82545_IODATA: if (size != 4) { - DPRINTF("Wrong io data read sz:%d\r\n", size); + DPRINTF("Wrong io data read sz:%d", size); } if (sc->io_addr > E82545_IO_REGISTER_MAX) { - DPRINTF("Non-register io read addr:0x%x\r\n", + DPRINTF("Non-register io read addr:0x%x", sc->io_addr); } else retval = e82545_read_register(sc, sc->io_addr); break; default: - DPRINTF("Unknown io bar read offset:0x%lx size:%d\r\n", + DPRINTF("Unknown io bar read offset:0x%lx size:%d", offset, size); break; } break; case E82545_BAR_REGISTER: if (size != 4) { - DPRINTF("Wrong register read size:%d offset:0x%lx\r\n", + DPRINTF("Wrong register read size:%d offset:0x%lx", size, offset); } else retval = e82545_read_register(sc, (uint32_t)offset); break; default: - DPRINTF("Unknown read bar:%d offset:0x%lx size:%d\r\n", + DPRINTF("Unknown read bar:%d offset:0x%lx size:%d", baridx, offset, size); break; } @@ -2282,7 +2283,7 @@ e82545_init(struct vmctx *ctx, struct pci_devinst *pi, char *vtopts; int mac_provided; - DPRINTF("Loading with options: %s\r\n", opts); + DPRINTF("Loading with options: %s", opts); /* Setup our softc */ sc = calloc(1, sizeof(*sc)); Modified: stable/12/usr.sbin/bhyve/pci_emul.c ============================================================================== --- stable/12/usr.sbin/bhyve/pci_emul.c Thu Feb 20 21:29:59 2020 (r358183) +++ stable/12/usr.sbin/bhyve/pci_emul.c Thu Feb 20 21:48:36 2020 (r358184) @@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$"); #include "acpi.h" #include "bhyverun.h" +#include "debug.h" #include "inout.h" #include "ioapic.h" #include "mem.h" @@ -162,7 +163,7 @@ static void pci_parse_slot_usage(char *aopt) { - fprintf(stderr, "Invalid PCI slot info field \"%s\"\n", aopt); + EPRINTLN("Invalid PCI slot info field \"%s\"", aopt); } int @@ -215,13 +216,13 @@ pci_parse_slot(char *opt) si = &bi->slotinfo[snum]; if (si->si_funcs[fnum].fi_name != NULL) { - fprintf(stderr, "pci slot %d:%d already occupied!\n", + EPRINTLN("pci slot %d:%d already occupied!", snum, fnum); goto done; } if (pci_emul_finddev(emul) == NULL) { - fprintf(stderr, "pci slot %d:%d: unknown device \"%s\"\n", + EPRINTLN("pci slot %d:%d: unknown device \"%s\"", snum, fnum, emul); goto done; } Modified: stable/12/usr.sbin/bhyve/pci_fbuf.c ============================================================================== --- stable/12/usr.sbin/bhyve/pci_fbuf.c Thu Feb 20 21:29:59 2020 (r358183) +++ stable/12/usr.sbin/bhyve/pci_fbuf.c Thu Feb 20 21:48:36 2020 (r358184) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include "bhyvegc.h" #include "bhyverun.h" +#include "debug.h" #include "console.h" #include "inout.h" #include "pci_emul.h" @@ -63,7 +64,7 @@ __FBSDID("$FreeBSD$"); static int fbuf_debug = 1; #define DEBUG_INFO 1 #define DEBUG_VERBOSE 4 -#define DPRINTF(level, params) if (level <= fbuf_debug) printf params *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Thu Feb 20 21:52:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9EE172477E0; Thu, 20 Feb 2020 21:52:38 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NpGs63cgz49xD; Thu, 20 Feb 2020 21:52:37 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AF46E75A; Thu, 20 Feb 2020 21:52:37 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01KLqbuw027346; Thu, 20 Feb 2020 21:52:37 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KLqajw027340; Thu, 20 Feb 2020 21:52:36 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <202002202152.01KLqajw027340@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Thu, 20 Feb 2020 21:52:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358185 - stable/12/usr.sbin/bhyve X-SVN-Group: stable-12 X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: stable/12/usr.sbin/bhyve X-SVN-Commit-Revision: 358185 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 21:52:38 -0000 Author: vmaffione Date: Thu Feb 20 21:52:36 2020 New Revision: 358185 URL: https://svnweb.freebsd.org/changeset/base/358185 Log: MFC r357846 bhyve: move virtio-net header processing to pci_virtio_net This patch cleans up the API between the net frontends (e1000, virtio-net) and the net backends (tap and netmap). We move the virtio-net header stripping/prepending to the virtio-net code, where this functionality belongs. In this way, the netbe_send() and netbe_recv() signatures can have const struct iov * rather than struct iov *. Reviewed by: grehan, bcr, aleksandr.fedorov@itglobal.com Differential Revision: https://reviews.freebsd.org/D23342 Modified: stable/12/usr.sbin/bhyve/net_backends.c stable/12/usr.sbin/bhyve/net_backends.h stable/12/usr.sbin/bhyve/net_utils.c stable/12/usr.sbin/bhyve/pci_e82545.c stable/12/usr.sbin/bhyve/pci_virtio_net.c Modified: stable/12/usr.sbin/bhyve/net_backends.c ============================================================================== --- stable/12/usr.sbin/bhyve/net_backends.c Thu Feb 20 21:48:36 2020 (r358184) +++ stable/12/usr.sbin/bhyve/net_backends.c Thu Feb 20 21:52:36 2020 (r358185) @@ -99,7 +99,8 @@ struct net_backend { * vector provided by the caller has 'iovcnt' elements and contains * the packet to send. */ - ssize_t (*send)(struct net_backend *be, struct iovec *iov, int iovcnt); + ssize_t (*send)(struct net_backend *be, const struct iovec *iov, + int iovcnt); /* * Called to receive a packet from the backend. When the function @@ -108,7 +109,8 @@ struct net_backend { * The function returns 0 if the backend doesn't have a new packet to * receive. */ - ssize_t (*recv)(struct net_backend *be, struct iovec *iov, int iovcnt); + ssize_t (*recv)(struct net_backend *be, const struct iovec *iov, + int iovcnt); /* * Ask the backend to enable or disable receive operation in the @@ -238,13 +240,13 @@ error: * Called to send a buffer chain out to the tap device */ static ssize_t -tap_send(struct net_backend *be, struct iovec *iov, int iovcnt) +tap_send(struct net_backend *be, const struct iovec *iov, int iovcnt) { return (writev(be->fd, iov, iovcnt)); } static ssize_t -tap_recv(struct net_backend *be, struct iovec *iov, int iovcnt) +tap_recv(struct net_backend *be, const struct iovec *iov, int iovcnt) { ssize_t ret; @@ -458,7 +460,7 @@ netmap_cleanup(struct net_backend *be) } static ssize_t -netmap_send(struct net_backend *be, struct iovec *iov, +netmap_send(struct net_backend *be, const struct iovec *iov, int iovcnt) { struct netmap_priv *priv = (struct netmap_priv *)be->opaque; @@ -538,7 +540,7 @@ txsync: } static ssize_t -netmap_recv(struct net_backend *be, struct iovec *iov, int iovcnt) +netmap_recv(struct net_backend *be, const struct iovec *iov, int iovcnt) { struct netmap_priv *priv = (struct netmap_priv *)be->opaque; struct netmap_slot *slot = NULL; @@ -749,42 +751,10 @@ netbe_set_cap(struct net_backend *be, uint64_t feature return (ret); } -static __inline struct iovec * -iov_trim(struct iovec *iov, int *iovcnt, unsigned int tlen) -{ - struct iovec *riov; - - /* XXX short-cut: assume first segment is >= tlen */ - assert(iov[0].iov_len >= tlen); - - iov[0].iov_len -= tlen; - if (iov[0].iov_len == 0) { - assert(*iovcnt > 1); - *iovcnt -= 1; - riov = &iov[1]; - } else { - iov[0].iov_base = (void *)((uintptr_t)iov[0].iov_base + tlen); - riov = &iov[0]; - } - - return (riov); -} - ssize_t -netbe_send(struct net_backend *be, struct iovec *iov, int iovcnt) +netbe_send(struct net_backend *be, const struct iovec *iov, int iovcnt) { - assert(be != NULL); - if (be->be_vnet_hdr_len != be->fe_vnet_hdr_len) { - /* - * The frontend uses a virtio-net header, but the backend - * does not. We ignore it (as it must be all zeroes) and - * strip it. - */ - assert(be->be_vnet_hdr_len == 0); - iov = iov_trim(iov, &iovcnt, be->fe_vnet_hdr_len); - } - return (be->send(be, iov, iovcnt)); } @@ -794,46 +764,10 @@ netbe_send(struct net_backend *be, struct iovec *iov, * the length of the packet just read. Return -1 in case of errors. */ ssize_t -netbe_recv(struct net_backend *be, struct iovec *iov, int iovcnt) +netbe_recv(struct net_backend *be, const struct iovec *iov, int iovcnt) { - /* Length of prepended virtio-net header. */ - unsigned int hlen = be->fe_vnet_hdr_len; - int ret; - assert(be != NULL); - - if (hlen && hlen != be->be_vnet_hdr_len) { - /* - * The frontend uses a virtio-net header, but the backend - * does not. We need to prepend a zeroed header. - */ - struct virtio_net_rxhdr *vh; - - assert(be->be_vnet_hdr_len == 0); - - /* - * Get a pointer to the rx header, and use the - * data immediately following it for the packet buffer. - */ - vh = iov[0].iov_base; - iov = iov_trim(iov, &iovcnt, hlen); - - /* - * The only valid field in the rx packet header is the - * number of buffers if merged rx bufs were negotiated. - */ - memset(vh, 0, hlen); - if (hlen == VNET_HDR_LEN) { - vh->vrh_bufs = 1; - } - } - - ret = be->recv(be, iov, iovcnt); - if (ret > 0) { - ret += hlen; - } - - return (ret); + return (be->recv(be, iov, iovcnt)); } /* @@ -870,4 +804,11 @@ netbe_rx_enable(struct net_backend *be) { return be->recv_enable(be); +} + +size_t +netbe_get_vnet_hdr_len(struct net_backend *be) +{ + + return (be->be_vnet_hdr_len); } Modified: stable/12/usr.sbin/bhyve/net_backends.h ============================================================================== --- stable/12/usr.sbin/bhyve/net_backends.h Thu Feb 20 21:48:36 2020 (r358184) +++ stable/12/usr.sbin/bhyve/net_backends.h Thu Feb 20 21:52:36 2020 (r358185) @@ -43,8 +43,9 @@ void netbe_cleanup(net_backend_t *be); uint64_t netbe_get_cap(net_backend_t *be); int netbe_set_cap(net_backend_t *be, uint64_t cap, unsigned vnet_hdr_len); -ssize_t netbe_send(net_backend_t *be, struct iovec *iov, int iovcnt); -ssize_t netbe_recv(net_backend_t *be, struct iovec *iov, int iovcnt); +size_t netbe_get_vnet_hdr_len(net_backend_t *be); +ssize_t netbe_send(net_backend_t *be, const struct iovec *iov, int iovcnt); +ssize_t netbe_recv(net_backend_t *be, const struct iovec *iov, int iovcnt); ssize_t netbe_rx_discard(net_backend_t *be); void netbe_rx_disable(net_backend_t *be); void netbe_rx_enable(net_backend_t *be); Modified: stable/12/usr.sbin/bhyve/net_utils.c ============================================================================== --- stable/12/usr.sbin/bhyve/net_utils.c Thu Feb 20 21:48:36 2020 (r358184) +++ stable/12/usr.sbin/bhyve/net_utils.c Thu Feb 20 21:52:36 2020 (r358185) @@ -43,21 +43,19 @@ int net_parsemac(char *mac_str, uint8_t *mac_addr) { struct ether_addr *ea; - char *tmpstr; char zero_addr[ETHER_ADDR_LEN] = { 0, 0, 0, 0, 0, 0 }; - tmpstr = strsep(&mac_str,"="); + if (mac_str == NULL) + return (EINVAL); - if ((mac_str != NULL) && (!strcmp(tmpstr,"mac"))) { - ea = ether_aton(mac_str); + ea = ether_aton(mac_str); - if (ea == NULL || ETHER_IS_MULTICAST(ea->octet) || - memcmp(ea->octet, zero_addr, ETHER_ADDR_LEN) == 0) { - EPRINTLN("Invalid MAC %s", mac_str); - return (EINVAL); - } else - memcpy(mac_addr, ea->octet, ETHER_ADDR_LEN); - } + if (ea == NULL || ETHER_IS_MULTICAST(ea->octet) || + memcmp(ea->octet, zero_addr, ETHER_ADDR_LEN) == 0) { + EPRINTLN("Invalid MAC %s", mac_str); + return (EINVAL); + } else + memcpy(mac_addr, ea->octet, ETHER_ADDR_LEN); return (0); } Modified: stable/12/usr.sbin/bhyve/pci_e82545.c ============================================================================== --- stable/12/usr.sbin/bhyve/pci_e82545.c Thu Feb 20 21:48:36 2020 (r358184) +++ stable/12/usr.sbin/bhyve/pci_e82545.c Thu Feb 20 21:52:36 2020 (r358185) @@ -2328,18 +2328,36 @@ e82545_init(struct vmctx *ctx, struct pci_devinst *pi, mac_provided = 0; sc->esc_be = NULL; if (opts != NULL) { - int err; + int err = 0; devname = vtopts = strdup(opts); (void) strsep(&vtopts, ","); - if (vtopts != NULL) { - err = net_parsemac(vtopts, sc->esc_mac.octet); - if (err != 0) { - free(devname); - return (err); + /* + * Parse the list of options in the form + * key1=value1,...,keyN=valueN. + */ + while (vtopts != NULL) { + char *value = vtopts; + char *key; + + key = strsep(&value, "="); + if (value == NULL) + break; + vtopts = value; + (void) strsep(&vtopts, ","); + + if (strcmp(key, "mac") == 0) { + err = net_parsemac(value, sc->esc_mac.octet); + if (err) + break; + mac_provided = 1; } - mac_provided = 1; + } + + if (err) { + free(devname); + return (err); } err = netbe_init(&sc->esc_be, devname, e82545_rx_callback, sc); Modified: stable/12/usr.sbin/bhyve/pci_virtio_net.c ============================================================================== --- stable/12/usr.sbin/bhyve/pci_virtio_net.c Thu Feb 20 21:48:36 2020 (r358184) +++ stable/12/usr.sbin/bhyve/pci_virtio_net.c Thu Feb 20 21:52:36 2020 (r358185) @@ -117,6 +117,9 @@ struct pci_vtnet_softc { pthread_cond_t tx_cond; int tx_in_progress; + size_t vhdrlen; + size_t be_vhdrlen; + struct virtio_net_config vsc_config; struct virtio_consts vsc_consts; }; @@ -180,6 +183,38 @@ pci_vtnet_reset(void *vsc) pthread_mutex_unlock(&sc->rx_mtx); } +static __inline struct iovec * +iov_trim_hdr(struct iovec *iov, int *iovcnt, unsigned int hlen) +{ + struct iovec *riov; + + if (iov[0].iov_len < hlen) { + /* + * Not enough header space in the first fragment. + * That's not ok for us. + */ + return NULL; + } + + iov[0].iov_len -= hlen; + if (iov[0].iov_len == 0) { + *iovcnt -= 1; + if (*iovcnt == 0) { + /* + * Only space for the header. That's not + * enough for us. + */ + return NULL; + } + riov = &iov[1]; + } else { + iov[0].iov_base = (void *)((uintptr_t)iov[0].iov_base + hlen); + riov = &iov[0]; + } + + return (riov); +} + struct virtio_mrg_rxbuf_info { uint16_t idx; uint16_t pad; @@ -189,31 +224,34 @@ struct virtio_mrg_rxbuf_info { static void pci_vtnet_rx(struct pci_vtnet_softc *sc) { + int prepend_hdr_len = sc->vhdrlen - sc->be_vhdrlen; struct virtio_mrg_rxbuf_info info[VTNET_MAXSEGS]; struct iovec iov[VTNET_MAXSEGS + 1]; struct vqueue_info *vq; - uint32_t cur_iov_bytes; - struct iovec *cur_iov; - uint16_t cur_iov_len; + uint32_t riov_bytes; + struct iovec *riov; + int riov_len; uint32_t ulen; int n_chains; int len; vq = &sc->vsc_queues[VTNET_RXQ]; for (;;) { + struct virtio_net_rxhdr *hdr; + /* * Get a descriptor chain to store the next ingress * packet. In case of mergeable rx buffers, get as * many chains as necessary in order to make room * for a maximum sized LRO packet. */ - cur_iov_bytes = 0; - cur_iov_len = 0; - cur_iov = iov; + riov_bytes = 0; + riov_len = 0; + riov = iov; n_chains = 0; do { - int n = vq_getchain(vq, &info[n_chains].idx, cur_iov, - VTNET_MAXSEGS - cur_iov_len, NULL); + int n = vq_getchain(vq, &info[n_chains].idx, riov, + VTNET_MAXSEGS - riov_len, NULL); if (n == 0) { /* @@ -239,21 +277,43 @@ pci_vtnet_rx(struct pci_vtnet_softc *sc) vq_kick_disable(vq); continue; } - assert(n >= 1 && cur_iov_len + n <= VTNET_MAXSEGS); - cur_iov_len += n; + assert(n >= 1 && riov_len + n <= VTNET_MAXSEGS); + riov_len += n; if (!sc->rx_merge) { n_chains = 1; break; } - info[n_chains].len = (uint32_t)count_iov(cur_iov, n); - cur_iov_bytes += info[n_chains].len; - cur_iov += n; + info[n_chains].len = (uint32_t)count_iov(riov, n); + riov_bytes += info[n_chains].len; + riov += n; n_chains++; - } while (cur_iov_bytes < VTNET_MAX_PKT_LEN && - cur_iov_len < VTNET_MAXSEGS); + } while (riov_bytes < VTNET_MAX_PKT_LEN && + riov_len < VTNET_MAXSEGS); - len = netbe_recv(sc->vsc_be, iov, cur_iov_len); + riov = iov; + hdr = riov[0].iov_base; + if (prepend_hdr_len > 0) { + /* + * The frontend uses a virtio-net header, but the + * backend does not. We need to prepend a zeroed + * header. + */ + riov = iov_trim_hdr(riov, &riov_len, prepend_hdr_len); + if (riov == NULL) { + /* + * The first collected chain is nonsensical, + * as it is not even enough to store the + * virtio-net header. Just drop it. + */ + vq_relchain(vq, info[0].idx, 0); + vq_retchains(vq, n_chains - 1); + continue; + } + memset(hdr, 0, prepend_hdr_len); + } + len = netbe_recv(sc->vsc_be, riov, riov_len); + if (len <= 0) { /* * No more packets (len == 0), or backend errored @@ -266,18 +326,18 @@ pci_vtnet_rx(struct pci_vtnet_softc *sc) return; } - ulen = (uint32_t)len; /* avoid too many casts below */ + ulen = (uint32_t)(len + prepend_hdr_len); - /* Publish the used buffers to the guest. */ + /* + * Publish the used buffers to the guest, reporting the + * number of bytes that we wrote. + */ if (!sc->rx_merge) { vq_relchain(vq, info[0].idx, ulen); } else { - struct virtio_net_rxhdr *hdr = iov[0].iov_base; uint32_t iolen; int i = 0; - assert(iov[0].iov_len >= sizeof(*hdr)); - do { iolen = info[i].len; if (iolen > ulen) { @@ -333,6 +393,7 @@ static void pci_vtnet_proctx(struct pci_vtnet_softc *sc, struct vqueue_info *vq) { struct iovec iov[VTNET_MAXSEGS + 1]; + struct iovec *siov = iov; uint16_t idx; ssize_t len; int n; @@ -344,10 +405,34 @@ pci_vtnet_proctx(struct pci_vtnet_softc *sc, struct vq n = vq_getchain(vq, &idx, iov, VTNET_MAXSEGS, NULL); assert(n >= 1 && n <= VTNET_MAXSEGS); - len = netbe_send(sc->vsc_be, iov, n); + if (sc->vhdrlen != sc->be_vhdrlen) { + /* + * The frontend uses a virtio-net header, but the backend + * does not. We simply strip the header and ignore it, as + * it should be zero-filled. + */ + siov = iov_trim_hdr(siov, &n, sc->vhdrlen); + } - /* chain is processed, release it and set len */ - vq_relchain(vq, idx, len > 0 ? len : 0); + if (siov == NULL) { + /* The chain is nonsensical. Just drop it. */ + len = 0; + } else { + len = netbe_send(sc->vsc_be, siov, n); + if (len < 0) { + /* + * If send failed, report that 0 bytes + * were read. + */ + len = 0; + } + } + + /* + * Return the processed chain to the guest, reporting + * the number of bytes that we read. + */ + vq_relchain(vq, idx, len); } /* Called on TX kick. */ @@ -466,21 +551,40 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst * if (opts != NULL) { char *devname; char *vtopts; - int err; + int err = 0; + /* Get the device name. */ devname = vtopts = strdup(opts); (void) strsep(&vtopts, ","); - if (vtopts != NULL) { - err = net_parsemac(vtopts, sc->vsc_config.mac); - if (err != 0) { - free(devname); - free(sc); - return (err); + /* + * Parse the list of options in the form + * key1=value1,...,keyN=valueN. + */ + while (vtopts != NULL) { + char *value = vtopts; + char *key; + + key = strsep(&value, "="); + if (value == NULL) + break; + vtopts = value; + (void) strsep(&vtopts, ","); + + if (strcmp(key, "mac") == 0) { + err = net_parsemac(value, sc->vsc_config.mac); + if (err) + break; + mac_provided = 1; } - mac_provided = 1; } + if (err) { + free(devname); + free(sc); + return (err); + } + err = netbe_init(&sc->vsc_be, devname, pci_vtnet_rx_callback, sc); free(devname); @@ -520,6 +624,7 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst * sc->resetting = 0; sc->rx_merge = 0; + sc->vhdrlen = sizeof(struct virtio_net_rxhdr) - 2; pthread_mutex_init(&sc->rx_mtx, NULL); /* @@ -574,24 +679,25 @@ static void pci_vtnet_neg_features(void *vsc, uint64_t negotiated_features) { struct pci_vtnet_softc *sc = vsc; - unsigned int rx_vhdrlen; sc->vsc_features = negotiated_features; if (negotiated_features & VIRTIO_NET_F_MRG_RXBUF) { - rx_vhdrlen = sizeof(struct virtio_net_rxhdr); + sc->vhdrlen = sizeof(struct virtio_net_rxhdr); sc->rx_merge = 1; } else { /* * Without mergeable rx buffers, virtio-net header is 2 * bytes shorter than sizeof(struct virtio_net_rxhdr). */ - rx_vhdrlen = sizeof(struct virtio_net_rxhdr) - 2; + sc->vhdrlen = sizeof(struct virtio_net_rxhdr) - 2; sc->rx_merge = 0; } /* Tell the backend to enable some capabilities it has advertised. */ - netbe_set_cap(sc->vsc_be, negotiated_features, rx_vhdrlen); + netbe_set_cap(sc->vsc_be, negotiated_features, sc->vhdrlen); + sc->be_vhdrlen = netbe_get_vnet_hdr_len(sc->vsc_be); + assert(sc->be_vhdrlen == 0 || sc->be_vhdrlen == sc->vhdrlen); } static struct pci_devemu pci_de_vnet = { From owner-svn-src-all@freebsd.org Thu Feb 20 23:47:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C6AE024A5D0; Thu, 20 Feb 2020 23:47:10 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nrq24jkyz476L; Thu, 20 Feb 2020 23:47:10 +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 946061C2B; Thu, 20 Feb 2020 23:47:10 +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 01KNlA0f093573; Thu, 20 Feb 2020 23:47:10 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KNlALn093572; Thu, 20 Feb 2020 23:47:10 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <202002202347.01KNlALn093572@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Thu, 20 Feb 2020 23:47:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358186 - head/lib/libc/sys X-SVN-Group: head X-SVN-Commit-Author: vangyzen X-SVN-Commit-Paths: head/lib/libc/sys X-SVN-Commit-Revision: 358186 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 23:47:10 -0000 Author: vangyzen Date: Thu Feb 20 23:47:09 2020 New Revision: 358186 URL: https://svnweb.freebsd.org/changeset/base/358186 Log: truncate(2): extending the file is required by POSIX 2008 Update the man page to mention that extending a file with truncate(2) is required by POSIX as of 2008. Reviewed by: bcr MFC after: 2 weeks Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D23354 Modified: head/lib/libc/sys/truncate.2 Modified: head/lib/libc/sys/truncate.2 ============================================================================== --- head/lib/libc/sys/truncate.2 Thu Feb 20 21:52:36 2020 (r358185) +++ head/lib/libc/sys/truncate.2 Thu Feb 20 23:47:09 2020 (r358186) @@ -28,7 +28,7 @@ .\" @(#)truncate.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd May 4, 2015 +.Dd January 24, 2020 .Dt TRUNCATE 2 .Os .Sh NAME @@ -160,6 +160,9 @@ system calls appeared in These calls should be generalized to allow ranges of bytes in a file to be discarded. .Pp -Use of +Historically, the use of .Fn truncate -to extend a file is not portable. +or +.Fn ftruncate +to extend a file was not portable, but this behavior became required in +.St -p1003.1-2008 . From owner-svn-src-all@freebsd.org Thu Feb 20 23:53:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C00CC24A9B9; Thu, 20 Feb 2020 23:53:49 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nryj3Dtnz4KGJ; Thu, 20 Feb 2020 23:53:49 +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 4DD511E33; Thu, 20 Feb 2020 23:53:49 +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 01KNrnlp099281; Thu, 20 Feb 2020 23:53:49 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01KNrnBO099280; Thu, 20 Feb 2020 23:53:49 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <202002202353.01KNrnBO099280@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Thu, 20 Feb 2020 23:53:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358187 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: vangyzen X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 358187 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Feb 2020 23:53:49 -0000 Author: vangyzen Date: Thu Feb 20 23:53:48 2020 New Revision: 358187 URL: https://svnweb.freebsd.org/changeset/base/358187 Log: clamp kernel dump compression level when using gzip If the configured compression level for kernel dumps it outside the supported range, clamp it to the closest supported level. Previously, dumpon would fail. zstd already does this internally, so the compressor needs no change. Reviewed by: cem markj MFC after: 2 weeks Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D23765 Modified: head/sys/kern/subr_compressor.c Modified: head/sys/kern/subr_compressor.c ============================================================================== --- head/sys/kern/subr_compressor.c Thu Feb 20 23:47:09 2020 (r358186) +++ head/sys/kern/subr_compressor.c Thu Feb 20 23:53:48 2020 (r358187) @@ -117,6 +117,13 @@ gz_init(size_t maxiosize, int level) s->gz_stream.next_in = Z_NULL; s->gz_stream.avail_in = 0; + if (level != Z_DEFAULT_COMPRESSION) { + if (level < Z_BEST_SPEED) + level = Z_BEST_SPEED; + else if (level > Z_BEST_COMPRESSION) + level = Z_BEST_COMPRESSION; + } + error = deflateInit2(&s->gz_stream, level, Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); if (error != 0) From owner-svn-src-all@freebsd.org Fri Feb 21 00:33:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7B16624B71F; Fri, 21 Feb 2020 00:33:22 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NsrL1fXpz4G6f; Fri, 21 Feb 2020 00:33:22 +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 2C64C25A1; Fri, 21 Feb 2020 00:33:22 +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 01L0XMUG023291; Fri, 21 Feb 2020 00:33:22 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L0XLCw023288; Fri, 21 Feb 2020 00:33:21 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202002210033.01L0XLCw023288@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Fri, 21 Feb 2020 00:33:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358188 - in stable/12: etc/mtree secure/lib/libcrypto secure/lib/libcrypto/man secure/lib/libcrypto/man/man3 secure/lib/libcrypto/man/man5 secure/lib/libcrypto/man/man7 X-SVN-Group: stable-12 X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: in stable/12: etc/mtree secure/lib/libcrypto secure/lib/libcrypto/man secure/lib/libcrypto/man/man3 secure/lib/libcrypto/man/man5 secure/lib/libcrypto/man/man7 X-SVN-Commit-Revision: 358188 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 00:33:22 -0000 Author: jkim Date: Fri Feb 21 00:33:21 2020 New Revision: 358188 URL: https://svnweb.freebsd.org/changeset/base/358188 Log: MFC: r356963 Install man5 and man7 for OpenSSL. Added: stable/12/secure/lib/libcrypto/man/man3/ - copied from r356963, head/secure/lib/libcrypto/man/man3/ stable/12/secure/lib/libcrypto/man/man5/ - copied from r356963, head/secure/lib/libcrypto/man/man5/ stable/12/secure/lib/libcrypto/man/man7/ - copied from r356963, head/secure/lib/libcrypto/man/man7/ Replaced: stable/12/secure/lib/libcrypto/Makefile.man - copied unchanged from r356963, head/secure/lib/libcrypto/Makefile.man Deleted: stable/12/secure/lib/libcrypto/man/ADMISSIONS.3 stable/12/secure/lib/libcrypto/man/ASN1_INTEGER_get_int64.3 stable/12/secure/lib/libcrypto/man/ASN1_ITEM_lookup.3 stable/12/secure/lib/libcrypto/man/ASN1_OBJECT_new.3 stable/12/secure/lib/libcrypto/man/ASN1_STRING_TABLE_add.3 stable/12/secure/lib/libcrypto/man/ASN1_STRING_length.3 stable/12/secure/lib/libcrypto/man/ASN1_STRING_new.3 stable/12/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3 stable/12/secure/lib/libcrypto/man/ASN1_TIME_set.3 stable/12/secure/lib/libcrypto/man/ASN1_TYPE_get.3 stable/12/secure/lib/libcrypto/man/ASN1_generate_nconf.3 stable/12/secure/lib/libcrypto/man/ASYNC_WAIT_CTX_new.3 stable/12/secure/lib/libcrypto/man/ASYNC_start_job.3 stable/12/secure/lib/libcrypto/man/BF_encrypt.3 stable/12/secure/lib/libcrypto/man/BIO_ADDR.3 stable/12/secure/lib/libcrypto/man/BIO_ADDRINFO.3 stable/12/secure/lib/libcrypto/man/BIO_connect.3 stable/12/secure/lib/libcrypto/man/BIO_ctrl.3 stable/12/secure/lib/libcrypto/man/BIO_f_base64.3 stable/12/secure/lib/libcrypto/man/BIO_f_buffer.3 stable/12/secure/lib/libcrypto/man/BIO_f_cipher.3 stable/12/secure/lib/libcrypto/man/BIO_f_md.3 stable/12/secure/lib/libcrypto/man/BIO_f_null.3 stable/12/secure/lib/libcrypto/man/BIO_f_ssl.3 stable/12/secure/lib/libcrypto/man/BIO_find_type.3 stable/12/secure/lib/libcrypto/man/BIO_get_data.3 stable/12/secure/lib/libcrypto/man/BIO_get_ex_new_index.3 stable/12/secure/lib/libcrypto/man/BIO_meth_new.3 stable/12/secure/lib/libcrypto/man/BIO_new.3 stable/12/secure/lib/libcrypto/man/BIO_new_CMS.3 stable/12/secure/lib/libcrypto/man/BIO_parse_hostserv.3 stable/12/secure/lib/libcrypto/man/BIO_printf.3 stable/12/secure/lib/libcrypto/man/BIO_push.3 stable/12/secure/lib/libcrypto/man/BIO_read.3 stable/12/secure/lib/libcrypto/man/BIO_s_accept.3 stable/12/secure/lib/libcrypto/man/BIO_s_bio.3 stable/12/secure/lib/libcrypto/man/BIO_s_connect.3 stable/12/secure/lib/libcrypto/man/BIO_s_fd.3 stable/12/secure/lib/libcrypto/man/BIO_s_file.3 stable/12/secure/lib/libcrypto/man/BIO_s_mem.3 stable/12/secure/lib/libcrypto/man/BIO_s_null.3 stable/12/secure/lib/libcrypto/man/BIO_s_socket.3 stable/12/secure/lib/libcrypto/man/BIO_set_callback.3 stable/12/secure/lib/libcrypto/man/BIO_should_retry.3 stable/12/secure/lib/libcrypto/man/BN_BLINDING_new.3 stable/12/secure/lib/libcrypto/man/BN_CTX_new.3 stable/12/secure/lib/libcrypto/man/BN_CTX_start.3 stable/12/secure/lib/libcrypto/man/BN_add.3 stable/12/secure/lib/libcrypto/man/BN_add_word.3 stable/12/secure/lib/libcrypto/man/BN_bn2bin.3 stable/12/secure/lib/libcrypto/man/BN_cmp.3 stable/12/secure/lib/libcrypto/man/BN_copy.3 stable/12/secure/lib/libcrypto/man/BN_generate_prime.3 stable/12/secure/lib/libcrypto/man/BN_mod_inverse.3 stable/12/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3 stable/12/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3 stable/12/secure/lib/libcrypto/man/BN_new.3 stable/12/secure/lib/libcrypto/man/BN_num_bytes.3 stable/12/secure/lib/libcrypto/man/BN_rand.3 stable/12/secure/lib/libcrypto/man/BN_security_bits.3 stable/12/secure/lib/libcrypto/man/BN_set_bit.3 stable/12/secure/lib/libcrypto/man/BN_swap.3 stable/12/secure/lib/libcrypto/man/BN_zero.3 stable/12/secure/lib/libcrypto/man/BUF_MEM_new.3 stable/12/secure/lib/libcrypto/man/CMS_add0_cert.3 stable/12/secure/lib/libcrypto/man/CMS_add1_recipient_cert.3 stable/12/secure/lib/libcrypto/man/CMS_add1_signer.3 stable/12/secure/lib/libcrypto/man/CMS_compress.3 stable/12/secure/lib/libcrypto/man/CMS_decrypt.3 stable/12/secure/lib/libcrypto/man/CMS_encrypt.3 stable/12/secure/lib/libcrypto/man/CMS_final.3 stable/12/secure/lib/libcrypto/man/CMS_get0_RecipientInfos.3 stable/12/secure/lib/libcrypto/man/CMS_get0_SignerInfos.3 stable/12/secure/lib/libcrypto/man/CMS_get0_type.3 stable/12/secure/lib/libcrypto/man/CMS_get1_ReceiptRequest.3 stable/12/secure/lib/libcrypto/man/CMS_sign.3 stable/12/secure/lib/libcrypto/man/CMS_sign_receipt.3 stable/12/secure/lib/libcrypto/man/CMS_uncompress.3 stable/12/secure/lib/libcrypto/man/CMS_verify.3 stable/12/secure/lib/libcrypto/man/CMS_verify_receipt.3 stable/12/secure/lib/libcrypto/man/CONF_modules_free.3 stable/12/secure/lib/libcrypto/man/CONF_modules_load_file.3 stable/12/secure/lib/libcrypto/man/CRYPTO_THREAD_run_once.3 stable/12/secure/lib/libcrypto/man/CRYPTO_get_ex_new_index.3 stable/12/secure/lib/libcrypto/man/CRYPTO_memcmp.3 stable/12/secure/lib/libcrypto/man/CTLOG_STORE_get0_log_by_id.3 stable/12/secure/lib/libcrypto/man/CTLOG_STORE_new.3 stable/12/secure/lib/libcrypto/man/CTLOG_new.3 stable/12/secure/lib/libcrypto/man/CT_POLICY_EVAL_CTX_new.3 stable/12/secure/lib/libcrypto/man/DEFINE_STACK_OF.3 stable/12/secure/lib/libcrypto/man/DES_random_key.3 stable/12/secure/lib/libcrypto/man/DH_generate_key.3 stable/12/secure/lib/libcrypto/man/DH_generate_parameters.3 stable/12/secure/lib/libcrypto/man/DH_get0_pqg.3 stable/12/secure/lib/libcrypto/man/DH_get_1024_160.3 stable/12/secure/lib/libcrypto/man/DH_meth_new.3 stable/12/secure/lib/libcrypto/man/DH_new.3 stable/12/secure/lib/libcrypto/man/DH_new_by_nid.3 stable/12/secure/lib/libcrypto/man/DH_set_method.3 stable/12/secure/lib/libcrypto/man/DH_size.3 stable/12/secure/lib/libcrypto/man/DSA_SIG_new.3 stable/12/secure/lib/libcrypto/man/DSA_do_sign.3 stable/12/secure/lib/libcrypto/man/DSA_dup_DH.3 stable/12/secure/lib/libcrypto/man/DSA_generate_key.3 stable/12/secure/lib/libcrypto/man/DSA_generate_parameters.3 stable/12/secure/lib/libcrypto/man/DSA_get0_pqg.3 stable/12/secure/lib/libcrypto/man/DSA_meth_new.3 stable/12/secure/lib/libcrypto/man/DSA_new.3 stable/12/secure/lib/libcrypto/man/DSA_set_method.3 stable/12/secure/lib/libcrypto/man/DSA_sign.3 stable/12/secure/lib/libcrypto/man/DSA_size.3 stable/12/secure/lib/libcrypto/man/DTLS_get_data_mtu.3 stable/12/secure/lib/libcrypto/man/DTLS_set_timer_cb.3 stable/12/secure/lib/libcrypto/man/DTLSv1_listen.3 stable/12/secure/lib/libcrypto/man/ECDSA_SIG_new.3 stable/12/secure/lib/libcrypto/man/ECPKParameters_print.3 stable/12/secure/lib/libcrypto/man/EC_GFp_simple_method.3 stable/12/secure/lib/libcrypto/man/EC_GROUP_copy.3 stable/12/secure/lib/libcrypto/man/EC_GROUP_new.3 stable/12/secure/lib/libcrypto/man/EC_KEY_get_enc_flags.3 stable/12/secure/lib/libcrypto/man/EC_KEY_new.3 stable/12/secure/lib/libcrypto/man/EC_POINT_add.3 stable/12/secure/lib/libcrypto/man/EC_POINT_new.3 stable/12/secure/lib/libcrypto/man/ENGINE_add.3 stable/12/secure/lib/libcrypto/man/ERR_GET_LIB.3 stable/12/secure/lib/libcrypto/man/ERR_clear_error.3 stable/12/secure/lib/libcrypto/man/ERR_error_string.3 stable/12/secure/lib/libcrypto/man/ERR_get_error.3 stable/12/secure/lib/libcrypto/man/ERR_load_crypto_strings.3 stable/12/secure/lib/libcrypto/man/ERR_load_strings.3 stable/12/secure/lib/libcrypto/man/ERR_print_errors.3 stable/12/secure/lib/libcrypto/man/ERR_put_error.3 stable/12/secure/lib/libcrypto/man/ERR_remove_state.3 stable/12/secure/lib/libcrypto/man/ERR_set_mark.3 stable/12/secure/lib/libcrypto/man/EVP_BytesToKey.3 stable/12/secure/lib/libcrypto/man/EVP_CIPHER_CTX_get_cipher_data.3 stable/12/secure/lib/libcrypto/man/EVP_CIPHER_meth_new.3 stable/12/secure/lib/libcrypto/man/EVP_DigestInit.3 stable/12/secure/lib/libcrypto/man/EVP_DigestSignInit.3 stable/12/secure/lib/libcrypto/man/EVP_DigestVerifyInit.3 stable/12/secure/lib/libcrypto/man/EVP_EncodeInit.3 stable/12/secure/lib/libcrypto/man/EVP_EncryptInit.3 stable/12/secure/lib/libcrypto/man/EVP_MD_meth_new.3 stable/12/secure/lib/libcrypto/man/EVP_OpenInit.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_ASN1_METHOD.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_CTX_new.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_CTX_set1_pbe_pass.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_CTX_set_hkdf_md.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_CTX_set_rsa_pss_keygen_md.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_CTX_set_scrypt_N.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_CTX_set_tls1_prf_md.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_asn1_get_count.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_cmp.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_decrypt.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_derive.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_encrypt.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_get_default_digest_nid.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_keygen.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_meth_get_count.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_meth_new.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_new.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_print_private.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_sign.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_verify.3 stable/12/secure/lib/libcrypto/man/EVP_PKEY_verify_recover.3 stable/12/secure/lib/libcrypto/man/EVP_SealInit.3 stable/12/secure/lib/libcrypto/man/EVP_SignInit.3 stable/12/secure/lib/libcrypto/man/EVP_VerifyInit.3 stable/12/secure/lib/libcrypto/man/EVP_aes.3 stable/12/secure/lib/libcrypto/man/EVP_aria.3 stable/12/secure/lib/libcrypto/man/EVP_bf_cbc.3 stable/12/secure/lib/libcrypto/man/EVP_blake2b512.3 stable/12/secure/lib/libcrypto/man/EVP_camellia.3 stable/12/secure/lib/libcrypto/man/EVP_cast5_cbc.3 stable/12/secure/lib/libcrypto/man/EVP_chacha20.3 stable/12/secure/lib/libcrypto/man/EVP_des.3 stable/12/secure/lib/libcrypto/man/EVP_desx_cbc.3 stable/12/secure/lib/libcrypto/man/EVP_idea_cbc.3 stable/12/secure/lib/libcrypto/man/EVP_md2.3 stable/12/secure/lib/libcrypto/man/EVP_md4.3 stable/12/secure/lib/libcrypto/man/EVP_md5.3 stable/12/secure/lib/libcrypto/man/EVP_mdc2.3 stable/12/secure/lib/libcrypto/man/EVP_rc2_cbc.3 stable/12/secure/lib/libcrypto/man/EVP_rc4.3 stable/12/secure/lib/libcrypto/man/EVP_rc5_32_12_16_cbc.3 stable/12/secure/lib/libcrypto/man/EVP_ripemd160.3 stable/12/secure/lib/libcrypto/man/EVP_seed_cbc.3 stable/12/secure/lib/libcrypto/man/EVP_sha1.3 stable/12/secure/lib/libcrypto/man/EVP_sha224.3 stable/12/secure/lib/libcrypto/man/EVP_sha3_224.3 stable/12/secure/lib/libcrypto/man/EVP_sm3.3 stable/12/secure/lib/libcrypto/man/EVP_sm4_cbc.3 stable/12/secure/lib/libcrypto/man/EVP_whirlpool.3 stable/12/secure/lib/libcrypto/man/HMAC.3 stable/12/secure/lib/libcrypto/man/MD5.3 stable/12/secure/lib/libcrypto/man/MDC2_Init.3 stable/12/secure/lib/libcrypto/man/OBJ_nid2obj.3 stable/12/secure/lib/libcrypto/man/OCSP_REQUEST_new.3 stable/12/secure/lib/libcrypto/man/OCSP_cert_to_id.3 stable/12/secure/lib/libcrypto/man/OCSP_request_add1_nonce.3 stable/12/secure/lib/libcrypto/man/OCSP_resp_find_status.3 stable/12/secure/lib/libcrypto/man/OCSP_response_status.3 stable/12/secure/lib/libcrypto/man/OCSP_sendreq_new.3 stable/12/secure/lib/libcrypto/man/OPENSSL_Applink.3 stable/12/secure/lib/libcrypto/man/OPENSSL_LH_COMPFUNC.3 stable/12/secure/lib/libcrypto/man/OPENSSL_LH_stats.3 stable/12/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3 stable/12/secure/lib/libcrypto/man/OPENSSL_config.3 stable/12/secure/lib/libcrypto/man/OPENSSL_fork_prepare.3 stable/12/secure/lib/libcrypto/man/OPENSSL_ia32cap.3 stable/12/secure/lib/libcrypto/man/OPENSSL_init_crypto.3 stable/12/secure/lib/libcrypto/man/OPENSSL_init_ssl.3 stable/12/secure/lib/libcrypto/man/OPENSSL_instrument_bus.3 stable/12/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3 stable/12/secure/lib/libcrypto/man/OPENSSL_malloc.3 stable/12/secure/lib/libcrypto/man/OPENSSL_secure_malloc.3 stable/12/secure/lib/libcrypto/man/OSSL_STORE_INFO.3 stable/12/secure/lib/libcrypto/man/OSSL_STORE_LOADER.3 stable/12/secure/lib/libcrypto/man/OSSL_STORE_SEARCH.3 stable/12/secure/lib/libcrypto/man/OSSL_STORE_expect.3 stable/12/secure/lib/libcrypto/man/OSSL_STORE_open.3 stable/12/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 stable/12/secure/lib/libcrypto/man/PEM_bytes_read_bio.3 stable/12/secure/lib/libcrypto/man/PEM_read.3 stable/12/secure/lib/libcrypto/man/PEM_read_CMS.3 stable/12/secure/lib/libcrypto/man/PEM_read_bio_PrivateKey.3 stable/12/secure/lib/libcrypto/man/PEM_read_bio_ex.3 stable/12/secure/lib/libcrypto/man/PEM_write_bio_CMS_stream.3 stable/12/secure/lib/libcrypto/man/PEM_write_bio_PKCS7_stream.3 stable/12/secure/lib/libcrypto/man/PKCS12_create.3 stable/12/secure/lib/libcrypto/man/PKCS12_newpass.3 stable/12/secure/lib/libcrypto/man/PKCS12_parse.3 stable/12/secure/lib/libcrypto/man/PKCS5_PBKDF2_HMAC.3 stable/12/secure/lib/libcrypto/man/PKCS7_decrypt.3 stable/12/secure/lib/libcrypto/man/PKCS7_encrypt.3 stable/12/secure/lib/libcrypto/man/PKCS7_sign.3 stable/12/secure/lib/libcrypto/man/PKCS7_sign_add_signer.3 stable/12/secure/lib/libcrypto/man/PKCS7_verify.3 stable/12/secure/lib/libcrypto/man/RAND_DRBG_generate.3 stable/12/secure/lib/libcrypto/man/RAND_DRBG_get0_master.3 stable/12/secure/lib/libcrypto/man/RAND_DRBG_new.3 stable/12/secure/lib/libcrypto/man/RAND_DRBG_reseed.3 stable/12/secure/lib/libcrypto/man/RAND_DRBG_set_callbacks.3 stable/12/secure/lib/libcrypto/man/RAND_DRBG_set_ex_data.3 stable/12/secure/lib/libcrypto/man/RAND_add.3 stable/12/secure/lib/libcrypto/man/RAND_bytes.3 stable/12/secure/lib/libcrypto/man/RAND_cleanup.3 stable/12/secure/lib/libcrypto/man/RAND_egd.3 stable/12/secure/lib/libcrypto/man/RAND_load_file.3 stable/12/secure/lib/libcrypto/man/RAND_set_rand_method.3 stable/12/secure/lib/libcrypto/man/RC4_set_key.3 stable/12/secure/lib/libcrypto/man/RIPEMD160_Init.3 stable/12/secure/lib/libcrypto/man/RSA_blinding_on.3 stable/12/secure/lib/libcrypto/man/RSA_check_key.3 stable/12/secure/lib/libcrypto/man/RSA_generate_key.3 stable/12/secure/lib/libcrypto/man/RSA_get0_key.3 stable/12/secure/lib/libcrypto/man/RSA_meth_new.3 stable/12/secure/lib/libcrypto/man/RSA_new.3 stable/12/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3 stable/12/secure/lib/libcrypto/man/RSA_print.3 stable/12/secure/lib/libcrypto/man/RSA_private_encrypt.3 stable/12/secure/lib/libcrypto/man/RSA_public_encrypt.3 stable/12/secure/lib/libcrypto/man/RSA_set_method.3 stable/12/secure/lib/libcrypto/man/RSA_sign.3 stable/12/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3 stable/12/secure/lib/libcrypto/man/RSA_size.3 stable/12/secure/lib/libcrypto/man/SCT_new.3 stable/12/secure/lib/libcrypto/man/SCT_print.3 stable/12/secure/lib/libcrypto/man/SCT_validate.3 stable/12/secure/lib/libcrypto/man/SHA256_Init.3 stable/12/secure/lib/libcrypto/man/SMIME_read_CMS.3 stable/12/secure/lib/libcrypto/man/SMIME_read_PKCS7.3 stable/12/secure/lib/libcrypto/man/SMIME_write_CMS.3 stable/12/secure/lib/libcrypto/man/SMIME_write_PKCS7.3 stable/12/secure/lib/libcrypto/man/SSL_CIPHER_get_name.3 stable/12/secure/lib/libcrypto/man/SSL_COMP_add_compression_method.3 stable/12/secure/lib/libcrypto/man/SSL_CONF_CTX_new.3 stable/12/secure/lib/libcrypto/man/SSL_CONF_CTX_set1_prefix.3 stable/12/secure/lib/libcrypto/man/SSL_CONF_CTX_set_flags.3 stable/12/secure/lib/libcrypto/man/SSL_CONF_CTX_set_ssl_ctx.3 stable/12/secure/lib/libcrypto/man/SSL_CONF_cmd.3 stable/12/secure/lib/libcrypto/man/SSL_CONF_cmd_argv.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_add1_chain_cert.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_add_extra_chain_cert.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_add_session.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_config.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_ctrl.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_dane_enable.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_flush_sessions.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_free.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_get0_param.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_get_verify_mode.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_has_client_custom_ext.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_load_verify_locations.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_new.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_sess_number.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_sess_set_cache_size.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_sess_set_get_cb.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_sessions.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set0_CA_list.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set1_curves.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set1_sigalgs.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set1_verify_cert_store.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_alpn_select_cb.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_cert_cb.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_cert_store.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_cert_verify_callback.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_cipher_list.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_client_cert_cb.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_client_hello_cb.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_ct_validation_callback.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_ctlog_list_file.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_default_passwd_cb.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_ex_data.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_generate_session_id.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_info_callback.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_keylog_callback.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_max_cert_list.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_min_proto_version.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_mode.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_msg_callback.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_num_tickets.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_options.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_psk_client_callback.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_quiet_shutdown.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_read_ahead.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_record_padding_callback.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_security_level.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_session_cache_mode.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_session_id_context.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_session_ticket_cb.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_split_send_fragment.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_ssl_version.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_stateless_cookie_generate_cb.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_timeout.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_tlsext_servername_callback.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_tlsext_status_cb.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_tlsext_ticket_key_cb.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_tlsext_use_srtp.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_tmp_dh_callback.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_set_verify.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_use_certificate.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_use_psk_identity_hint.3 stable/12/secure/lib/libcrypto/man/SSL_CTX_use_serverinfo.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_free.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_get0_cipher.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_get0_hostname.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_get0_id_context.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_get0_peer.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_get_compress_id.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_get_ex_data.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_get_protocol_version.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_get_time.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_has_ticket.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_is_resumable.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_print.3 stable/12/secure/lib/libcrypto/man/SSL_SESSION_set1_id.3 stable/12/secure/lib/libcrypto/man/SSL_accept.3 stable/12/secure/lib/libcrypto/man/SSL_alert_type_string.3 stable/12/secure/lib/libcrypto/man/SSL_alloc_buffers.3 stable/12/secure/lib/libcrypto/man/SSL_check_chain.3 stable/12/secure/lib/libcrypto/man/SSL_clear.3 stable/12/secure/lib/libcrypto/man/SSL_connect.3 stable/12/secure/lib/libcrypto/man/SSL_do_handshake.3 stable/12/secure/lib/libcrypto/man/SSL_export_keying_material.3 stable/12/secure/lib/libcrypto/man/SSL_extension_supported.3 stable/12/secure/lib/libcrypto/man/SSL_free.3 stable/12/secure/lib/libcrypto/man/SSL_get0_peer_scts.3 stable/12/secure/lib/libcrypto/man/SSL_get_SSL_CTX.3 stable/12/secure/lib/libcrypto/man/SSL_get_all_async_fds.3 stable/12/secure/lib/libcrypto/man/SSL_get_ciphers.3 stable/12/secure/lib/libcrypto/man/SSL_get_client_random.3 stable/12/secure/lib/libcrypto/man/SSL_get_current_cipher.3 stable/12/secure/lib/libcrypto/man/SSL_get_default_timeout.3 stable/12/secure/lib/libcrypto/man/SSL_get_error.3 stable/12/secure/lib/libcrypto/man/SSL_get_extms_support.3 stable/12/secure/lib/libcrypto/man/SSL_get_fd.3 stable/12/secure/lib/libcrypto/man/SSL_get_peer_cert_chain.3 stable/12/secure/lib/libcrypto/man/SSL_get_peer_certificate.3 stable/12/secure/lib/libcrypto/man/SSL_get_peer_signature_nid.3 stable/12/secure/lib/libcrypto/man/SSL_get_peer_tmp_key.3 stable/12/secure/lib/libcrypto/man/SSL_get_psk_identity.3 stable/12/secure/lib/libcrypto/man/SSL_get_rbio.3 stable/12/secure/lib/libcrypto/man/SSL_get_session.3 stable/12/secure/lib/libcrypto/man/SSL_get_shared_sigalgs.3 stable/12/secure/lib/libcrypto/man/SSL_get_verify_result.3 stable/12/secure/lib/libcrypto/man/SSL_get_version.3 stable/12/secure/lib/libcrypto/man/SSL_in_init.3 stable/12/secure/lib/libcrypto/man/SSL_key_update.3 stable/12/secure/lib/libcrypto/man/SSL_library_init.3 stable/12/secure/lib/libcrypto/man/SSL_load_client_CA_file.3 stable/12/secure/lib/libcrypto/man/SSL_new.3 stable/12/secure/lib/libcrypto/man/SSL_pending.3 stable/12/secure/lib/libcrypto/man/SSL_read.3 stable/12/secure/lib/libcrypto/man/SSL_read_early_data.3 stable/12/secure/lib/libcrypto/man/SSL_rstate_string.3 stable/12/secure/lib/libcrypto/man/SSL_session_reused.3 stable/12/secure/lib/libcrypto/man/SSL_set1_host.3 stable/12/secure/lib/libcrypto/man/SSL_set_bio.3 stable/12/secure/lib/libcrypto/man/SSL_set_connect_state.3 stable/12/secure/lib/libcrypto/man/SSL_set_fd.3 stable/12/secure/lib/libcrypto/man/SSL_set_session.3 stable/12/secure/lib/libcrypto/man/SSL_set_shutdown.3 stable/12/secure/lib/libcrypto/man/SSL_set_verify_result.3 stable/12/secure/lib/libcrypto/man/SSL_shutdown.3 stable/12/secure/lib/libcrypto/man/SSL_state_string.3 stable/12/secure/lib/libcrypto/man/SSL_want.3 stable/12/secure/lib/libcrypto/man/SSL_write.3 stable/12/secure/lib/libcrypto/man/UI_STRING.3 stable/12/secure/lib/libcrypto/man/UI_UTIL_read_pw.3 stable/12/secure/lib/libcrypto/man/UI_create_method.3 stable/12/secure/lib/libcrypto/man/UI_new.3 stable/12/secure/lib/libcrypto/man/X509V3_get_d2i.3 stable/12/secure/lib/libcrypto/man/X509_ALGOR_dup.3 stable/12/secure/lib/libcrypto/man/X509_CRL_get0_by_serial.3 stable/12/secure/lib/libcrypto/man/X509_EXTENSION_set_object.3 stable/12/secure/lib/libcrypto/man/X509_LOOKUP_hash_dir.3 stable/12/secure/lib/libcrypto/man/X509_LOOKUP_meth_new.3 stable/12/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3 stable/12/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3 stable/12/secure/lib/libcrypto/man/X509_NAME_get0_der.3 stable/12/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3 stable/12/secure/lib/libcrypto/man/X509_NAME_print_ex.3 stable/12/secure/lib/libcrypto/man/X509_PUBKEY_new.3 stable/12/secure/lib/libcrypto/man/X509_SIG_get0.3 stable/12/secure/lib/libcrypto/man/X509_STORE_CTX_get_error.3 stable/12/secure/lib/libcrypto/man/X509_STORE_CTX_new.3 stable/12/secure/lib/libcrypto/man/X509_STORE_CTX_set_verify_cb.3 stable/12/secure/lib/libcrypto/man/X509_STORE_add_cert.3 stable/12/secure/lib/libcrypto/man/X509_STORE_get0_param.3 stable/12/secure/lib/libcrypto/man/X509_STORE_new.3 stable/12/secure/lib/libcrypto/man/X509_STORE_set_verify_cb_func.3 stable/12/secure/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3 stable/12/secure/lib/libcrypto/man/X509_check_ca.3 stable/12/secure/lib/libcrypto/man/X509_check_host.3 stable/12/secure/lib/libcrypto/man/X509_check_issued.3 stable/12/secure/lib/libcrypto/man/X509_check_private_key.3 stable/12/secure/lib/libcrypto/man/X509_cmp.3 stable/12/secure/lib/libcrypto/man/X509_cmp_time.3 stable/12/secure/lib/libcrypto/man/X509_digest.3 stable/12/secure/lib/libcrypto/man/X509_dup.3 stable/12/secure/lib/libcrypto/man/X509_get0_notBefore.3 stable/12/secure/lib/libcrypto/man/X509_get0_signature.3 stable/12/secure/lib/libcrypto/man/X509_get0_uids.3 stable/12/secure/lib/libcrypto/man/X509_get_extension_flags.3 stable/12/secure/lib/libcrypto/man/X509_get_pubkey.3 stable/12/secure/lib/libcrypto/man/X509_get_serialNumber.3 stable/12/secure/lib/libcrypto/man/X509_get_subject_name.3 stable/12/secure/lib/libcrypto/man/X509_get_version.3 stable/12/secure/lib/libcrypto/man/X509_new.3 stable/12/secure/lib/libcrypto/man/X509_sign.3 stable/12/secure/lib/libcrypto/man/X509_verify_cert.3 stable/12/secure/lib/libcrypto/man/X509v3_get_ext_by_NID.3 stable/12/secure/lib/libcrypto/man/d2i_DHparams.3 stable/12/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey_bio.3 stable/12/secure/lib/libcrypto/man/d2i_PrivateKey.3 stable/12/secure/lib/libcrypto/man/d2i_SSL_SESSION.3 stable/12/secure/lib/libcrypto/man/d2i_X509.3 stable/12/secure/lib/libcrypto/man/i2d_CMS_bio_stream.3 stable/12/secure/lib/libcrypto/man/i2d_PKCS7_bio_stream.3 stable/12/secure/lib/libcrypto/man/i2d_re_X509_tbs.3 stable/12/secure/lib/libcrypto/man/o2i_SCT_LIST.3 Modified: stable/12/etc/mtree/BSD.usr.dist stable/12/secure/lib/libcrypto/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/etc/mtree/BSD.usr.dist ============================================================================== --- stable/12/etc/mtree/BSD.usr.dist Thu Feb 20 23:53:48 2020 (r358187) +++ stable/12/etc/mtree/BSD.usr.dist Fri Feb 21 00:33:21 2020 (r358188) @@ -1178,6 +1178,10 @@ .. man3 .. + man5 + .. + man7 + .. .. .. pc-sysinstall Modified: stable/12/secure/lib/libcrypto/Makefile ============================================================================== --- stable/12/secure/lib/libcrypto/Makefile Thu Feb 20 23:53:48 2020 (r358187) +++ stable/12/secure/lib/libcrypto/Makefile Fri Feb 21 00:33:21 2020 (r358188) @@ -11,9 +11,7 @@ VERSION_MAP= ${.CURDIR}/Version.map NO_LINT= -.if exists(Makefile.man) .include "Makefile.man" -.endif .include "Makefile.inc" SRCS= cpt_err.c cryptlib.c ctype.c cversion.c ex_data.c getenv.c init.c @@ -530,5 +528,4 @@ PICFLAG+= -DOPENSSL_PIC ${LCRYPTO_SRC}/crypto/whrlpool \ ${LCRYPTO_SRC}/crypto/x509 \ ${LCRYPTO_SRC}/crypto/x509v3 \ - ${LCRYPTO_SRC}/include/openssl \ - ${.CURDIR}/man + ${LCRYPTO_SRC}/include/openssl Copied: stable/12/secure/lib/libcrypto/Makefile.man (from r356963, head/secure/lib/libcrypto/Makefile.man) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/secure/lib/libcrypto/Makefile.man Fri Feb 21 00:33:21 2020 (r358188, copy of r356963, head/secure/lib/libcrypto/Makefile.man) @@ -0,0 +1,5 @@ +# $FreeBSD$ +.for m in 3 5 7 +.include "man/man${m}/Makefile" +.PATH: ${.CURDIR}/man/man${m} +.endfor From owner-svn-src-all@freebsd.org Fri Feb 21 00:42:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6A15B24BAE4; Fri, 21 Feb 2020 00:42:04 +0000 (UTC) (envelope-from mmatsuda@cybernet.co.jp) Received: from mo-csw.securemx.jp (mo-csw1116.securemx.jp [210.130.202.158]) (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 48Nt2K4HdLz4VLc; Fri, 21 Feb 2020 00:42:00 +0000 (UTC) (envelope-from mmatsuda@cybernet.co.jp) Received: by mo-csw.securemx.jp (mx-mo-csw1116) id 01L0fsHC015067; Fri, 21 Feb 2020 09:41:55 +0900 X-Iguazu-Qid: 2wGrUl5MbUArmwQe1I X-Iguazu-QSIG: v=2; s=0; t=1582245714; q=2wGrUl5MbUArmwQe1I; m=0vclltx05SbWq4+Ng9yj8DMyWg0ZeT+77sxBRUi8P+0= Received: from rism-57d.kgt.cybernet.co.jp (posh.kgt.cybernet.co.jp [202.214.241.90]) by relay.securemx.jp (mx-mr1111) id 01L0frZE013738; Fri, 21 Feb 2020 09:41:53 +0900 Received: from localhost (kgtm-85d.kgt.cybernet.co.jp [10.21.35.22]) by rism-57d.kgt.cybernet.co.jp (Postfix) with ESMTP id 657ABDD89D1; Fri, 21 Feb 2020 09:41:53 +0900 (JST) Date: Fri, 21 Feb 2020 09:41:31 +0900 (JST) Message-Id: <20200221.094131.01367154.mmatsuda@cybernet.co.jp> To: jeff@FreeBSD.org Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r358097 - in head/sys: kern vm From: mmatsuda@cybernet.co.jp In-Reply-To: <202002190817.01J8HRTY062438@repo.freebsd.org> References: <202002190817.01J8HRTY062438@repo.freebsd.org> X-Mailer: Mew version 4.2 on Emacs 21.4 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 48Nt2K4HdLz4VLc X-Spamd-Bar: + X-Spamd-Result: default: False [1.03 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.44)[-0.439,0]; R_DKIM_ALLOW(-0.20)[cybernet.co.jp:s=20190225.smx]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:210.130.202.152/29]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; TO_DN_NONE(0.00)[]; MV_CASE(0.50)[]; RCVD_COUNT_THREE(0.00)[4]; IP_SCORE(0.83)[ipnet: 210.130.0.0/16(2.51), asn: 2497(1.59), country: JP(0.04)]; DKIM_TRACE(0.00)[cybernet.co.jp:+]; DMARC_POLICY_ALLOW(-0.50)[cybernet.co.jp,quarantine]; FROM_NO_DN(0.00)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_SPAM_LONG(0.24)[0.241,0]; RCVD_IN_DNSWL_LOW(-0.10)[158.202.130.210.list.dnswl.org : 127.0.5.1]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:2497, ipnet:210.130.0.0/16, country:JP]; RCVD_TLS_LAST(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 00:42:04 -0000 Hi Jeff, From: Jeff Roberson Date: Wed, 19 Feb 2020 08:17:27 +0000 (UTC) >Author: jeff >Date: Wed Feb 19 08:17:27 2020 >New Revision: 358097 >URL: https://svnweb.freebsd.org/changeset/base/358097 > >Log: > Eliminate some unnecessary uses of UMA_ZONE_VM. Only zones involved in > virtual address or physical page allocation need to be marked with this > flag. > > Reviewed by: markj > Tested by: pho > Differential Revision: https://reviews.freebsd.org/D23712 > >Modified: > head/sys/kern/subr_vmem.c > head/sys/kern/vfs_subr.c > head/sys/vm/swap_pager.c > head/sys/vm/vm_page.c > head/sys/vm/vm_pager.c > >Modified: head/sys/kern/subr_vmem.c >============================================================================== >--- head/sys/kern/subr_vmem.c Wed Feb 19 08:15:20 2020 (r358096) >+++ head/sys/kern/subr_vmem.c Wed Feb 19 08:17:27 2020 (r358097) >@@ -561,8 +561,7 @@ qc_init(vmem_t *vm, vmem_size_t qcache_max) > qc->qc_vmem = vm; > qc->qc_size = size; > qc->qc_cache = uma_zcache_create(qc->qc_name, size, >- NULL, NULL, NULL, NULL, qc_import, qc_release, qc, >- UMA_ZONE_VM); >+ NULL, NULL, NULL, NULL, qc_import, qc_release, qc, 0); > MPASS(qc->qc_cache); > } > } >@@ -668,10 +667,10 @@ vmem_startup(void) > mtx_init(&vmem_list_lock, "vmem list lock", NULL, MTX_DEF); > vmem_zone = uma_zcreate("vmem", > sizeof(struct vmem), NULL, NULL, NULL, NULL, >- UMA_ALIGN_PTR, UMA_ZONE_VM); >+ UMA_ALIGN_PTR, 0); > vmem_bt_zone = uma_zcreate("vmem btag", > sizeof(struct vmem_btag), NULL, NULL, NULL, NULL, >- UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); >+ UMA_ALIGN_PTR, UMA_ZONE_VM); If I'm reading the message correctly, shouldn't the above line be like the following? + UMA_ALIGN_PTR, UMA_ZONE_NOFREE); Regards, Haro =----------------------------------------------------------------------- _ _ Munehiro (haro) Matsuda -|- /_\ |_|_| Cybernet Systems Co., Ltd. /|\ |_| |_|_| From owner-svn-src-all@freebsd.org Fri Feb 21 01:10:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C9C7624C9A2 for ; Fri, 21 Feb 2020 01:10:34 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from mail-pf1-x441.google.com (mail-pf1-x441.google.com [IPv6:2607:f8b0:4864:20::441]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NtgG05ffz3xBw for ; Fri, 21 Feb 2020 01:10:34 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: by mail-pf1-x441.google.com with SMTP id j9so308068pfa.8 for ; Thu, 20 Feb 2020 17:10:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jroberson-net.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=G9y+gkGgdDGc0/nufgCW5oK2QI+weKHr31BTL005eFc=; b=xwyZ5jkyF0+kCTCyfvvnjFzoGEKapEHxxZIvuLtS/pNV4zqAiedXZNqLhb5beLac+m jf79GpZFp+YVefOwdPrzEmn/OKBItPaSYk2huSF0ThThAOE4iBi0BmGjLR9qQQzvjkdn gkcddU+wyi4s7YjDsEaV3tLJI8IFb6q7RonGnFql4QmctQhIfXAOB+4PXmT2zW5oHTgv cGdQjJs9ZUoG+FoYHy/wzPS/DdHBj5vY4+Viw1H3bq/rEJhxuJql7eUvzi3h9kH5e9JC retPTzC7HRdagA5haiFETpRZ8923iST45TBiZRFtgiEvnmF/UmK7Uvv4chz7yflKMioZ 9LVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=G9y+gkGgdDGc0/nufgCW5oK2QI+weKHr31BTL005eFc=; b=YkoPOdVznh4Kcgd82eKbDMPBR/WBG/+/gbfihnlMM7SxzS/uBw8Vgrbcx4TAG+T01s tYxLM7K/Mnh0Ysb0cGc2s6VqAxBgvvUeOlrH1AfodhA52Tf8JGXAs+9zlG88kKPrwB2f jUQdFgM4hOD1H7ikzU9lbHeY0wR0awNRpzTAMVns4Ins2dFfTfdNq2+uVnEYCR5nihVS FcM8Y+8r5I3Vnl/JjUNg1K37l9ap5R6QvzyJw/g5NSZKMvs3BgX28iKfUjKA4+dHW4ly CVojzUHTnWSMgUrdX1YJMof6OifTzPlL1lxtswZSp3r9LNC9Rd+2g2bQkS1vThegHpRs i8Ow== X-Gm-Message-State: APjAAAV7AaaNMW0DiNRt9zK5Yyjh7Vs67FBYL4R5Jt74GQDcvf6Xh6m6 YIyz4U0nDYK/z7NmW2WqYzm/Jw== X-Google-Smtp-Source: APXvYqzTrJNWFlxBVENcNyQN2IvFv5mjoKaENseKv3EBKykK4kVirOv8zAl7VPo7lzK0dOHwloUrDg== X-Received: by 2002:a63:2bc3:: with SMTP id r186mr36036463pgr.294.1582247431472; Thu, 20 Feb 2020 17:10:31 -0800 (PST) Received: from rrcs-76-81-105-82.west.biz.rr.com (rrcs-76-81-105-82.west.biz.rr.com. [76.81.105.82]) by smtp.gmail.com with ESMTPSA id b186sm494424pgc.46.2020.02.20.17.10.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 Feb 2020 17:10:30 -0800 (PST) Date: Thu, 20 Feb 2020 15:10:28 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: mmatsuda@cybernet.co.jp cc: jeff@FreeBSD.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r358097 - in head/sys: kern vm In-Reply-To: <20200221.094131.01367154.mmatsuda@cybernet.co.jp> Message-ID: References: <202002190817.01J8HRTY062438@repo.freebsd.org> <20200221.094131.01367154.mmatsuda@cybernet.co.jp> User-Agent: Alpine 2.21.9999 (BSF 287 2018-06-16) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Rspamd-Queue-Id: 48NtgG05ffz3xBw X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=jroberson-net.20150623.gappssmtp.com header.s=20150623 header.b=xwyZ5jky; dmarc=none; spf=none (mx1.freebsd.org: domain of jroberson@jroberson.net has no SPF policy when checking 2607:f8b0:4864:20::441) smtp.mailfrom=jroberson@jroberson.net X-Spamd-Result: default: False [-2.64 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[jroberson-net.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; TO_DN_NONE(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[jroberson-net.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[1.4.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; DMARC_NA(0.00)[jroberson.net]; FROM_EQ_ENVFROM(0.00)[]; MID_RHS_NOT_FQDN(0.50)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_TLS_ALL(0.00)[]; IP_SCORE(-0.84)[ip: (-0.58), ipnet: 2607:f8b0::/32(-1.89), asn: 15169(-1.67), country: US(-0.05)] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 01:10:34 -0000 On Fri, 21 Feb 2020, mmatsuda@cybernet.co.jp wrote: > Hi Jeff, > > From: Jeff Roberson > Date: Wed, 19 Feb 2020 08:17:27 +0000 (UTC) >> Author: jeff >> Date: Wed Feb 19 08:17:27 2020 >> New Revision: 358097 >> URL: https://svnweb.freebsd.org/changeset/base/358097 >> >> Log: >> Eliminate some unnecessary uses of UMA_ZONE_VM. Only zones involved in >> virtual address or physical page allocation need to be marked with this >> flag. >> >> Reviewed by: markj >> Tested by: pho >> Differential Revision: https://reviews.freebsd.org/D23712 >> >> Modified: >> head/sys/kern/subr_vmem.c >> head/sys/kern/vfs_subr.c >> head/sys/vm/swap_pager.c >> head/sys/vm/vm_page.c >> head/sys/vm/vm_pager.c >> >> Modified: head/sys/kern/subr_vmem.c >> ============================================================================== >> --- head/sys/kern/subr_vmem.c Wed Feb 19 08:15:20 2020 (r358096) >> +++ head/sys/kern/subr_vmem.c Wed Feb 19 08:17:27 2020 (r358097) >> @@ -561,8 +561,7 @@ qc_init(vmem_t *vm, vmem_size_t qcache_max) >> qc->qc_vmem = vm; >> qc->qc_size = size; >> qc->qc_cache = uma_zcache_create(qc->qc_name, size, >> - NULL, NULL, NULL, NULL, qc_import, qc_release, qc, >> - UMA_ZONE_VM); >> + NULL, NULL, NULL, NULL, qc_import, qc_release, qc, 0); >> MPASS(qc->qc_cache); >> } >> } >> @@ -668,10 +667,10 @@ vmem_startup(void) >> mtx_init(&vmem_list_lock, "vmem list lock", NULL, MTX_DEF); >> vmem_zone = uma_zcreate("vmem", >> sizeof(struct vmem), NULL, NULL, NULL, NULL, >> - UMA_ALIGN_PTR, UMA_ZONE_VM); >> + UMA_ALIGN_PTR, 0); >> vmem_bt_zone = uma_zcreate("vmem btag", >> sizeof(struct vmem_btag), NULL, NULL, NULL, NULL, >> - UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); >> + UMA_ALIGN_PTR, UMA_ZONE_VM); > > If I'm reading the message correctly, shouldn't the above line be like the following? > > + UMA_ALIGN_PTR, UMA_ZONE_NOFREE); In this case the commit message wasn't complete. There is no reason to mark the vmem btags as NOFREE because we can allocate them on the fly. There is a reason to mark them ZONE_VM however, because we need them to allocate virtual address space. Thanks, Jeff > > Regards, > Haro > =----------------------------------------------------------------------- > _ _ Munehiro (haro) Matsuda > -|- /_\ |_|_| Cybernet Systems Co., Ltd. > /|\ |_| |_|_| > > > From owner-svn-src-all@freebsd.org Fri Feb 21 01:39:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D36FA24D01D; Fri, 21 Feb 2020 01:39:52 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NvK41kYgz3Hrf; Fri, 21 Feb 2020 01:39:52 +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 C26BE30C4; Fri, 21 Feb 2020 01:39:51 +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 01L1dpc7059065; Fri, 21 Feb 2020 01:39:51 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L1dpW2059064; Fri, 21 Feb 2020 01:39:51 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202002210139.01L1dpW2059064@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 21 Feb 2020 01:39:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358189 - head/sys/security/audit X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/security/audit X-SVN-Commit-Revision: 358189 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 01:39:53 -0000 Author: mjg Date: Fri Feb 21 01:39:51 2020 New Revision: 358189 URL: https://svnweb.freebsd.org/changeset/base/358189 Log: audit: rely on use count instead of hold count in audit_canon_path Modified: head/sys/security/audit/audit_bsm_klib.c Modified: head/sys/security/audit/audit_bsm_klib.c ============================================================================== --- head/sys/security/audit/audit_bsm_klib.c Fri Feb 21 00:33:21 2020 (r358188) +++ head/sys/security/audit/audit_bsm_klib.c Fri Feb 21 01:39:51 2020 (r358189) @@ -443,7 +443,7 @@ audit_canon_path(struct thread *td, int dirfd, char *p */ if (fdp->fd_rdir != NULL && fdp->fd_rdir != rootvnode) { rvnp = fdp->fd_rdir; - vhold(rvnp); + vrefact(rvnp); } /* * If the supplied path is relative, make sure we capture the current @@ -453,19 +453,16 @@ audit_canon_path(struct thread *td, int dirfd, char *p if (*path != '/') { if (dirfd == AT_FDCWD) { cvnp = fdp->fd_cdir; - vhold(cvnp); + vrefact(cvnp); } else { - /* XXX: fgetvp() that vhold()s vnode instead of vref()ing it would be better */ error = fgetvp(td, dirfd, cap_rights_init(&rights), &cvnp); if (error) { FILEDESC_SUNLOCK(fdp); cpath[0] = '\0'; if (rvnp != NULL) - vdrop(rvnp); + vrele(rvnp); return; } - vhold(cvnp); - vrele(cvnp); } needslash = (fdp->fd_rdir != cvnp); } else { @@ -492,11 +489,11 @@ audit_canon_path(struct thread *td, int dirfd, char *p */ if (rvnp != NULL) { error = vn_fullpath_global(td, rvnp, &rbuf, &fbuf); - vdrop(rvnp); + vrele(rvnp); if (error) { cpath[0] = '\0'; if (cvnp != NULL) - vdrop(cvnp); + vrele(cvnp); return; } (void) sbuf_cat(&sbf, rbuf); @@ -504,7 +501,7 @@ audit_canon_path(struct thread *td, int dirfd, char *p } if (cvnp != NULL) { error = vn_fullpath(td, cvnp, &rbuf, &fbuf); - vdrop(cvnp); + vrele(cvnp); if (error) { cpath[0] = '\0'; return; From owner-svn-src-all@freebsd.org Fri Feb 21 01:40:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 045C924D0F3; Fri, 21 Feb 2020 01:40:22 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NvKd5GQjz3JjX; Fri, 21 Feb 2020 01:40:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5DEBA30C8; Fri, 21 Feb 2020 01:40:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L1eLMT059176; Fri, 21 Feb 2020 01:40:21 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L1eLah059175; Fri, 21 Feb 2020 01:40:21 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202002210140.01L1eLah059175@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 21 Feb 2020 01:40:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358190 - head/sys/security/audit X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/security/audit X-SVN-Commit-Revision: 358190 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 01:40:22 -0000 Author: mjg Date: Fri Feb 21 01:40:20 2020 New Revision: 358190 URL: https://svnweb.freebsd.org/changeset/base/358190 Log: audit: simplify path resolving logic Modified: head/sys/security/audit/audit_bsm_klib.c Modified: head/sys/security/audit/audit_bsm_klib.c ============================================================================== --- head/sys/security/audit/audit_bsm_klib.c Fri Feb 21 01:39:51 2020 (r358189) +++ head/sys/security/audit/audit_bsm_klib.c Fri Feb 21 01:40:20 2020 (r358190) @@ -423,50 +423,34 @@ auditon_command_event(int cmd) void audit_canon_path(struct thread *td, int dirfd, char *path, char *cpath) { - struct vnode *cvnp, *rvnp; + struct vnode *vp; char *rbuf, *fbuf, *copy; struct filedesc *fdp; struct sbuf sbf; cap_rights_t rights; - int error, needslash; + int error; WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "%s: at %s:%d", __func__, __FILE__, __LINE__); copy = path; - rvnp = cvnp = NULL; fdp = td->td_proc->p_fd; FILEDESC_SLOCK(fdp); - /* - * Make sure that we handle the chroot(2) case. If there is an - * alternate root directory, prepend it to the audited pathname. - */ - if (fdp->fd_rdir != NULL && fdp->fd_rdir != rootvnode) { - rvnp = fdp->fd_rdir; - vrefact(rvnp); - } - /* - * If the supplied path is relative, make sure we capture the current - * working directory so we can prepend it to the supplied relative - * path. - */ - if (*path != '/') { + if (*path == '/') { + vp = fdp->fd_rdir; + vrefact(vp); + } else { if (dirfd == AT_FDCWD) { - cvnp = fdp->fd_cdir; - vrefact(cvnp); + vp = fdp->fd_cdir; + vrefact(vp); } else { - error = fgetvp(td, dirfd, cap_rights_init(&rights), &cvnp); - if (error) { + error = fgetvp(td, dirfd, cap_rights_init(&rights), &vp); + if (error != 0) { FILEDESC_SUNLOCK(fdp); cpath[0] = '\0'; - if (rvnp != NULL) - vrele(rvnp); return; } } - needslash = (fdp->fd_rdir != cvnp); - } else { - needslash = 1; } FILEDESC_SUNLOCK(fdp); /* @@ -476,6 +460,8 @@ audit_canon_path(struct thread *td, int dirfd, char *p (void) sbuf_new(&sbf, cpath, MAXPATHLEN, SBUF_FIXEDLEN); /* * Strip leading forward slashes. + * + * Note this does nothing to fully canonicalize the path. */ while (*copy == '/') copy++; @@ -487,35 +473,26 @@ audit_canon_path(struct thread *td, int dirfd, char *p * on Darwin. As a result, this may need some additional attention * in the future. */ - if (rvnp != NULL) { - error = vn_fullpath_global(td, rvnp, &rbuf, &fbuf); - vrele(rvnp); - if (error) { - cpath[0] = '\0'; - if (cvnp != NULL) - vrele(cvnp); - return; - } - (void) sbuf_cat(&sbf, rbuf); - free(fbuf, M_TEMP); + error = vn_fullpath_global(td, vp, &rbuf, &fbuf); + vrele(vp); + if (error) { + cpath[0] = '\0'; + return; } - if (cvnp != NULL) { - error = vn_fullpath(td, cvnp, &rbuf, &fbuf); - vrele(cvnp); - if (error) { - cpath[0] = '\0'; - return; - } - (void) sbuf_cat(&sbf, rbuf); - free(fbuf, M_TEMP); - } - if (needslash) + (void) sbuf_cat(&sbf, rbuf); + /* + * We are going to concatenate the resolved path with the passed path + * with all slashes removed and we want them glued with a single slash. + * However, if the directory is /, the slash is already there. + */ + if (rbuf[1] != '\0') (void) sbuf_putc(&sbf, '/'); + free(fbuf, M_TEMP); /* * Now that we have processed any alternate root and relative path * names, add the supplied pathname. */ - (void) sbuf_cat(&sbf, copy); + (void) sbuf_cat(&sbf, copy); /* * One or more of the previous sbuf operations could have resulted in * the supplied buffer being overflowed. Check to see if this is the From owner-svn-src-all@freebsd.org Fri Feb 21 01:40:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B848424D1FA; Fri, 21 Feb 2020 01:40:51 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NvLB3B7Fz3KXw; Fri, 21 Feb 2020 01:40:50 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4755130E6; Fri, 21 Feb 2020 01:40:50 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L1eoGl060182; Fri, 21 Feb 2020 01:40:50 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L1enQ3060179; Fri, 21 Feb 2020 01:40:49 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202002210140.01L1enQ3060179@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 21 Feb 2020 01:40:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358191 - head/sys/security/audit X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/security/audit X-SVN-Commit-Revision: 358191 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 01:40:51 -0000 Author: mjg Date: Fri Feb 21 01:40:49 2020 New Revision: 358191 URL: https://svnweb.freebsd.org/changeset/base/358191 Log: audit: provide audit_canon_path variant which accepts vnodes Modified: head/sys/security/audit/audit.h head/sys/security/audit/audit_arg.c head/sys/security/audit/audit_bsm_klib.c head/sys/security/audit/audit_private.h Modified: head/sys/security/audit/audit.h ============================================================================== --- head/sys/security/audit/audit.h Fri Feb 21 01:40:20 2020 (r358190) +++ head/sys/security/audit/audit.h Fri Feb 21 01:40:49 2020 (r358191) @@ -120,6 +120,10 @@ void audit_arg_upath1(struct thread *td, int dirfd, c void audit_arg_upath1_canon(char *upath); void audit_arg_upath2(struct thread *td, int dirfd, char *upath); void audit_arg_upath2_canon(char *upath); +void audit_arg_upath1_vp(struct thread *td, struct vnode *rdir, + struct vnode *cdir, char *upath); +void audit_arg_upath2_vp(struct thread *td, struct vnode *rdir, + struct vnode *cdir, char *upath); void audit_arg_vnode1(struct vnode *vp); void audit_arg_vnode2(struct vnode *vp); void audit_arg_text(const char *text); @@ -362,6 +366,16 @@ void audit_thread_free(struct thread *td); audit_arg_upath2_canon((upath)); \ } while (0) +#define AUDIT_ARG_UPATH1_VP(td, rdir, cdir, upath) do { \ + if (AUDITING_TD(curthread)) \ + audit_arg_upath1_vp((td), (rdir), (cdir), (upath)); \ +} while (0) + +#define AUDIT_ARG_UPATH2_VP(td, rdir, cdir, upath) do { \ + if (AUDITING_TD(curthread)) \ + audit_arg_upath2_vp((td), (rdir), (cdir), (upath)); \ +} while (0) + #define AUDIT_ARG_VALUE(value) do { \ if (AUDITING_TD(curthread)) \ audit_arg_value((value)); \ @@ -448,6 +462,8 @@ void audit_thread_free(struct thread *td); #define AUDIT_ARG_UPATH1_CANON(upath) #define AUDIT_ARG_UPATH2(td, dirfd, upath) #define AUDIT_ARG_UPATH2_CANON(upath) +#define AUDIT_ARG_UPATH1_VP(td, rdir, cdir, upath) +#define AUDIT_ARG_UPATH2_VP(td, rdir, cdir, upath) #define AUDIT_ARG_VALUE(value) #define AUDIT_ARG_VNODE1(vp) #define AUDIT_ARG_VNODE2(vp) Modified: head/sys/security/audit/audit_arg.c ============================================================================== --- head/sys/security/audit/audit_arg.c Fri Feb 21 01:40:20 2020 (r358190) +++ head/sys/security/audit/audit_arg.c Fri Feb 21 01:40:49 2020 (r358191) @@ -767,6 +767,44 @@ audit_arg_upath2(struct thread *td, int dirfd, char *u ARG_SET_VALID(ar, ARG_UPATH2); } +static void +audit_arg_upath_vp(struct thread *td, struct vnode *rdir, struct vnode *cdir, + char *upath, char **pathp) +{ + + if (*pathp == NULL) + *pathp = malloc(MAXPATHLEN, M_AUDITPATH, M_WAITOK); + audit_canon_path_vp(td, rdir, cdir, upath, *pathp); +} + +void +audit_arg_upath1_vp(struct thread *td, struct vnode *rdir, struct vnode *cdir, + char *upath) +{ + struct kaudit_record *ar; + + ar = currecord(); + if (ar == NULL) + return; + + audit_arg_upath_vp(td, rdir, cdir, upath, &ar->k_ar.ar_arg_upath1); + ARG_SET_VALID(ar, ARG_UPATH1); +} + +void +audit_arg_upath2_vp(struct thread *td, struct vnode *rdir, struct vnode *cdir, + char *upath) +{ + struct kaudit_record *ar; + + ar = currecord(); + if (ar == NULL) + return; + + audit_arg_upath_vp(td, rdir, cdir, upath, &ar->k_ar.ar_arg_upath2); + ARG_SET_VALID(ar, ARG_UPATH2); +} + /* * Variants on path auditing that do not canonicalise the path passed in; * these are for use with filesystem-like subsystems that employ string names, Modified: head/sys/security/audit/audit_bsm_klib.c ============================================================================== --- head/sys/security/audit/audit_bsm_klib.c Fri Feb 21 01:40:20 2020 (r358190) +++ head/sys/security/audit/audit_bsm_klib.c Fri Feb 21 01:40:49 2020 (r358191) @@ -421,38 +421,23 @@ auditon_command_event(int cmd) * leave the filename starting with '/' in the audit log in this case. */ void -audit_canon_path(struct thread *td, int dirfd, char *path, char *cpath) +audit_canon_path_vp(struct thread *td, struct vnode *rdir, struct vnode *cdir, + char *path, char *cpath) { struct vnode *vp; char *rbuf, *fbuf, *copy; - struct filedesc *fdp; struct sbuf sbf; - cap_rights_t rights; int error; WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "%s: at %s:%d", __func__, __FILE__, __LINE__); copy = path; - fdp = td->td_proc->p_fd; - FILEDESC_SLOCK(fdp); - if (*path == '/') { - vp = fdp->fd_rdir; - vrefact(vp); - } else { - if (dirfd == AT_FDCWD) { - vp = fdp->fd_cdir; - vrefact(vp); - } else { - error = fgetvp(td, dirfd, cap_rights_init(&rights), &vp); - if (error != 0) { - FILEDESC_SUNLOCK(fdp); - cpath[0] = '\0'; - return; - } - } - } - FILEDESC_SUNLOCK(fdp); + if (*path == '/') + vp = rdir; + else + vp = cdir; + MPASS(vp != NULL); /* * NB: We require that the supplied array be at least MAXPATHLEN bytes * long. If this is not the case, then we can run into serious trouble. @@ -474,7 +459,6 @@ audit_canon_path(struct thread *td, int dirfd, char *p * in the future. */ error = vn_fullpath_global(td, vp, &rbuf, &fbuf); - vrele(vp); if (error) { cpath[0] = '\0'; return; @@ -503,4 +487,44 @@ audit_canon_path(struct thread *td, int dirfd, char *p return; } sbuf_finish(&sbf); +} + +void +audit_canon_path(struct thread *td, int dirfd, char *path, char *cpath) +{ + struct vnode *cdir, *rdir; + struct filedesc *fdp; + cap_rights_t rights; + int error; + + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "%s: at %s:%d", + __func__, __FILE__, __LINE__); + + rdir = cdir = NULL; + fdp = td->td_proc->p_fd; + FILEDESC_SLOCK(fdp); + if (*path == '/') { + rdir = fdp->fd_rdir; + vrefact(rdir); + } else { + if (dirfd == AT_FDCWD) { + cdir = fdp->fd_cdir; + vrefact(cdir); + } else { + error = fgetvp(td, dirfd, cap_rights_init(&rights), &cdir); + if (error != 0) { + FILEDESC_SUNLOCK(fdp); + cpath[0] = '\0'; + return; + } + } + } + FILEDESC_SUNLOCK(fdp); + + audit_canon_path_vp(td, rdir, cdir, path, cpath); + + if (rdir != NULL) + vrele(rdir); + if (cdir != NULL) + vrele(cdir); } Modified: head/sys/security/audit/audit_private.h ============================================================================== --- head/sys/security/audit/audit_private.h Fri Feb 21 01:40:20 2020 (r358190) +++ head/sys/security/audit/audit_private.h Fri Feb 21 01:40:49 2020 (r358191) @@ -472,6 +472,8 @@ au_event_t audit_semsys_to_event(int which); au_event_t audit_shmsys_to_event(int which); void audit_canon_path(struct thread *td, int dirfd, char *path, char *cpath); +void audit_canon_path_vp(struct thread *td, struct vnode *rdir, + struct vnode *cdir, char *path, char *cpath); au_event_t auditon_command_event(int cmd); /* From owner-svn-src-all@freebsd.org Fri Feb 21 01:44:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B888524D4F7; Fri, 21 Feb 2020 01:44:31 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NvQR46dJz3x4d; Fri, 21 Feb 2020 01:44:31 +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 82C753291; Fri, 21 Feb 2020 01:44:31 +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 01L1iVJb065077; Fri, 21 Feb 2020 01:44:31 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L1iVF3065076; Fri, 21 Feb 2020 01:44:31 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202002210144.01L1iVF3065076@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 21 Feb 2020 01:44:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358192 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 358192 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 01:44:31 -0000 Author: mjg Date: Fri Feb 21 01:44:31 2020 New Revision: 358192 URL: https://svnweb.freebsd.org/changeset/base/358192 Log: vfs: stop duplicating vnode work in audit during path lookup Duplicating the work was putting an avoidable requirement that the filedesc lock is held across the entire operation (otherwise by the time audit reads vnode pointers another thread in the same process can chdir somewhere else, making audit log things using different vnode than the one which will be used for actual lookup). Do the obvious thing and pass down vnodes which will be used. Modified: head/sys/kern/vfs_lookup.c Modified: head/sys/kern/vfs_lookup.c ============================================================================== --- head/sys/kern/vfs_lookup.c Fri Feb 21 01:40:49 2020 (r358191) +++ head/sys/kern/vfs_lookup.c Fri Feb 21 01:44:31 2020 (r358192) @@ -403,14 +403,6 @@ namei(struct nameidata *ndp) ndp->ni_rootdir = fdp->fd_rdir; ndp->ni_topdir = fdp->fd_jdir; - /* - * If we are auditing the kernel pathname, save the user pathname. - */ - if (cnp->cn_flags & AUDITVNODE1) - AUDIT_ARG_UPATH1(td, ndp->ni_dirfd, cnp->cn_pnbuf); - if (cnp->cn_flags & AUDITVNODE2) - AUDIT_ARG_UPATH2(td, ndp->ni_dirfd, cnp->cn_pnbuf); - startdir_used = 0; dp = NULL; cnp->cn_nameptr = cnp->cn_pnbuf; @@ -505,6 +497,13 @@ namei(struct nameidata *ndp) ndp->ni_lcf |= NI_LCF_LATCH; } FILEDESC_SUNLOCK(fdp); + /* + * If we are auditing the kernel pathname, save the user pathname. + */ + if (cnp->cn_flags & AUDITVNODE1) + AUDIT_ARG_UPATH1_VP(td, ndp->ni_rootdir, dp, cnp->cn_pnbuf); + if (cnp->cn_flags & AUDITVNODE2) + AUDIT_ARG_UPATH2_VP(td, ndp->ni_rootdir, dp, cnp->cn_pnbuf); if (ndp->ni_startdir != NULL && !startdir_used) vrele(ndp->ni_startdir); if (error != 0) { From owner-svn-src-all@freebsd.org Fri Feb 21 04:10:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 84DA424FB40; Fri, 21 Feb 2020 04:10:42 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nyg62jFQz3G9k; Fri, 21 Feb 2020 04:10:42 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 54B014F5A; Fri, 21 Feb 2020 04:10:42 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L4Agru050779; Fri, 21 Feb 2020 04:10:42 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4Aguf050778; Fri, 21 Feb 2020 04:10:42 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202002210410.01L4Aguf050778@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Fri, 21 Feb 2020 04:10:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358193 - head/sys/netgraph X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netgraph X-SVN-Commit-Revision: 358193 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:10:42 -0000 Author: glebius Date: Fri Feb 21 04:10:41 2020 New Revision: 358193 URL: https://svnweb.freebsd.org/changeset/base/358193 Log: Revert one half of previous change r357558. Don't enter the epoch on sends to control socket. Control socket messages can run constructors of nodes and other stuff that is allowed to M_WAITOK. PR: 244241 Modified: head/sys/netgraph/ng_socket.c Modified: head/sys/netgraph/ng_socket.c ============================================================================== --- head/sys/netgraph/ng_socket.c Fri Feb 21 01:44:31 2020 (r358192) +++ head/sys/netgraph/ng_socket.c Fri Feb 21 04:10:41 2020 (r358193) @@ -219,7 +219,6 @@ static int ngc_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr, struct mbuf *control, struct thread *td) { - struct epoch_tracker et; struct ngpcb *const pcbp = sotongpcb(so); struct ngsock *const priv = NG_NODE_PRIVATE(pcbp->sockdata->node); struct sockaddr_ng *const sap = (struct sockaddr_ng *) addr; @@ -338,9 +337,7 @@ ngc_send(struct socket *so, int flags, struct mbuf *m, item->apply = &apply; priv->error = -1; - NET_EPOCH_ENTER(et); error = ng_snd_item(item, 0); - NET_EPOCH_EXIT(et); mtx_lock(&priv->mtx); if (priv->error == -1) From owner-svn-src-all@freebsd.org Fri Feb 21 04:18:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7D15C250014; Fri, 21 Feb 2020 04:18:16 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nyqq6k1hz3x60; Fri, 21 Feb 2020 04:18:15 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CB7E9511A; Fri, 21 Feb 2020 04:18:15 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L4IFfR056537; Fri, 21 Feb 2020 04:18:15 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4IFMs056536; Fri, 21 Feb 2020 04:18:15 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202002210418.01L4IFMs056536@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Fri, 21 Feb 2020 04:18:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358194 - head/sys/netgraph X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netgraph X-SVN-Commit-Revision: 358194 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:18:16 -0000 Author: glebius Date: Fri Feb 21 04:18:15 2020 New Revision: 358194 URL: https://svnweb.freebsd.org/changeset/base/358194 Log: Rework second part of r357558. Unroll the macro and allocate memory in sleepable manner before entering the epoch for the send. Modified: head/sys/netgraph/ng_socket.c Modified: head/sys/netgraph/ng_socket.c ============================================================================== --- head/sys/netgraph/ng_socket.c Fri Feb 21 04:10:41 2020 (r358193) +++ head/sys/netgraph/ng_socket.c Fri Feb 21 04:18:15 2020 (r358194) @@ -410,6 +410,7 @@ ngd_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr_ng *const sap = (struct sockaddr_ng *) addr; int len, error; hook_p hook = NULL; + item_p item; char hookname[NG_HOOKSIZ]; if ((pcbp == NULL) || (control != NULL)) { @@ -462,8 +463,10 @@ ngd_send(struct socket *so, int flags, struct mbuf *m, } /* Send data. */ + item = ng_package_data(m, NG_WAITOK); + m = NULL; NET_EPOCH_ENTER(et); - NG_SEND_DATA_FLAGS(error, hook, m, NG_WAITOK); + NG_FWD_ITEM_HOOK(error, item, hook); NET_EPOCH_EXIT(et); release: From owner-svn-src-all@freebsd.org Fri Feb 21 04:20:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 79AD5250187; Fri, 21 Feb 2020 04:20:11 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nyt31h2Rz3yVQ; Fri, 21 Feb 2020 04:20:11 +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 186315123; Fri, 21 Feb 2020 04:20:11 +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 01L4KADd056706; Fri, 21 Feb 2020 04:20:10 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4KAGt056705; Fri, 21 Feb 2020 04:20:10 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002210420.01L4KAGt056705@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 21 Feb 2020 04:20:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358195 - in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Group: stable-11 X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358195 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:20:11 -0000 Author: cy Date: Fri Feb 21 04:20:10 2020 New Revision: 358195 URL: https://svnweb.freebsd.org/changeset/base/358195 Log: MFC r358068: Add missing SYNOPSIS section. Reported by: ports/textproc/igor Modified: stable/11/lib/libpam/modules/pam_login_access/login.access.5 Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/lib/libpam/modules/pam_login_access/login.access.5 Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/libpam/modules/pam_login_access/login.access.5 ============================================================================== --- stable/11/lib/libpam/modules/pam_login_access/login.access.5 Fri Feb 21 04:18:15 2020 (r358194) +++ stable/11/lib/libpam/modules/pam_login_access/login.access.5 Fri Feb 21 04:20:10 2020 (r358195) @@ -1,12 +1,14 @@ .\" .\" $FreeBSD$ .\" -.Dd May 7, 2019 +.Dd January 27, 2020 .Dt LOGIN.ACCESS 5 .Os .Sh NAME .Nm login.access .Nd login access control table +.Sh SYNOPSIS +.Pa /etc/login.access .Sh DESCRIPTION The .Nm From owner-svn-src-all@freebsd.org Fri Feb 21 04:20:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 85F8C250199; Fri, 21 Feb 2020 04:20:12 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nyt3580vz3yW0; Fri, 21 Feb 2020 04:20:11 +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 6C98F5124; Fri, 21 Feb 2020 04:20:11 +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 01L4KBbX056712; Fri, 21 Feb 2020 04:20:11 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4KBo7056711; Fri, 21 Feb 2020 04:20:11 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002210420.01L4KBo7056711@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 21 Feb 2020 04:20:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358195 - in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Group: stable-12 X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358195 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:20:12 -0000 Author: cy Date: Fri Feb 21 04:20:10 2020 New Revision: 358195 URL: https://svnweb.freebsd.org/changeset/base/358195 Log: MFC r358068: Add missing SYNOPSIS section. Reported by: ports/textproc/igor Modified: stable/12/lib/libpam/modules/pam_login_access/login.access.5 Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libpam/modules/pam_login_access/login.access.5 Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libpam/modules/pam_login_access/login.access.5 ============================================================================== --- stable/12/lib/libpam/modules/pam_login_access/login.access.5 Fri Feb 21 04:18:15 2020 (r358194) +++ stable/12/lib/libpam/modules/pam_login_access/login.access.5 Fri Feb 21 04:20:10 2020 (r358195) @@ -1,12 +1,14 @@ .\" .\" $FreeBSD$ .\" -.Dd May 7, 2019 +.Dd January 27, 2020 .Dt LOGIN.ACCESS 5 .Os .Sh NAME .Nm login.access .Nd login access control table +.Sh SYNOPSIS +.Pa /etc/login.access .Sh DESCRIPTION The .Nm From owner-svn-src-all@freebsd.org Fri Feb 21 04:22:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BB9D9250579; Fri, 21 Feb 2020 04:22:31 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nywk28nZz41Vq; Fri, 21 Feb 2020 04:22:30 +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 39C3E52DC; Fri, 21 Feb 2020 04:22:30 +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 01L4MUnI062037; Fri, 21 Feb 2020 04:22:30 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4MUYX062036; Fri, 21 Feb 2020 04:22:30 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002210422.01L4MUYX062036@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 21 Feb 2020 04:22:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358196 - in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Group: stable-12 X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358196 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:22:32 -0000 Author: cy Date: Fri Feb 21 04:22:29 2020 New Revision: 358196 URL: https://svnweb.freebsd.org/changeset/base/358196 Log: MFC r358067: There is no pam(8) man page, it is pam(3). Approved by: des (implicit, blanket) Modified: stable/12/lib/libpam/modules/pam_login_access/pam_login_access.8 Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libpam/modules/pam_login_access/pam_login_access.8 Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libpam/modules/pam_login_access/pam_login_access.8 ============================================================================== --- stable/12/lib/libpam/modules/pam_login_access/pam_login_access.8 Fri Feb 21 04:20:10 2020 (r358195) +++ stable/12/lib/libpam/modules/pam_login_access/pam_login_access.8 Fri Feb 21 04:22:29 2020 (r358196) @@ -69,9 +69,9 @@ remote host (in the case of a remote login), according restrictions listed in .Xr login.access 5 . .Sh SEE ALSO +.Xr pam 3 , .Xr login.access 5 , -.Xr pam.conf 5 , -.Xr pam 8 +.Xr pam.conf 5 .Sh AUTHORS The .Xr login.access 5 From owner-svn-src-all@freebsd.org Fri Feb 21 04:22:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BB1EA250578; Fri, 21 Feb 2020 04:22:31 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nywk1hGYz41Vb; Fri, 21 Feb 2020 04:22:30 +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 F1A9D52DB; Fri, 21 Feb 2020 04:22:29 +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 01L4MTWm062031; Fri, 21 Feb 2020 04:22:29 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4MTqt062030; Fri, 21 Feb 2020 04:22:29 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002210422.01L4MTqt062030@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 21 Feb 2020 04:22:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358196 - in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Group: stable-11 X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358196 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:22:32 -0000 Author: cy Date: Fri Feb 21 04:22:29 2020 New Revision: 358196 URL: https://svnweb.freebsd.org/changeset/base/358196 Log: MFC r358067: There is no pam(8) man page, it is pam(3). Approved by: des (implicit, blanket) Modified: stable/11/lib/libpam/modules/pam_login_access/pam_login_access.8 Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/lib/libpam/modules/pam_login_access/pam_login_access.8 Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/libpam/modules/pam_login_access/pam_login_access.8 ============================================================================== --- stable/11/lib/libpam/modules/pam_login_access/pam_login_access.8 Fri Feb 21 04:20:10 2020 (r358195) +++ stable/11/lib/libpam/modules/pam_login_access/pam_login_access.8 Fri Feb 21 04:22:29 2020 (r358196) @@ -69,9 +69,9 @@ remote host (in the case of a remote login), according restrictions listed in .Xr login.access 5 . .Sh SEE ALSO +.Xr pam 3 , .Xr login.access 5 , -.Xr pam.conf 5 , -.Xr pam 8 +.Xr pam.conf 5 .Sh AUTHORS The .Xr login.access 5 From owner-svn-src-all@freebsd.org Fri Feb 21 04:23:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 22596250844; Fri, 21 Feb 2020 04:23:55 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NyyM06xXz42hB; Fri, 21 Feb 2020 04:23:55 +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 ECB2C52E0; Fri, 21 Feb 2020 04:23:54 +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 01L4NsaL062167; Fri, 21 Feb 2020 04:23:54 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4NsAl062166; Fri, 21 Feb 2020 04:23:54 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002210423.01L4NsAl062166@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 21 Feb 2020 04:23:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358197 - in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Group: stable-12 X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358197 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:23:55 -0000 Author: cy Date: Fri Feb 21 04:23:54 2020 New Revision: 358197 URL: https://svnweb.freebsd.org/changeset/base/358197 Log: MFC r358069: strchr() returns a pointer not an int. Reported by: bjk Approved by: des (blanket, implicit) Modified: stable/12/lib/libpam/modules/pam_login_access/login_access.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libpam/modules/pam_login_access/login_access.c Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libpam/modules/pam_login_access/login_access.c ============================================================================== --- stable/12/lib/libpam/modules/pam_login_access/login_access.c Fri Feb 21 04:22:29 2020 (r358196) +++ stable/12/lib/libpam/modules/pam_login_access/login_access.c Fri Feb 21 04:23:54 2020 (r358197) @@ -220,7 +220,7 @@ from_match(const char *tok, const char *string) && strcasecmp(tok, string + str_len - tok_len) == 0) return (YES); } else if (strcasecmp(tok, "LOCAL") == 0) { /* local: no dots */ - if (strchr(string, '.') == 0) + if (strchr(string, '.') == NULL) return (YES); } else if (tok[(tok_len = strlen(tok)) - 1] == '.' /* network */ && strncmp(tok, string, tok_len) == 0) { From owner-svn-src-all@freebsd.org Fri Feb 21 04:23:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2B48E250845; Fri, 21 Feb 2020 04:23:55 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NyyM0Qhsz42hC; Fri, 21 Feb 2020 04:23:55 +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 0506F52E1; Fri, 21 Feb 2020 04:23:55 +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 01L4NsGA062161; Fri, 21 Feb 2020 04:23:54 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4Nswt062160; Fri, 21 Feb 2020 04:23:54 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202002210423.01L4Nswt062160@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Fri, 21 Feb 2020 04:23:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358197 - in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Group: stable-11 X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in stable: 11/lib/libpam/modules/pam_login_access 12/lib/libpam/modules/pam_login_access X-SVN-Commit-Revision: 358197 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:23:55 -0000 Author: cy Date: Fri Feb 21 04:23:54 2020 New Revision: 358197 URL: https://svnweb.freebsd.org/changeset/base/358197 Log: MFC r358069: strchr() returns a pointer not an int. Reported by: bjk Approved by: des (blanket, implicit) Modified: stable/11/lib/libpam/modules/pam_login_access/login_access.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/lib/libpam/modules/pam_login_access/login_access.c Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/libpam/modules/pam_login_access/login_access.c ============================================================================== --- stable/11/lib/libpam/modules/pam_login_access/login_access.c Fri Feb 21 04:22:29 2020 (r358196) +++ stable/11/lib/libpam/modules/pam_login_access/login_access.c Fri Feb 21 04:23:54 2020 (r358197) @@ -220,7 +220,7 @@ from_match(const char *tok, const char *string) && strcasecmp(tok, string + str_len - tok_len) == 0) return (YES); } else if (strcasecmp(tok, "LOCAL") == 0) { /* local: no dots */ - if (strchr(string, '.') == 0) + if (strchr(string, '.') == NULL) return (YES); } else if (tok[(tok_len = strlen(tok)) - 1] == '.' /* network */ && strncmp(tok, string, tok_len) == 0) { From owner-svn-src-all@freebsd.org Fri Feb 21 04:25:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 898682509DA; Fri, 21 Feb 2020 04:25:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nyzq6mQbz43YW; Fri, 21 Feb 2020 04:25:11 +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 8CBB652EA; Fri, 21 Feb 2020 04:25:11 +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 01L4PB4r062326; Fri, 21 Feb 2020 04:25:11 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4PB9Q062325; Fri, 21 Feb 2020 04:25:11 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210425.01L4PB9Q062325@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:25:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358198 - in stable: 11/stand/common 12/stand/common X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/common 12/stand/common X-SVN-Commit-Revision: 358198 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:25:12 -0000 Author: kevans Date: Fri Feb 21 04:25:10 2020 New Revision: 358198 URL: https://svnweb.freebsd.org/changeset/base/358198 Log: MFC r357827: lualoader: disable autoboot on high-level interpreter errors If we hit an error at this level, we are almost certainly not in any kind of sane state where autoboot can do the right thing. Instead of letting it try and probably failing, disable autoboot so they immediately get kicked into a loader prompt for manual remediation/diagnosis. Modified: stable/12/stand/common/interp_lua.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/stand/common/interp_lua.c Directory Properties: stable/11/ (props changed) Modified: stable/12/stand/common/interp_lua.c ============================================================================== --- stable/12/stand/common/interp_lua.c Fri Feb 21 04:23:54 2020 (r358197) +++ stable/12/stand/common/interp_lua.c Fri Feb 21 04:25:10 2020 (r358198) @@ -128,6 +128,7 @@ interp_init(void) errstr = errstr == NULL ? "unknown" : errstr; printf("Startup error in %s:\nLUA ERROR: %s.\n", filename, errstr); lua_pop(luap, 1); + setenv("autoboot_delay", "NO", 1); } } From owner-svn-src-all@freebsd.org Fri Feb 21 04:25:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DFEEC2509CE; Fri, 21 Feb 2020 04:25:11 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nyzq0W3mz43YJ; Fri, 21 Feb 2020 04:25:11 +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 ECC3452E9; Fri, 21 Feb 2020 04:25:10 +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 01L4PA9n062320; Fri, 21 Feb 2020 04:25:10 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4PAEB062319; Fri, 21 Feb 2020 04:25:10 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210425.01L4PAEB062319@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:25:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358198 - in stable: 11/stand/common 12/stand/common X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/common 12/stand/common X-SVN-Commit-Revision: 358198 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:25:12 -0000 Author: kevans Date: Fri Feb 21 04:25:10 2020 New Revision: 358198 URL: https://svnweb.freebsd.org/changeset/base/358198 Log: MFC r357827: lualoader: disable autoboot on high-level interpreter errors If we hit an error at this level, we are almost certainly not in any kind of sane state where autoboot can do the right thing. Instead of letting it try and probably failing, disable autoboot so they immediately get kicked into a loader prompt for manual remediation/diagnosis. Modified: stable/11/stand/common/interp_lua.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/stand/common/interp_lua.c Directory Properties: stable/12/ (props changed) Modified: stable/11/stand/common/interp_lua.c ============================================================================== --- stable/11/stand/common/interp_lua.c Fri Feb 21 04:23:54 2020 (r358197) +++ stable/11/stand/common/interp_lua.c Fri Feb 21 04:25:10 2020 (r358198) @@ -128,6 +128,7 @@ interp_init(void) errstr = errstr == NULL ? "unknown" : errstr; printf("Startup error in %s:\nLUA ERROR: %s.\n", filename, errstr); lua_pop(luap, 1); + setenv("autoboot_delay", "NO", 1); } } From owner-svn-src-all@freebsd.org Fri Feb 21 04:28:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 45CD0250CAD; Fri, 21 Feb 2020 04:28:43 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nz3t6MZGz46Kg; Fri, 21 Feb 2020 04:28:42 +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 B02F452F3; Fri, 21 Feb 2020 04:28:42 +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 01L4Sgdf062551; Fri, 21 Feb 2020 04:28:42 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4Sgf1062548; Fri, 21 Feb 2020 04:28:42 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202002210428.01L4Sgf1062548@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 21 Feb 2020 04:28:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358199 - stable/12/sys/dev/ahci X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/dev/ahci X-SVN-Commit-Revision: 358199 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:28:43 -0000 Author: mav Date: Fri Feb 21 04:28:42 2020 New Revision: 358199 URL: https://svnweb.freebsd.org/changeset/base/358199 Log: MFC r357919: Add Hygon PCI ID and description for AHCI SATA controller. Modified: stable/12/sys/dev/ahci/ahci_pci.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/ahci/ahci_pci.c ============================================================================== --- stable/12/sys/dev/ahci/ahci_pci.c Fri Feb 21 04:25:10 2020 (r358198) +++ stable/12/sys/dev/ahci/ahci_pci.c Fri Feb 21 04:28:42 2020 (r358199) @@ -90,6 +90,7 @@ static const struct { {0x06221b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, {0x06241b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, {0x06251b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, + {0x79011d94, 0x00, "Hygon KERNCZ", 0}, {0x26528086, 0x00, "Intel ICH6", AHCI_Q_NOFORCE}, {0x26538086, 0x00, "Intel ICH6M", AHCI_Q_NOFORCE}, {0x26818086, 0x00, "Intel ESB2", 0}, From owner-svn-src-all@freebsd.org Fri Feb 21 04:29:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 68C6D250D4E; Fri, 21 Feb 2020 04:29:09 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nz4P1mJGz46bp; Fri, 21 Feb 2020 04:29:09 +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 08A7F52F4; Fri, 21 Feb 2020 04:29:08 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L4T7gN062636; Fri, 21 Feb 2020 04:29:07 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4T7nI062635; Fri, 21 Feb 2020 04:29:07 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202002210429.01L4T7nI062635@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 21 Feb 2020 04:29:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358200 - stable/11/sys/dev/ahci X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/dev/ahci X-SVN-Commit-Revision: 358200 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:29:09 -0000 Author: mav Date: Fri Feb 21 04:29:07 2020 New Revision: 358200 URL: https://svnweb.freebsd.org/changeset/base/358200 Log: MFC r357919: Add Hygon PCI ID and description for AHCI SATA controller. Modified: stable/11/sys/dev/ahci/ahci_pci.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/ahci/ahci_pci.c ============================================================================== --- stable/11/sys/dev/ahci/ahci_pci.c Fri Feb 21 04:28:42 2020 (r358199) +++ stable/11/sys/dev/ahci/ahci_pci.c Fri Feb 21 04:29:07 2020 (r358200) @@ -90,6 +90,7 @@ static const struct { {0x06221b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, {0x06241b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, {0x06251b21, 0x00, "ASMedia ASM106x", AHCI_Q_NOCCS|AHCI_Q_NOAUX}, + {0x79011d94, 0x00, "Hygon KERNCZ", 0}, {0x26528086, 0x00, "Intel ICH6", AHCI_Q_NOFORCE}, {0x26538086, 0x00, "Intel ICH6M", AHCI_Q_NOFORCE}, {0x26818086, 0x00, "Intel ESB2", 0}, From owner-svn-src-all@freebsd.org Fri Feb 21 04:29:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 23B78250E3F; Fri, 21 Feb 2020 04:29:51 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nz5B73ttz474M; Fri, 21 Feb 2020 04:29:50 +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 E30CA52F6; Fri, 21 Feb 2020 04:29:50 +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 01L4TosI062720; Fri, 21 Feb 2020 04:29:50 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4ToDv062719; Fri, 21 Feb 2020 04:29:50 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202002210429.01L4ToDv062719@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 21 Feb 2020 04:29:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358201 - stable/12/sys/dev/ntb/ntb_hw X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/dev/ntb/ntb_hw X-SVN-Commit-Revision: 358201 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:29:51 -0000 Author: mav Date: Fri Feb 21 04:29:50 2020 New Revision: 358201 URL: https://svnweb.freebsd.org/changeset/base/358201 Log: MFC r357920: Add support for Hygon NTB PCI device in ntb_hw_amd driver. Modified: stable/12/sys/dev/ntb/ntb_hw/ntb_hw_amd.c stable/12/sys/dev/ntb/ntb_hw/ntb_hw_amd.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/ntb/ntb_hw/ntb_hw_amd.c ============================================================================== --- stable/12/sys/dev/ntb/ntb_hw/ntb_hw_amd.c Fri Feb 21 04:29:07 2020 (r358200) +++ stable/12/sys/dev/ntb/ntb_hw/ntb_hw_amd.c Fri Feb 21 04:29:50 2020 (r358201) @@ -101,6 +101,16 @@ static const struct amd_ntb_hw_info amd_ntb_hw_info_li .msix_vector_count = 24, .quirks = 0, .desc = "AMD Non-Transparent Bridge"}, + + { .vendor_id = NTB_HW_HYGON_VENDOR_ID, + .device_id = NTB_HW_HYGON_DEVICE_ID1, + .mw_count = 3, + .bar_start_idx = 1, + .spad_count = 16, + .db_count = 16, + .msix_vector_count = 24, + .quirks = QUIRK_MW0_32BIT, + .desc = "Hygon Non-Transparent Bridge"}, }; static const struct pci_device_table amd_ntb_devs[] = { @@ -109,7 +119,10 @@ static const struct pci_device_table amd_ntb_devs[] = PCI_DESCR("AMD Non-Transparent Bridge") }, { PCI_DEV(NTB_HW_AMD_VENDOR_ID, NTB_HW_AMD_DEVICE_ID2), .driver_data = (uintptr_t)&amd_ntb_hw_info_list[1], - PCI_DESCR("AMD Non-Transparent Bridge") } + PCI_DESCR("AMD Non-Transparent Bridge") }, + { PCI_DEV(NTB_HW_HYGON_VENDOR_ID, NTB_HW_HYGON_DEVICE_ID1), + .driver_data = (uintptr_t)&amd_ntb_hw_info_list[0], + PCI_DESCR("Hygon Non-Transparent Bridge") } }; static unsigned g_amd_ntb_hw_debug_level; Modified: stable/12/sys/dev/ntb/ntb_hw/ntb_hw_amd.h ============================================================================== --- stable/12/sys/dev/ntb/ntb_hw/ntb_hw_amd.h Fri Feb 21 04:29:07 2020 (r358200) +++ stable/12/sys/dev/ntb/ntb_hw/ntb_hw_amd.h Fri Feb 21 04:29:50 2020 (r358201) @@ -51,6 +51,9 @@ #define NTB_HW_AMD_DEVICE_ID1 0x145B #define NTB_HW_AMD_DEVICE_ID2 0x148B +#define NTB_HW_HYGON_VENDOR_ID 0x19D4 +#define NTB_HW_HYGON_DEVICE_ID1 0x145B + #define NTB_DEF_PEER_CNT 1 #define NTB_DEF_PEER_IDX 0 From owner-svn-src-all@freebsd.org Fri Feb 21 04:30:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E31D9250EE4; Fri, 21 Feb 2020 04:30:23 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nz5p63h6z47R2; Fri, 21 Feb 2020 04:30:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8487852FB; Fri, 21 Feb 2020 04:30:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L4UMI6062880; Fri, 21 Feb 2020 04:30:22 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4ULC4062872; Fri, 21 Feb 2020 04:30:21 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210430.01L4ULC4062872@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:30:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358202 - in stable: 11/sys/kern 11/sys/sys 12/sys/kern 12/sys/sys X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/kern 11/sys/sys 12/sys/kern 12/sys/sys X-SVN-Commit-Revision: 358202 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:30:24 -0000 Author: kevans Date: Fri Feb 21 04:30:21 2020 New Revision: 358202 URL: https://svnweb.freebsd.org/changeset/base/358202 Log: MFC r357899: u_char -> vm_prot_t in a couple of places, NFC The latter is a typedef of the former; the typedef exists and these bits are representing vmprot values, so use the correct type. Modified: stable/11/sys/kern/kern_descrip.c stable/11/sys/kern/sys_capability.c stable/11/sys/sys/capsicum.h stable/11/sys/sys/file.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/kern/kern_descrip.c stable/12/sys/kern/sys_capability.c stable/12/sys/sys/capsicum.h stable/12/sys/sys/file.h Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/kern/kern_descrip.c ============================================================================== --- stable/11/sys/kern/kern_descrip.c Fri Feb 21 04:29:50 2020 (r358201) +++ stable/11/sys/kern/kern_descrip.c Fri Feb 21 04:30:21 2020 (r358202) @@ -2684,7 +2684,7 @@ fget(struct thread *td, int fd, cap_rights_t *rightsp, } int -fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, u_char *maxprotp, +fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, vm_prot_t *maxprotp, struct file **fpp) { int error; Modified: stable/11/sys/kern/sys_capability.c ============================================================================== --- stable/11/sys/kern/sys_capability.c Fri Feb 21 04:29:50 2020 (r358201) +++ stable/11/sys/kern/sys_capability.c Fri Feb 21 04:30:21 2020 (r358202) @@ -178,10 +178,10 @@ cap_check(const cap_rights_t *havep, const cap_rights_ /* * Convert capability rights into VM access flags. */ -u_char +vm_prot_t cap_rights_to_vmprot(cap_rights_t *havep) { - u_char maxprot; + vm_prot_t maxprot; maxprot = VM_PROT_NONE; if (cap_rights_is_set(havep, CAP_MMAP_R)) Modified: stable/11/sys/sys/capsicum.h ============================================================================== --- stable/11/sys/sys/capsicum.h Fri Feb 21 04:29:50 2020 (r358201) +++ stable/11/sys/sys/capsicum.h Fri Feb 21 04:30:21 2020 (r358202) @@ -355,7 +355,7 @@ int cap_check(const cap_rights_t *havep, const cap_rig /* * Convert capability rights into VM access flags. */ -u_char cap_rights_to_vmprot(cap_rights_t *havep); +vm_prot_t cap_rights_to_vmprot(cap_rights_t *havep); /* * For the purposes of procstat(1) and similar tools, allow kern_descrip.c to Modified: stable/11/sys/sys/file.h ============================================================================== --- stable/11/sys/sys/file.h Fri Feb 21 04:29:50 2020 (r358201) +++ stable/11/sys/sys/file.h Fri Feb 21 04:30:21 2020 (r358202) @@ -232,7 +232,7 @@ extern volatile int openfiles; /* actual number of ope int fget(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp); int fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, - u_char *maxprotp, struct file **fpp); + vm_prot_t *maxprotp, struct file **fpp); int fget_read(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp); int fget_write(struct thread *td, int fd, cap_rights_t *rightsp, From owner-svn-src-all@freebsd.org Fri Feb 21 04:30:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B23B8250EEB; Fri, 21 Feb 2020 04:30:24 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nz5r05DZz47Rv; Fri, 21 Feb 2020 04:30:24 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 86F8652FC; Fri, 21 Feb 2020 04:30: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 01L4UNYX062889; Fri, 21 Feb 2020 04:30:23 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4UMA0062885; Fri, 21 Feb 2020 04:30:22 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210430.01L4UMA0062885@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:30:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358202 - in stable: 11/sys/kern 11/sys/sys 12/sys/kern 12/sys/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/kern 11/sys/sys 12/sys/kern 12/sys/sys X-SVN-Commit-Revision: 358202 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:30:24 -0000 Author: kevans Date: Fri Feb 21 04:30:21 2020 New Revision: 358202 URL: https://svnweb.freebsd.org/changeset/base/358202 Log: MFC r357899: u_char -> vm_prot_t in a couple of places, NFC The latter is a typedef of the former; the typedef exists and these bits are representing vmprot values, so use the correct type. Modified: stable/12/sys/kern/kern_descrip.c stable/12/sys/kern/sys_capability.c stable/12/sys/sys/capsicum.h stable/12/sys/sys/file.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/kern/kern_descrip.c stable/11/sys/kern/sys_capability.c stable/11/sys/sys/capsicum.h stable/11/sys/sys/file.h Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/kern/kern_descrip.c ============================================================================== --- stable/12/sys/kern/kern_descrip.c Fri Feb 21 04:29:50 2020 (r358201) +++ stable/12/sys/kern/kern_descrip.c Fri Feb 21 04:30:21 2020 (r358202) @@ -2792,7 +2792,7 @@ fget(struct thread *td, int fd, cap_rights_t *rightsp, } int -fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, u_char *maxprotp, +fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, vm_prot_t *maxprotp, struct file **fpp) { int error; Modified: stable/12/sys/kern/sys_capability.c ============================================================================== --- stable/12/sys/kern/sys_capability.c Fri Feb 21 04:29:50 2020 (r358201) +++ stable/12/sys/kern/sys_capability.c Fri Feb 21 04:30:21 2020 (r358202) @@ -182,10 +182,10 @@ cap_check(const cap_rights_t *havep, const cap_rights_ /* * Convert capability rights into VM access flags. */ -u_char +vm_prot_t cap_rights_to_vmprot(const cap_rights_t *havep) { - u_char maxprot; + vm_prot_t maxprot; maxprot = VM_PROT_NONE; if (cap_rights_is_set(havep, CAP_MMAP_R)) Modified: stable/12/sys/sys/capsicum.h ============================================================================== --- stable/12/sys/sys/capsicum.h Fri Feb 21 04:29:50 2020 (r358201) +++ stable/12/sys/sys/capsicum.h Fri Feb 21 04:30:21 2020 (r358202) @@ -465,7 +465,7 @@ int cap_check(const cap_rights_t *havep, const cap_rig /* * Convert capability rights into VM access flags. */ -u_char cap_rights_to_vmprot(const cap_rights_t *havep); +vm_prot_t cap_rights_to_vmprot(const cap_rights_t *havep); /* * For the purposes of procstat(1) and similar tools, allow kern_descrip.c to Modified: stable/12/sys/sys/file.h ============================================================================== --- stable/12/sys/sys/file.h Fri Feb 21 04:29:50 2020 (r358201) +++ stable/12/sys/sys/file.h Fri Feb 21 04:30:21 2020 (r358202) @@ -242,7 +242,7 @@ extern volatile int openfiles; /* actual number of ope int fget(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp); int fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, - u_char *maxprotp, struct file **fpp); + vm_prot_t *maxprotp, struct file **fpp); int fget_read(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp); int fget_write(struct thread *td, int fd, cap_rights_t *rightsp, From owner-svn-src-all@freebsd.org Fri Feb 21 04:31:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D627E251164; Fri, 21 Feb 2020 04:31:30 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nz764wFpz48G3; Fri, 21 Feb 2020 04:31: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 95C225358; Fri, 21 Feb 2020 04:31: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 01L4VUIQ067569; Fri, 21 Feb 2020 04:31:30 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4VULq067568; Fri, 21 Feb 2020 04:31:30 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210431.01L4VULq067568@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:31:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358203 - in stable: 11/contrib/ncurses/ncurses/base 12/contrib/ncurses/ncurses/base X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/contrib/ncurses/ncurses/base 12/contrib/ncurses/ncurses/base X-SVN-Commit-Revision: 358203 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:31:30 -0000 Author: kevans Date: Fri Feb 21 04:31:30 2020 New Revision: 358203 URL: https://svnweb.freebsd.org/changeset/base/358203 Log: MFC r357903: ncurses: correct check for gcc >= 5.0 The hack in question is intended to workaround seemingly bogus #line markers in cpp output. As far as I can tell, llvm cpp doesn't do this by default, so there's no reason to add -P. In our /bin/sh, the main incantation should be placed in a sub-shell in order to properly pipe the output to fgrep. The main motivation for this change is admittedly to stop emitting the noise about clang not being gcc in make -s buildworld Modified: stable/11/contrib/ncurses/ncurses/base/MKlib_gen.sh Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/contrib/ncurses/ncurses/base/MKlib_gen.sh Directory Properties: stable/12/ (props changed) Modified: stable/11/contrib/ncurses/ncurses/base/MKlib_gen.sh ============================================================================== --- stable/11/contrib/ncurses/ncurses/base/MKlib_gen.sh Fri Feb 21 04:30:21 2020 (r358202) +++ stable/11/contrib/ncurses/ncurses/base/MKlib_gen.sh Fri Feb 21 04:31:30 2020 (r358203) @@ -73,7 +73,7 @@ USE="$3" # determine if we are using gcc, and if so, what version because the proposed # solution uses a nonstandard option. PRG=`echo "$1" | $AWK '{ sub(/^[[:space:]]*/,""); sub(/[[:space:]].*$/, ""); print; }' || exit 0` -FSF=`"$PRG" --version 2>/dev/null || exit 0 | fgrep "Free Software Foundation" | head -n 1` +FSF=`("$PRG" --version 2>/dev/null || exit 0) | fgrep "Free Software Foundation" | head -n 1` ALL=`"$PRG" -dumpversion 2>/dev/null || exit 0` ONE=`echo "$ALL" | sed -e 's/\..*$//'` if test -n "$FSF" && test -n "$ALL" && test -n "$ONE" ; then From owner-svn-src-all@freebsd.org Fri Feb 21 04:31:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F1E43251171; Fri, 21 Feb 2020 04:31: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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nz770MdZz48GZ; Fri, 21 Feb 2020 04:31:31 +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 F0011535A; Fri, 21 Feb 2020 04:31: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 01L4VU5Y067575; Fri, 21 Feb 2020 04:31:30 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4VUNk067574; Fri, 21 Feb 2020 04:31:30 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210431.01L4VUNk067574@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:31:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358203 - in stable: 11/contrib/ncurses/ncurses/base 12/contrib/ncurses/ncurses/base X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/contrib/ncurses/ncurses/base 12/contrib/ncurses/ncurses/base X-SVN-Commit-Revision: 358203 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:31:32 -0000 Author: kevans Date: Fri Feb 21 04:31:30 2020 New Revision: 358203 URL: https://svnweb.freebsd.org/changeset/base/358203 Log: MFC r357903: ncurses: correct check for gcc >= 5.0 The hack in question is intended to workaround seemingly bogus #line markers in cpp output. As far as I can tell, llvm cpp doesn't do this by default, so there's no reason to add -P. In our /bin/sh, the main incantation should be placed in a sub-shell in order to properly pipe the output to fgrep. The main motivation for this change is admittedly to stop emitting the noise about clang not being gcc in make -s buildworld Modified: stable/12/contrib/ncurses/ncurses/base/MKlib_gen.sh Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/contrib/ncurses/ncurses/base/MKlib_gen.sh Directory Properties: stable/11/ (props changed) Modified: stable/12/contrib/ncurses/ncurses/base/MKlib_gen.sh ============================================================================== --- stable/12/contrib/ncurses/ncurses/base/MKlib_gen.sh Fri Feb 21 04:30:21 2020 (r358202) +++ stable/12/contrib/ncurses/ncurses/base/MKlib_gen.sh Fri Feb 21 04:31:30 2020 (r358203) @@ -73,7 +73,7 @@ USE="$3" # determine if we are using gcc, and if so, what version because the proposed # solution uses a nonstandard option. PRG=`echo "$1" | $AWK '{ sub(/^[[:space:]]*/,""); sub(/[[:space:]].*$/, ""); print; }' || exit 0` -FSF=`"$PRG" --version 2>/dev/null || exit 0 | fgrep "Free Software Foundation" | head -n 1` +FSF=`("$PRG" --version 2>/dev/null || exit 0) | fgrep "Free Software Foundation" | head -n 1` ALL=`"$PRG" -dumpversion 2>/dev/null || exit 0` ONE=`echo "$ALL" | sed -e 's/\..*$//'` if test -n "$FSF" && test -n "$ALL" && test -n "$ONE" ; then From owner-svn-src-all@freebsd.org Fri Feb 21 04:33:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BE9D2251294; Fri, 21 Feb 2020 04:33:15 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Nz974Xljz49tr; Fri, 21 Feb 2020 04:33:15 +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 6D04054D1; Fri, 21 Feb 2020 04:33:15 +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 01L4XFMZ068573; Fri, 21 Feb 2020 04:33:15 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4XELo068570; Fri, 21 Feb 2020 04:33:14 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202002210433.01L4XELo068570@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 21 Feb 2020 04:33:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358204 - in stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-SVN-Commit-Revision: 358204 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:33:15 -0000 Author: mav Date: Fri Feb 21 04:33:14 2020 New Revision: 358204 URL: https://svnweb.freebsd.org/changeset/base/358204 Log: MFC r357657: Remove duplicate dbufs accounting. Since AVL already has embedded element counter, use dn_dbufs_count only for dbufs not counted there (bonus buffers) and just add them. This removes two atomics per dbuf life cycle. According to profiler it reduces time spent by dbuf_destroy() inside bottlenecked dbuf_evict_thread() from 13.36% to 9.20% of the core. This counter is used only on illumos, so for FreeBSD it was just a waste of time. Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Fri Feb 21 04:31:30 2020 (r358203) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Fri Feb 21 04:33:14 2020 (r358204) @@ -2375,7 +2375,6 @@ dbuf_destroy(dmu_buf_impl_t *db) if (needlock) mutex_enter(&dn->dn_dbufs_mtx); avl_remove(&dn->dn_dbufs, db); - atomic_dec_32(&dn->dn_dbufs_count); membar_producer(); DB_DNODE_EXIT(db); if (needlock) @@ -2600,7 +2599,6 @@ dbuf_create(dnode_t *dn, uint8_t level, uint64_t blkid ASSERT(dn->dn_object == DMU_META_DNODE_OBJECT || zfs_refcount_count(&dn->dn_holds) > 0); (void) zfs_refcount_add(&dn->dn_holds, db); - atomic_inc_32(&dn->dn_dbufs_count); dprintf_dbuf(db, "db=%p\n", db); Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c Fri Feb 21 04:31:30 2020 (r358203) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c Fri Feb 21 04:33:14 2020 (r358204) @@ -998,7 +998,7 @@ dnode_move(void *buf, void *newbuf, size_t size, void */ refcount = zfs_refcount_count(&odn->dn_holds); ASSERT(refcount >= 0); - dbufs = odn->dn_dbufs_count; + dbufs = DN_DBUFS_COUNT(odn); /* We can't have more dbufs than dnode holds. */ ASSERT3U(dbufs, <=, refcount); @@ -1025,7 +1025,7 @@ dnode_move(void *buf, void *newbuf, size_t size, void list_link_replace(&odn->dn_link, &ndn->dn_link); /* If the dnode was safe to move, the refcount cannot have changed. */ ASSERT(refcount == zfs_refcount_count(&ndn->dn_holds)); - ASSERT(dbufs == ndn->dn_dbufs_count); + ASSERT(dbufs == DN_DBUFS_COUNT(ndn)); zrl_exit(&ndn->dn_handle->dnh_zrlock); /* handle has moved */ mutex_exit(&os->os_lock); Modified: stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h ============================================================================== --- stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h Fri Feb 21 04:31:30 2020 (r358203) +++ stable/12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h Fri Feb 21 04:33:14 2020 (r358204) @@ -346,6 +346,13 @@ struct dnode { }; /* + * Since AVL already has embedded element counter, use dn_dbufs_count + * only for dbufs not counted there (bonus buffers) and just add them. + */ +#define DN_DBUFS_COUNT(dn) ((dn)->dn_dbufs_count + \ + avl_numnodes(&(dn)->dn_dbufs)) + +/* * Adds a level of indirection between the dbuf and the dnode to avoid * iterating descendent dbufs in dnode_move(). Handles are not allocated * individually, but as an array of child dnodes in dnode_hold_impl(). From owner-svn-src-all@freebsd.org Fri Feb 21 04:34:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 03706251375; Fri, 21 Feb 2020 04:34:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NzC55FsGz4C6f; Fri, 21 Feb 2020 04:34:55 +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 91EAF54D3; Fri, 21 Feb 2020 04:34:55 +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 01L4YtSX068714; Fri, 21 Feb 2020 04:34:55 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4Yt7n068711; Fri, 21 Feb 2020 04:34:55 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210434.01L4Yt7n068711@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:34:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358205 - in stable: 11/usr.bin/dtc 12/usr.bin/dtc X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.bin/dtc 12/usr.bin/dtc X-SVN-Commit-Revision: 358205 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:34:58 -0000 Author: kevans Date: Fri Feb 21 04:34:54 2020 New Revision: 358205 URL: https://svnweb.freebsd.org/changeset/base/358205 Log: MFC r357923-r357924: dtc fixes for /memreserve/ and -I/-O defaults r357923: Pull in latest fixes from dtc, up to 0060471 This includes a small battery of /memreserve/ fixes to make sure dtc is properly writing these regions into the output file and reading them back out. As of this update, dtc will now also assume common defaults for -I/-O if only one is specified; namely, dts for one implies dtb for the other and vice versa (Requested by: jhibbits, preserves GPL dtc behavior too). r357924: dtc: re-apply r353961, r354115 I missed in final review of r357923's diff that these ones hadn't yet been sent upstream and inadvertently reverted them. =-( Re-apply now. Modified: stable/11/usr.bin/dtc/dtc.cc stable/11/usr.bin/dtc/fdt.cc stable/11/usr.bin/dtc/fdt.hh Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.bin/dtc/dtc.cc stable/12/usr.bin/dtc/fdt.cc stable/12/usr.bin/dtc/fdt.hh Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.bin/dtc/dtc.cc ============================================================================== --- stable/11/usr.bin/dtc/dtc.cc Fri Feb 21 04:33:14 2020 (r358204) +++ stable/11/usr.bin/dtc/dtc.cc Fri Feb 21 04:34:54 2020 (r358205) @@ -94,6 +94,8 @@ void version(const char* progname) } // Anonymous namespace using fdt::device_tree; +using fdt::tree_write_fn_ptr; +using fdt::tree_read_fn_ptr; int main(int argc, char **argv) @@ -104,8 +106,8 @@ main(int argc, char **argv) const char *in_file = "-"; FILE *depfile = 0; bool debug_mode = false; - auto write_fn = &device_tree::write_binary; - auto read_fn = &device_tree::parse_dts; + tree_write_fn_ptr write_fn = nullptr; + tree_read_fn_ptr read_fn = nullptr; uint32_t boot_cpu = 0; bool boot_cpu_specified = false; bool keep_going = false; @@ -135,6 +137,10 @@ main(int argc, char **argv) if (arg == "dtb") { read_fn = &device_tree::parse_dtb; + if (write_fn == nullptr) + { + write_fn = &device_tree::write_dts; + } } else if (arg == "dts") { @@ -161,6 +167,10 @@ main(int argc, char **argv) else if (arg == "dts") { write_fn = &device_tree::write_dts; + if (read_fn == nullptr) + { + read_fn = &device_tree::parse_dtb; + } } else { @@ -297,6 +307,14 @@ main(int argc, char **argv) fprintf(stderr, "Unknown option %c\n", ch); return EXIT_FAILURE; } + } + if (read_fn == nullptr) + { + read_fn = &device_tree::parse_dts; + } + if (write_fn == nullptr) + { + write_fn = &device_tree::write_binary; } if (optind < argc) { Modified: stable/11/usr.bin/dtc/fdt.cc ============================================================================== --- stable/11/usr.bin/dtc/fdt.cc Fri Feb 21 04:33:14 2020 (r358204) +++ stable/11/usr.bin/dtc/fdt.cc Fri Feb 21 04:34:54 2020 (r358205) @@ -1589,9 +1589,12 @@ device_tree::parse_file(text_input_buffer &input, { input.parse_error("Expected size on /memreserve/ node."); } + else + { + reservations.push_back(reservation(start, len)); + } input.next_token(); input.consume(';'); - reservations.push_back(reservation(start, len)); input.next_token(); } while (valid && !input.finished()) @@ -1661,7 +1664,7 @@ device_tree::write(int fd) reservation_writer.write_comment(string("Reservation start")); reservation_writer.write_data(i.first); reservation_writer.write_comment(string("Reservation length")); - reservation_writer.write_data(i.first); + reservation_writer.write_data(i.second); } // Write n spare reserve map entries, plus the trailing 0. for (uint32_t i=0 ; i<=spare_reserve_map_entries ; i++) @@ -1747,10 +1750,11 @@ device_tree::write_dts(int fd) if (!reservations.empty()) { const char msg[] = "/memreserve/"; - fwrite(msg, sizeof(msg), 1, file); + // Exclude the null byte when we're writing it out to the file. + fwrite(msg, sizeof(msg) - 1, 1, file); for (auto &i : reservations) { - fprintf(file, " %" PRIx64 " %" PRIx64, i.first, i.second); + fprintf(file, " 0x%" PRIx64 " 0x%" PRIx64, i.first, i.second); } fputs(";\n\n", file); } @@ -1793,6 +1797,10 @@ device_tree::parse_dtb(const string &fn, FILE *) fprintf(stderr, "Failed to read memory reservation table\n"); valid = false; return; + } + if (start != 0 || length != 0) + { + reservations.push_back(reservation(start, length)); } } while (!((start == 0) && (length == 0))); input_buffer struct_table = Modified: stable/11/usr.bin/dtc/fdt.hh ============================================================================== --- stable/11/usr.bin/dtc/fdt.hh Fri Feb 21 04:33:14 2020 (r358204) +++ stable/11/usr.bin/dtc/fdt.hh Fri Feb 21 04:34:54 2020 (r358205) @@ -58,6 +58,14 @@ class property; class node; class device_tree; /** + * Type for device tree write functions. + */ +typedef void (device_tree::* tree_write_fn_ptr)(int); +/** + * Type for device tree read functions. + */ +typedef void (device_tree::* tree_read_fn_ptr)(const std::string &, FILE *); +/** * Type for (owned) pointers to properties. */ typedef std::shared_ptr property_ptr; From owner-svn-src-all@freebsd.org Fri Feb 21 04:34:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6AACF251383; Fri, 21 Feb 2020 04:34:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NzC56MGkz4C74; Fri, 21 Feb 2020 04:34:57 +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 5BC2354D4; Fri, 21 Feb 2020 04:34:56 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L4Yuqh068724; Fri, 21 Feb 2020 04:34:56 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4Ytuf068719; Fri, 21 Feb 2020 04:34:55 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210434.01L4Ytuf068719@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:34:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358205 - in stable: 11/usr.bin/dtc 12/usr.bin/dtc X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.bin/dtc 12/usr.bin/dtc X-SVN-Commit-Revision: 358205 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:34:58 -0000 Author: kevans Date: Fri Feb 21 04:34:54 2020 New Revision: 358205 URL: https://svnweb.freebsd.org/changeset/base/358205 Log: MFC r357923-r357924: dtc fixes for /memreserve/ and -I/-O defaults r357923: Pull in latest fixes from dtc, up to 0060471 This includes a small battery of /memreserve/ fixes to make sure dtc is properly writing these regions into the output file and reading them back out. As of this update, dtc will now also assume common defaults for -I/-O if only one is specified; namely, dts for one implies dtb for the other and vice versa (Requested by: jhibbits, preserves GPL dtc behavior too). r357924: dtc: re-apply r353961, r354115 I missed in final review of r357923's diff that these ones hadn't yet been sent upstream and inadvertently reverted them. =-( Re-apply now. Modified: stable/12/usr.bin/dtc/dtc.cc stable/12/usr.bin/dtc/fdt.cc stable/12/usr.bin/dtc/fdt.hh Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.bin/dtc/dtc.cc stable/11/usr.bin/dtc/fdt.cc stable/11/usr.bin/dtc/fdt.hh Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.bin/dtc/dtc.cc ============================================================================== --- stable/12/usr.bin/dtc/dtc.cc Fri Feb 21 04:33:14 2020 (r358204) +++ stable/12/usr.bin/dtc/dtc.cc Fri Feb 21 04:34:54 2020 (r358205) @@ -94,6 +94,8 @@ void version(const char* progname) } // Anonymous namespace using fdt::device_tree; +using fdt::tree_write_fn_ptr; +using fdt::tree_read_fn_ptr; int main(int argc, char **argv) @@ -104,8 +106,8 @@ main(int argc, char **argv) const char *in_file = "-"; FILE *depfile = 0; bool debug_mode = false; - auto write_fn = &device_tree::write_binary; - auto read_fn = &device_tree::parse_dts; + tree_write_fn_ptr write_fn = nullptr; + tree_read_fn_ptr read_fn = nullptr; uint32_t boot_cpu = 0; bool boot_cpu_specified = false; bool keep_going = false; @@ -135,6 +137,10 @@ main(int argc, char **argv) if (arg == "dtb") { read_fn = &device_tree::parse_dtb; + if (write_fn == nullptr) + { + write_fn = &device_tree::write_dts; + } } else if (arg == "dts") { @@ -161,6 +167,10 @@ main(int argc, char **argv) else if (arg == "dts") { write_fn = &device_tree::write_dts; + if (read_fn == nullptr) + { + read_fn = &device_tree::parse_dtb; + } } else { @@ -297,6 +307,14 @@ main(int argc, char **argv) fprintf(stderr, "Unknown option %c\n", ch); return EXIT_FAILURE; } + } + if (read_fn == nullptr) + { + read_fn = &device_tree::parse_dts; + } + if (write_fn == nullptr) + { + write_fn = &device_tree::write_binary; } if (optind < argc) { Modified: stable/12/usr.bin/dtc/fdt.cc ============================================================================== --- stable/12/usr.bin/dtc/fdt.cc Fri Feb 21 04:33:14 2020 (r358204) +++ stable/12/usr.bin/dtc/fdt.cc Fri Feb 21 04:34:54 2020 (r358205) @@ -1589,9 +1589,12 @@ device_tree::parse_file(text_input_buffer &input, { input.parse_error("Expected size on /memreserve/ node."); } + else + { + reservations.push_back(reservation(start, len)); + } input.next_token(); input.consume(';'); - reservations.push_back(reservation(start, len)); input.next_token(); } while (valid && !input.finished()) @@ -1661,7 +1664,7 @@ device_tree::write(int fd) reservation_writer.write_comment(string("Reservation start")); reservation_writer.write_data(i.first); reservation_writer.write_comment(string("Reservation length")); - reservation_writer.write_data(i.first); + reservation_writer.write_data(i.second); } // Write n spare reserve map entries, plus the trailing 0. for (uint32_t i=0 ; i<=spare_reserve_map_entries ; i++) @@ -1747,10 +1750,11 @@ device_tree::write_dts(int fd) if (!reservations.empty()) { const char msg[] = "/memreserve/"; - fwrite(msg, sizeof(msg), 1, file); + // Exclude the null byte when we're writing it out to the file. + fwrite(msg, sizeof(msg) - 1, 1, file); for (auto &i : reservations) { - fprintf(file, " %" PRIx64 " %" PRIx64, i.first, i.second); + fprintf(file, " 0x%" PRIx64 " 0x%" PRIx64, i.first, i.second); } fputs(";\n\n", file); } @@ -1793,6 +1797,10 @@ device_tree::parse_dtb(const string &fn, FILE *) fprintf(stderr, "Failed to read memory reservation table\n"); valid = false; return; + } + if (start != 0 || length != 0) + { + reservations.push_back(reservation(start, length)); } } while (!((start == 0) && (length == 0))); input_buffer struct_table = Modified: stable/12/usr.bin/dtc/fdt.hh ============================================================================== --- stable/12/usr.bin/dtc/fdt.hh Fri Feb 21 04:33:14 2020 (r358204) +++ stable/12/usr.bin/dtc/fdt.hh Fri Feb 21 04:34:54 2020 (r358205) @@ -58,6 +58,14 @@ class property; class node; class device_tree; /** + * Type for device tree write functions. + */ +typedef void (device_tree::* tree_write_fn_ptr)(int); +/** + * Type for device tree read functions. + */ +typedef void (device_tree::* tree_read_fn_ptr)(const std::string &, FILE *); +/** * Type for (owned) pointers to properties. */ typedef std::shared_ptr property_ptr; From owner-svn-src-all@freebsd.org Fri Feb 21 04:39:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 861E62518E0; Fri, 21 Feb 2020 04:39:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NzHm22ndz4HQJ; Fri, 21 Feb 2020 04:39:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 213E354DB; Fri, 21 Feb 2020 04:39:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L4cxDE068984; Fri, 21 Feb 2020 04:38:59 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4cxhk068983; Fri, 21 Feb 2020 04:38:59 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210438.01L4cxhk068983@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:38:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358206 - in stable: 11/usr.bin/dtc 12/usr.bin/dtc X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.bin/dtc 12/usr.bin/dtc X-SVN-Commit-Revision: 358206 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:39:00 -0000 Author: kevans Date: Fri Feb 21 04:38:59 2020 New Revision: 358206 URL: https://svnweb.freebsd.org/changeset/base/358206 Log: MFC r347445, r353961: dtc build issues r347445: Fix build issue with clang 8.0.1 The algorithm header is needed to use std::remove_if r353961: exit requires stdlib.h to be included to use. FreeBSD 10.3 requires this, and dtc is a bootstrap tool so it needs to compile there. Modified: stable/11/usr.bin/dtc/dtb.cc stable/11/usr.bin/dtc/fdt.hh Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.bin/dtc/dtb.cc stable/12/usr.bin/dtc/fdt.hh Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.bin/dtc/dtb.cc ============================================================================== --- stable/11/usr.bin/dtc/dtb.cc Fri Feb 21 04:34:54 2020 (r358205) +++ stable/11/usr.bin/dtc/dtb.cc Fri Feb 21 04:38:59 2020 (r358206) @@ -36,6 +36,7 @@ #include #include #include +#include #include #include Modified: stable/11/usr.bin/dtc/fdt.hh ============================================================================== --- stable/11/usr.bin/dtc/fdt.hh Fri Feb 21 04:34:54 2020 (r358205) +++ stable/11/usr.bin/dtc/fdt.hh Fri Feb 21 04:38:59 2020 (r358206) @@ -34,6 +34,7 @@ #ifndef _FDT_HH_ #define _FDT_HH_ +#include #include #include #include From owner-svn-src-all@freebsd.org Fri Feb 21 04:39:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E5F582518E7; Fri, 21 Feb 2020 04:39:01 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NzHm422Cz4HQk; Fri, 21 Feb 2020 04:39:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7739754DC; Fri, 21 Feb 2020 04:39:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L4d0rr068995; Fri, 21 Feb 2020 04:39:00 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4d0mZ068994; Fri, 21 Feb 2020 04:39:00 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210439.01L4d0mZ068994@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:39:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358206 - in stable: 11/usr.bin/dtc 12/usr.bin/dtc X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.bin/dtc 12/usr.bin/dtc X-SVN-Commit-Revision: 358206 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:39:02 -0000 Author: kevans Date: Fri Feb 21 04:38:59 2020 New Revision: 358206 URL: https://svnweb.freebsd.org/changeset/base/358206 Log: MFC r347445, r353961: dtc build issues r347445: Fix build issue with clang 8.0.1 The algorithm header is needed to use std::remove_if r353961: exit requires stdlib.h to be included to use. FreeBSD 10.3 requires this, and dtc is a bootstrap tool so it needs to compile there. Modified: stable/12/usr.bin/dtc/dtb.cc stable/12/usr.bin/dtc/fdt.hh Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.bin/dtc/dtb.cc stable/11/usr.bin/dtc/fdt.hh Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.bin/dtc/dtb.cc ============================================================================== --- stable/12/usr.bin/dtc/dtb.cc Fri Feb 21 04:34:54 2020 (r358205) +++ stable/12/usr.bin/dtc/dtb.cc Fri Feb 21 04:38:59 2020 (r358206) @@ -36,6 +36,7 @@ #include #include #include +#include #include #include Modified: stable/12/usr.bin/dtc/fdt.hh ============================================================================== --- stable/12/usr.bin/dtc/fdt.hh Fri Feb 21 04:34:54 2020 (r358205) +++ stable/12/usr.bin/dtc/fdt.hh Fri Feb 21 04:38:59 2020 (r358206) @@ -34,6 +34,7 @@ #ifndef _FDT_HH_ #define _FDT_HH_ +#include #include #include #include From owner-svn-src-all@freebsd.org Fri Feb 21 04:41:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F038B251A2A; Fri, 21 Feb 2020 04:41:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NzLV4YKFz4McT; Fri, 21 Feb 2020 04:41:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 873E3564F; Fri, 21 Feb 2020 04:41:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L4fMaJ070821; Fri, 21 Feb 2020 04:41:22 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4fMBa070820; Fri, 21 Feb 2020 04:41:22 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210441.01L4fMBa070820@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:41:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358207 - in stable: 11/sys/kern 12/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/kern 12/sys/kern X-SVN-Commit-Revision: 358207 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:41:23 -0000 Author: kevans Date: Fri Feb 21 04:41:22 2020 New Revision: 358207 URL: https://svnweb.freebsd.org/changeset/base/358207 Log: MFC r357840: sys/kern sysent: re-add dependency on capabilities.conf r356868 inadvertently removed this, so changes to capabilities.conf were no longer considered for being outdated. Modified: stable/11/sys/kern/Makefile Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/kern/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/kern/Makefile ============================================================================== --- stable/11/sys/kern/Makefile Fri Feb 21 04:38:59 2020 (r358206) +++ stable/11/sys/kern/Makefile Fri Feb 21 04:41:22 2020 (r358207) @@ -3,6 +3,7 @@ # # Makefile for init_sysent +SRCS+= capabilities.conf SYSENT_CONF= GENERATED= init_sysent.c \ syscalls.c \ From owner-svn-src-all@freebsd.org Fri Feb 21 04:41:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2B61C251A2F; Fri, 21 Feb 2020 04:41:23 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NzLV6jBjz4Md6; Fri, 21 Feb 2020 04:41:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D9A8E5650; Fri, 21 Feb 2020 04:41:22 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L4fMr2070827; Fri, 21 Feb 2020 04:41:22 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4fMw3070826; Fri, 21 Feb 2020 04:41:22 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210441.01L4fMw3070826@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:41:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358207 - in stable: 11/sys/kern 12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/kern 12/sys/kern X-SVN-Commit-Revision: 358207 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:41:23 -0000 Author: kevans Date: Fri Feb 21 04:41:22 2020 New Revision: 358207 URL: https://svnweb.freebsd.org/changeset/base/358207 Log: MFC r357840: sys/kern sysent: re-add dependency on capabilities.conf r356868 inadvertently removed this, so changes to capabilities.conf were no longer considered for being outdated. Modified: stable/12/sys/kern/Makefile Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/kern/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/kern/Makefile ============================================================================== --- stable/12/sys/kern/Makefile Fri Feb 21 04:38:59 2020 (r358206) +++ stable/12/sys/kern/Makefile Fri Feb 21 04:41:22 2020 (r358207) @@ -3,6 +3,7 @@ # # Makefile for init_sysent +SRCS+= capabilities.conf SYSENT_CONF= GENERATED= init_sysent.c \ syscalls.c \ From owner-svn-src-all@freebsd.org Fri Feb 21 04:42:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B81E4251D2A; Fri, 21 Feb 2020 04:42:17 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NzMY2mjnz4P7D; Fri, 21 Feb 2020 04:42:17 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1843D56A4; Fri, 21 Feb 2020 04:42:17 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L4gGcx074982; Fri, 21 Feb 2020 04:42:16 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4gGIU074981; Fri, 21 Feb 2020 04:42:16 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210442.01L4gGIU074981@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:42:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358208 - in stable: 11/stand/efi/loader 12/stand/efi/loader X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/efi/loader 12/stand/efi/loader X-SVN-Commit-Revision: 358208 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:42:17 -0000 Author: kevans Date: Fri Feb 21 04:42:16 2020 New Revision: 358208 URL: https://svnweb.freebsd.org/changeset/base/358208 Log: MFC r357845: efiloader: don't execute hooks when setting currdev/loaddev We still need to set the hooks to prevent improper manipulations thereafter at the loader prompt, but as it is we're actively preventing loaddev from being set correctly in some circumstances (ZFS in particular) and doing more work than needed with currdev -- that hook in particular validates it as a correct device, which we can assume isn't needed in this context. Modified: stable/12/stand/efi/loader/main.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/stand/efi/loader/main.c Directory Properties: stable/11/ (props changed) Modified: stable/12/stand/efi/loader/main.c ============================================================================== --- stable/12/stand/efi/loader/main.c Fri Feb 21 04:41:22 2020 (r358207) +++ stable/12/stand/efi/loader/main.c Fri Feb 21 04:42:16 2020 (r358208) @@ -180,8 +180,17 @@ static void set_currdev(const char *devname) { - env_setenv("currdev", EV_VOLATILE, devname, efi_setcurrdev, env_nounset); - env_setenv("loaddev", EV_VOLATILE, devname, env_noset, env_nounset); + /* + * Don't execute hooks here; we may need to try setting these more than + * once here if we're probing for the ZFS pool we're supposed to boot. + * The currdev hook is intended to just validate user input anyways, + * while the loaddev hook makes it immutable once we've determined what + * the proper currdev is. + */ + env_setenv("currdev", EV_VOLATILE | EV_NOHOOK, devname, efi_setcurrdev, + env_nounset); + env_setenv("loaddev", EV_VOLATILE | EV_NOHOOK, devname, env_noset, + env_nounset); } static void From owner-svn-src-all@freebsd.org Fri Feb 21 04:42:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B8198251D28; Fri, 21 Feb 2020 04:42:17 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NzMY2n1wz4P7F; Fri, 21 Feb 2020 04:42:17 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DA03A56A3; Fri, 21 Feb 2020 04:42:16 +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 01L4gGM1074976; Fri, 21 Feb 2020 04:42:16 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4gGVP074975; Fri, 21 Feb 2020 04:42:16 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002210442.01L4gGVP074975@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 04:42:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358208 - in stable: 11/stand/efi/loader 12/stand/efi/loader X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/efi/loader 12/stand/efi/loader X-SVN-Commit-Revision: 358208 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:42:18 -0000 Author: kevans Date: Fri Feb 21 04:42:16 2020 New Revision: 358208 URL: https://svnweb.freebsd.org/changeset/base/358208 Log: MFC r357845: efiloader: don't execute hooks when setting currdev/loaddev We still need to set the hooks to prevent improper manipulations thereafter at the loader prompt, but as it is we're actively preventing loaddev from being set correctly in some circumstances (ZFS in particular) and doing more work than needed with currdev -- that hook in particular validates it as a correct device, which we can assume isn't needed in this context. Modified: stable/11/stand/efi/loader/main.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/stand/efi/loader/main.c Directory Properties: stable/12/ (props changed) Modified: stable/11/stand/efi/loader/main.c ============================================================================== --- stable/11/stand/efi/loader/main.c Fri Feb 21 04:41:22 2020 (r358207) +++ stable/11/stand/efi/loader/main.c Fri Feb 21 04:42:16 2020 (r358208) @@ -169,8 +169,17 @@ static void set_currdev(const char *devname) { - env_setenv("currdev", EV_VOLATILE, devname, efi_setcurrdev, env_nounset); - env_setenv("loaddev", EV_VOLATILE, devname, env_noset, env_nounset); + /* + * Don't execute hooks here; we may need to try setting these more than + * once here if we're probing for the ZFS pool we're supposed to boot. + * The currdev hook is intended to just validate user input anyways, + * while the loaddev hook makes it immutable once we've determined what + * the proper currdev is. + */ + env_setenv("currdev", EV_VOLATILE | EV_NOHOOK, devname, efi_setcurrdev, + env_nounset); + env_setenv("loaddev", EV_VOLATILE | EV_NOHOOK, devname, env_noset, + env_nounset); } static void From owner-svn-src-all@freebsd.org Fri Feb 21 04:48:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E41A6251FCC; Fri, 21 Feb 2020 04:48:26 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48NzVf4B1vz4Yrh; Fri, 21 Feb 2020 04:48:26 +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 84EBC56C6; Fri, 21 Feb 2020 04:48:26 +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 01L4mQ3c075364; Fri, 21 Feb 2020 04:48:26 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L4mQPT075363; Fri, 21 Feb 2020 04:48:26 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <202002210448.01L4mQPT075363@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Fri, 21 Feb 2020 04:48:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358209 - stable/12/sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: pfg X-SVN-Commit-Paths: stable/12/sys/net X-SVN-Commit-Revision: 358209 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 04:48:27 -0000 Author: pfg Date: Fri Feb 21 04:48:25 2020 New Revision: 358209 URL: https://svnweb.freebsd.org/changeset/base/358209 Log: MFC r357414, r357415, r357417, r357423, r357424, r357587, r357655: ethernet: add some more Ethertypes. Add some types based on other BSDs and also add EtherCat, PROFINET, Powerlink and Sercos III which are IEC standards. There is a public list (CSV format) at: https://standards.ieee.org/products-services/regauth/ Spacing cleanups. No functional change. Modified: stable/12/sys/net/ethernet.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/net/ethernet.h ============================================================================== --- stable/12/sys/net/ethernet.h Fri Feb 21 04:42:16 2020 (r358208) +++ stable/12/sys/net/ethernet.h Fri Feb 21 04:48:25 2020 (r358209) @@ -6,7 +6,7 @@ */ #ifndef _NET_ETHERNET_H_ -#define _NET_ETHERNET_H_ +#define _NET_ETHERNET_H_ /* * Some basic Ethernet constants. @@ -95,6 +95,11 @@ struct ether_vlan_header { ((((((pri) & 7) << 1) | ((cfi) & 1)) << 12) | ((vlid) & EVL_VLID_MASK)) /* + * Ethernet protocol types. + * + * A public list is available from the IEEE Registration Authority: + * https://standards.ieee.org/products-services/regauth/ + * * NOTE: 0x0000-0x05DC (0..1500) are generally IEEE 802.3 length fields. * However, there are some conflicts. */ @@ -263,7 +268,7 @@ struct ether_vlan_header { #define ETHERTYPE_AARP 0x80F3 /* AppleTalk AARP */ /* 0x80F4 - 0x80F5 Kinetics */ #define ETHERTYPE_APOLLO 0x80F7 /* Apollo Computer */ -#define ETHERTYPE_VLAN 0x8100 /* IEEE 802.1Q VLAN tagging (XXX conflicts) */ +#define ETHERTYPE_VLAN 0x8100 /* IEEE 802.1Q VLAN tagging (XXX conflicts) */ /* 0x80FF - 0x8101 Wellfleet Communications (XXX conflicts) */ #define ETHERTYPE_BOFL 0x8102 /* Wellfleet; BOFL (Breath OF Life) pkts [every 5-10 secs.] */ #define ETHERTYPE_WELLFLEET 0x8103 /* Wellfleet Communications */ @@ -336,15 +341,24 @@ struct ether_vlan_header { #define ETHERTYPE_SLOW 0x8809 /* 802.3ad link aggregation (LACP) */ #define ETHERTYPE_PPP 0x880B /* PPP (obsolete by PPPoE) */ #define ETHERTYPE_HITACHI 0x8820 /* Hitachi Cable (Optoelectronic Systems Laboratory) */ -#define ETHERTYPE_TEST 0x8822 /* Network Conformance Testing */ +#define ETHERTYPE_TEST 0x8822 /* Network Conformance Testing */ #define ETHERTYPE_MPLS 0x8847 /* MPLS Unicast */ #define ETHERTYPE_MPLS_MCAST 0x8848 /* MPLS Multicast */ #define ETHERTYPE_AXIS 0x8856 /* Axis Communications AB proprietary bootstrap/config */ #define ETHERTYPE_PPPOEDISC 0x8863 /* PPP Over Ethernet Discovery Stage */ #define ETHERTYPE_PPPOE 0x8864 /* PPP Over Ethernet Session Stage */ #define ETHERTYPE_LANPROBE 0x8888 /* HP LanProbe test? */ -#define ETHERTYPE_PAE 0x888e /* EAPOL PAE/802.1x */ +#define ETHERTYPE_PAE 0x888E /* EAPOL PAE/802.1x */ +#define ETHERTYPE_PROFINET 0x8892 /* PROFINET RT Protocol */ +#define ETHERTYPE_AOE 0x88A2 /* ATA Protocol */ +#define ETHERTYPE_ETHERCAT 0x88A4 /* EtherCat Protocol */ #define ETHERTYPE_QINQ 0x88A8 /* 802.1ad VLAN stacking */ +#define ETHERTYPE_POWERLINK 0x88AB /* Ethernet Powerlink (EPL) */ +#define ETHERTYPE_LLDP 0x88CC /* Link Layer Discovery Protocol */ +#define ETHERTYPE_SERCOS 0x88CD /* SERCOS III Protocol */ +#define ETHERTYPE_MACSEC 0x88E5 /* 802.1AE MAC Security */ +#define ETHERTYPE_PBB 0x88E7 /* 802.1Q Provider Backbone Bridges */ +#define ETHERTYPE_FCOE 0x8906 /* Fibre Channel over Ethernet */ #define ETHERTYPE_LOOPBACK 0x9000 /* Loopback: used to test interfaces */ #define ETHERTYPE_LBACK ETHERTYPE_LOOPBACK /* DEC MOP loopback */ #define ETHERTYPE_XNSSM 0x9001 /* 3Com (Formerly Bridge Communications), XNS Systems Management */ @@ -375,7 +389,7 @@ struct ether_vlan_header { * ether_vlan_mtap. This function will re-insert VLAN tags for the duration * of the tap, so they show up properly for network analyzers. */ -#define ETHER_BPF_MTAP(_ifp, _m) do { \ +#define ETHER_BPF_MTAP(_ifp, _m) do { \ if (bpf_peers_present((_ifp)->if_bpf)) { \ M_ASSERTVALID(_m); \ if (((_m)->m_flags & M_VLANTAG) != 0) \ From owner-svn-src-all@freebsd.org Fri Feb 21 08:00:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B1EDB255B5B; Fri, 21 Feb 2020 08:00:42 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48P3mV4Ln8z4TxM; Fri, 21 Feb 2020 08:00:42 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9044D791B; Fri, 21 Feb 2020 08:00:42 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L80gLH088905; Fri, 21 Feb 2020 08:00:42 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L80gQu088904; Fri, 21 Feb 2020 08:00:42 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202002210800.01L80gQu088904@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Fri, 21 Feb 2020 08:00:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358210 - head X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 358210 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 08:00:42 -0000 Author: bapt Date: Fri Feb 21 08:00:42 2020 New Revision: 358210 URL: https://svnweb.freebsd.org/changeset/base/358210 Log: ncurses: set the proper version in the updating message Reported by: @jlduran (github) Modified: head/UPDATING Modified: head/UPDATING ============================================================================== --- head/UPDATING Fri Feb 21 04:48:25 2020 (r358209) +++ head/UPDATING Fri Feb 21 08:00:42 2020 (r358210) @@ -27,7 +27,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: "ln -s 'abort:false,junk:false' /etc/malloc.conf".) 20200220: - ncurses has been updated to a newer version (6.1-20200118). Given the ABI + ncurses has been updated to a newer version (6.2-20200215). Given the ABI has changed, users will have to rebuild all the ports that are linked to ncurses. From owner-svn-src-all@freebsd.org Fri Feb 21 08:30:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B3C0725632A; Fri, 21 Feb 2020 08:30:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48P4Qy574Mz4N9r; Fri, 21 Feb 2020 08:30:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A81897EA0; Fri, 21 Feb 2020 08:30:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L8UYK3007478; Fri, 21 Feb 2020 08:30:34 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L8UYZY007477; Fri, 21 Feb 2020 08:30:34 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002210830.01L8UYZY007477@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 21 Feb 2020 08:30:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358211 - stable/12/sys/dev/usb/input X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/usb/input X-SVN-Commit-Revision: 358211 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 08:30:34 -0000 Author: hselasky Date: Fri Feb 21 08:30:34 2020 New Revision: 358211 URL: https://svnweb.freebsd.org/changeset/base/358211 Log: MFC r357861 and r357898: Improve USB gaming keyboard support. Add support for decoding pressed keys as a bitmap. The keys in the bitmap are described in the interface specific HID descriptor. Some keyboards even have multiple input interfaces, only using the bitmap method when the event array is full. That typically means when more than seven keys are pressed simultaneously. The internals of the USB keyboard driver have been slightly reworked to keep track of all keys in a single bitmap having 256 bits. This bitmap is then divided into blocks of 64-bits as an optimisation. Simplify automatic key repeat logic, because only the last key pressed can be repeated. PR: 224592 PR: 233884 Tested by: Alex V. Petrov Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/usb/input/ukbd.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/usb/input/ukbd.c ============================================================================== --- stable/12/sys/dev/usb/input/ukbd.c Fri Feb 21 08:00:42 2020 (r358210) +++ stable/12/sys/dev/usb/input/ukbd.c Fri Feb 21 08:30:34 2020 (r358211) @@ -109,27 +109,21 @@ SYSCTL_INT(_hw_usb_ukbd, OID_AUTO, pollrate, CTLFLAG_R #define UKBD_EMULATE_ATSCANCODE 1 #define UKBD_DRIVER_NAME "ukbd" -#define UKBD_NMOD 8 /* units */ -#define UKBD_NKEYCODE 6 /* units */ -#define UKBD_IN_BUF_SIZE (2*(UKBD_NMOD + (2*UKBD_NKEYCODE))) /* bytes */ -#define UKBD_IN_BUF_FULL ((UKBD_IN_BUF_SIZE / 2) - 1) /* bytes */ +#define UKBD_NKEYCODE 256 /* units */ +#define UKBD_IN_BUF_SIZE (4 * UKBD_NKEYCODE) /* scancodes */ +#define UKBD_IN_BUF_FULL ((UKBD_IN_BUF_SIZE / 2) - 1) /* scancodes */ #define UKBD_NFKEY (sizeof(fkey_tab)/sizeof(fkey_tab[0])) /* units */ #define UKBD_BUFFER_SIZE 64 /* bytes */ +#define UKBD_KEY_PRESSED(map, key) ({ \ + CTASSERT((key) >= 0 && (key) < UKBD_NKEYCODE); \ + ((map)[(key) / 64] & (1ULL << ((key) % 64))); \ +}) +#define MOD_EJECT 0x01 +#define MOD_FN 0x02 + struct ukbd_data { - uint16_t modifiers; -#define MOD_CONTROL_L 0x01 -#define MOD_CONTROL_R 0x10 -#define MOD_SHIFT_L 0x02 -#define MOD_SHIFT_R 0x20 -#define MOD_ALT_L 0x04 -#define MOD_ALT_R 0x40 -#define MOD_WIN_L 0x08 -#define MOD_WIN_R 0x80 -/* internal */ -#define MOD_EJECT 0x0100 -#define MOD_FN 0x0200 - uint8_t keycode[UKBD_NKEYCODE]; + uint64_t bitmap[howmany(UKBD_NKEYCODE, 64)]; }; enum { @@ -144,17 +138,10 @@ struct ukbd_softc { keymap_t sc_keymap; accentmap_t sc_accmap; fkeytab_t sc_fkeymap[UKBD_NFKEY]; + uint64_t sc_loc_key_valid[howmany(UKBD_NKEYCODE, 64)]; struct hid_location sc_loc_apple_eject; struct hid_location sc_loc_apple_fn; - struct hid_location sc_loc_ctrl_l; - struct hid_location sc_loc_ctrl_r; - struct hid_location sc_loc_shift_l; - struct hid_location sc_loc_shift_r; - struct hid_location sc_loc_alt_l; - struct hid_location sc_loc_alt_r; - struct hid_location sc_loc_win_l; - struct hid_location sc_loc_win_r; - struct hid_location sc_loc_events; + struct hid_location sc_loc_key[UKBD_NKEYCODE]; struct hid_location sc_loc_numlock; struct hid_location sc_loc_capslock; struct hid_location sc_loc_scrolllock; @@ -172,8 +159,7 @@ struct ukbd_softc { sbintime_t sc_co_basetime; int sc_delay; - uint32_t sc_ntime[UKBD_NKEYCODE]; - uint32_t sc_otime[UKBD_NKEYCODE]; + uint32_t sc_repeat_time; uint32_t sc_input[UKBD_IN_BUF_SIZE]; /* input buffer */ uint32_t sc_time_ms; uint32_t sc_composed_char; /* composed char code, if non-zero */ @@ -191,15 +177,6 @@ struct ukbd_softc { #define UKBD_FLAG_APPLE_EJECT 0x00000040 #define UKBD_FLAG_APPLE_FN 0x00000080 #define UKBD_FLAG_APPLE_SWAP 0x00000100 -#define UKBD_FLAG_CTRL_L 0x00000400 -#define UKBD_FLAG_CTRL_R 0x00000800 -#define UKBD_FLAG_SHIFT_L 0x00001000 -#define UKBD_FLAG_SHIFT_R 0x00002000 -#define UKBD_FLAG_ALT_L 0x00004000 -#define UKBD_FLAG_ALT_R 0x00008000 -#define UKBD_FLAG_WIN_L 0x00010000 -#define UKBD_FLAG_WIN_R 0x00020000 -#define UKBD_FLAG_EVENTS 0x00040000 #define UKBD_FLAG_NUMLOCK 0x00080000 #define UKBD_FLAG_CAPSLOCK 0x00100000 #define UKBD_FLAG_SCROLLLOCK 0x00200000 @@ -214,31 +191,23 @@ struct ukbd_softc { uint16_t sc_inputs; uint16_t sc_inputhead; uint16_t sc_inputtail; - uint16_t sc_modifiers; uint8_t sc_leds; /* store for async led requests */ uint8_t sc_iface_index; uint8_t sc_iface_no; uint8_t sc_id_apple_eject; uint8_t sc_id_apple_fn; - uint8_t sc_id_ctrl_l; - uint8_t sc_id_ctrl_r; - uint8_t sc_id_shift_l; - uint8_t sc_id_shift_r; - uint8_t sc_id_alt_l; - uint8_t sc_id_alt_r; - uint8_t sc_id_win_l; - uint8_t sc_id_win_r; - uint8_t sc_id_event; + uint8_t sc_id_loc_key[UKBD_NKEYCODE]; uint8_t sc_id_numlock; uint8_t sc_id_capslock; uint8_t sc_id_scrolllock; - uint8_t sc_id_events; uint8_t sc_kbd_id; + uint8_t sc_repeat_key; uint8_t sc_buffer[UKBD_BUFFER_SIZE]; }; +#define KEY_NONE 0x00 #define KEY_ERROR 0x01 #define KEY_PRESS 0 @@ -259,21 +228,6 @@ struct ukbd_softc { #define UKBD_UNLOCK() USB_MTX_UNLOCK(&Giant) #define UKBD_LOCK_ASSERT() USB_MTX_ASSERT(&Giant, MA_OWNED) -struct ukbd_mods { - uint32_t mask, key; -}; - -static const struct ukbd_mods ukbd_mods[UKBD_NMOD] = { - {MOD_CONTROL_L, 0xe0}, - {MOD_CONTROL_R, 0xe4}, - {MOD_SHIFT_L, 0xe1}, - {MOD_SHIFT_R, 0xe5}, - {MOD_ALT_L, 0xe2}, - {MOD_ALT_R, 0xe6}, - {MOD_WIN_L, 0xe3}, - {MOD_WIN_R, 0xe7}, -}; - #define NN 0 /* no translation */ /* * Translate USB keycodes to AT keyboard scancodes. @@ -347,8 +301,8 @@ static void ukbd_timeout(void *); static void ukbd_set_leds(struct ukbd_softc *, uint8_t); static int ukbd_set_typematic(keyboard_t *, int); #ifdef UKBD_EMULATE_ATSCANCODE -static uint32_t ukbd_atkeycode(int, int); -static int ukbd_key2scan(struct ukbd_softc *, int, int, int); +static uint32_t ukbd_atkeycode(int, const uint64_t *); +static int ukbd_key2scan(struct ukbd_softc *, int, const uint64_t *, int); #endif static uint32_t ukbd_read_char(keyboard_t *, int); static void ukbd_clear_state(keyboard_t *); @@ -371,18 +325,35 @@ static const struct evdev_methods ukbd_evdev_methods = }; #endif -static uint8_t +static bool ukbd_any_key_pressed(struct ukbd_softc *sc) { - uint8_t i; - uint8_t j; + bool ret = false; + unsigned i; - for (j = i = 0; i < UKBD_NKEYCODE; i++) - j |= sc->sc_odata.keycode[i]; + for (i = 0; i != howmany(UKBD_NKEYCODE, 64); i++) + ret |= (sc->sc_odata.bitmap[i] != 0); + return (ret); +} - return (j ? 1 : 0); +static bool +ukbd_any_key_valid(struct ukbd_softc *sc) +{ + bool ret = false; + unsigned i; + + for (i = 0; i != howmany(UKBD_NKEYCODE, 64); i++) + ret |= (sc->sc_loc_key_valid[i] != 0); + return (ret); } +static bool +ukbd_is_modifier_key(uint32_t key) +{ + + return (key >= 0xe0 && key <= 0xe7); +} + static void ukbd_start_timer(struct ukbd_softc *sc) { @@ -522,99 +493,66 @@ ukbd_get_key(struct ukbd_softc *sc, uint8_t wait) static void ukbd_interrupt(struct ukbd_softc *sc) { - uint32_t n_mod; - uint32_t o_mod; - uint32_t now = sc->sc_time_ms; - int32_t dtime; - uint8_t key; - uint8_t i; - uint8_t j; + const uint32_t now = sc->sc_time_ms; + unsigned key; UKBD_LOCK_ASSERT(); - if (sc->sc_ndata.keycode[0] == KEY_ERROR) - return; + /* Check for key changes */ + for (key = 0; key != UKBD_NKEYCODE; key++) { + const uint64_t mask = 1ULL << (key % 64); + const uint64_t delta = + sc->sc_odata.bitmap[key / 64] ^ + sc->sc_ndata.bitmap[key / 64]; - n_mod = sc->sc_ndata.modifiers; - o_mod = sc->sc_odata.modifiers; - if (n_mod != o_mod) { - for (i = 0; i < UKBD_NMOD; i++) { - if ((n_mod & ukbd_mods[i].mask) != - (o_mod & ukbd_mods[i].mask)) { - ukbd_put_key(sc, ukbd_mods[i].key | - ((n_mod & ukbd_mods[i].mask) ? - KEY_PRESS : KEY_RELEASE)); - } - } - } - /* Check for released keys. */ - for (i = 0; i < UKBD_NKEYCODE; i++) { - key = sc->sc_odata.keycode[i]; - if (key == 0) { - continue; - } - for (j = 0; j < UKBD_NKEYCODE; j++) { - if (sc->sc_ndata.keycode[j] == 0) { - continue; - } - if (key == sc->sc_ndata.keycode[j]) { - goto rfound; - } - } - ukbd_put_key(sc, key | KEY_RELEASE); -rfound: ; - } + if (mask == 1 && delta == 0) { + key += 63; + continue; /* skip empty areas */ + } else if (delta & mask) { + if (sc->sc_odata.bitmap[key / 64] & mask) { + ukbd_put_key(sc, key | KEY_RELEASE); - /* Check for pressed keys. */ - for (i = 0; i < UKBD_NKEYCODE; i++) { - key = sc->sc_ndata.keycode[i]; - if (key == 0) { - continue; - } - sc->sc_ntime[i] = now + sc->sc_kbd.kb_delay1; - for (j = 0; j < UKBD_NKEYCODE; j++) { - if (sc->sc_odata.keycode[j] == 0) { - continue; - } - if (key == sc->sc_odata.keycode[j]) { + /* clear repeating key, if any */ + if (sc->sc_repeat_key == key) + sc->sc_repeat_key = 0; + } else { + ukbd_put_key(sc, key | KEY_PRESS); - /* key is still pressed */ + if (ukbd_is_modifier_key(key)) + continue; - sc->sc_ntime[i] = sc->sc_otime[j]; - dtime = (sc->sc_otime[j] - now); - - if (dtime > 0) { - /* time has not elapsed */ - goto pfound; + /* + * Check for first new key and set + * initial delay and [re]start timer: + */ + if (sc->sc_repeat_key == 0) { + sc->sc_co_basetime = sbinuptime(); + sc->sc_delay = sc->sc_kbd.kb_delay1; + ukbd_start_timer(sc); } - sc->sc_ntime[i] = now + sc->sc_kbd.kb_delay2; - break; + + /* set repeat time for last key */ + sc->sc_repeat_time = now + sc->sc_kbd.kb_delay1; + sc->sc_repeat_key = key; } } - if (j == UKBD_NKEYCODE) { - /* New key - set initial delay and [re]start timer */ - sc->sc_co_basetime = sbinuptime(); - sc->sc_delay = sc->sc_kbd.kb_delay1; - ukbd_start_timer(sc); - } - ukbd_put_key(sc, key | KEY_PRESS); - - /* - * If any other key is presently down, force its repeat to be - * well in the future (100s). This makes the last key to be - * pressed do the autorepeat. - */ - for (j = 0; j != UKBD_NKEYCODE; j++) { - if (j != i) - sc->sc_ntime[j] = now + (100 * 1000); - } -pfound: ; } + /* synchronize old data with new data */ sc->sc_odata = sc->sc_ndata; + + /* check if last key is still pressed */ + if (sc->sc_repeat_key != 0) { + const int32_t dtime = (sc->sc_repeat_time - now); - memcpy(sc->sc_otime, sc->sc_ntime, sizeof(sc->sc_otime)); + /* check if time has elapsed */ + if (dtime <= 0) { + ukbd_put_key(sc, sc->sc_repeat_key | KEY_PRESS); + sc->sc_repeat_time = now + sc->sc_kbd.kb_delay2; + } + } + /* wakeup keyboard system */ ukbd_event_keyinput(sc); } @@ -664,8 +602,9 @@ ukbd_timeout(void *arg) } } -static uint8_t -ukbd_apple_fn(uint8_t keycode) { +static uint32_t +ukbd_apple_fn(uint32_t keycode) +{ switch (keycode) { case 0x28: return 0x49; /* RETURN -> INSERT */ case 0x2a: return 0x4c; /* BACKSPACE -> DEL */ @@ -677,8 +616,9 @@ ukbd_apple_fn(uint8_t keycode) { } } -static uint8_t -ukbd_apple_swap(uint8_t keycode) { +static uint32_t +ukbd_apple_swap(uint32_t keycode) +{ switch (keycode) { case 0x35: return 0x64; case 0x64: return 0x35; @@ -691,9 +631,10 @@ ukbd_intr_callback(struct usb_xfer *xfer, usb_error_t { struct ukbd_softc *sc = usbd_xfer_softc(xfer); struct usb_page_cache *pc; - uint8_t i; - uint8_t offset; + uint32_t i; uint8_t id; + uint8_t modifiers; + int offset; int len; UKBD_LOCK_ASSERT(); @@ -733,117 +674,72 @@ ukbd_intr_callback(struct usb_xfer *xfer, usb_error_t /* clear temporary storage */ memset(&sc->sc_ndata, 0, sizeof(sc->sc_ndata)); + /* clear modifiers */ + modifiers = 0; + /* scan through HID data */ if ((sc->sc_flags & UKBD_FLAG_APPLE_EJECT) && (id == sc->sc_id_apple_eject)) { if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_apple_eject)) - sc->sc_modifiers |= MOD_EJECT; - else - sc->sc_modifiers &= ~MOD_EJECT; + modifiers |= MOD_EJECT; } if ((sc->sc_flags & UKBD_FLAG_APPLE_FN) && (id == sc->sc_id_apple_fn)) { if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_apple_fn)) - sc->sc_modifiers |= MOD_FN; - else - sc->sc_modifiers &= ~MOD_FN; + modifiers |= MOD_FN; } - if ((sc->sc_flags & UKBD_FLAG_CTRL_L) && - (id == sc->sc_id_ctrl_l)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_ctrl_l)) - sc-> sc_modifiers |= MOD_CONTROL_L; - else - sc-> sc_modifiers &= ~MOD_CONTROL_L; - } - if ((sc->sc_flags & UKBD_FLAG_CTRL_R) && - (id == sc->sc_id_ctrl_r)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_ctrl_r)) - sc->sc_modifiers |= MOD_CONTROL_R; - else - sc->sc_modifiers &= ~MOD_CONTROL_R; - } - if ((sc->sc_flags & UKBD_FLAG_SHIFT_L) && - (id == sc->sc_id_shift_l)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_shift_l)) - sc->sc_modifiers |= MOD_SHIFT_L; - else - sc->sc_modifiers &= ~MOD_SHIFT_L; - } - if ((sc->sc_flags & UKBD_FLAG_SHIFT_R) && - (id == sc->sc_id_shift_r)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_shift_r)) - sc->sc_modifiers |= MOD_SHIFT_R; - else - sc->sc_modifiers &= ~MOD_SHIFT_R; - } - if ((sc->sc_flags & UKBD_FLAG_ALT_L) && - (id == sc->sc_id_alt_l)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_alt_l)) - sc->sc_modifiers |= MOD_ALT_L; - else - sc->sc_modifiers &= ~MOD_ALT_L; - } - if ((sc->sc_flags & UKBD_FLAG_ALT_R) && - (id == sc->sc_id_alt_r)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_alt_r)) - sc->sc_modifiers |= MOD_ALT_R; - else - sc->sc_modifiers &= ~MOD_ALT_R; - } - if ((sc->sc_flags & UKBD_FLAG_WIN_L) && - (id == sc->sc_id_win_l)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_win_l)) - sc->sc_modifiers |= MOD_WIN_L; - else - sc->sc_modifiers &= ~MOD_WIN_L; - } - if ((sc->sc_flags & UKBD_FLAG_WIN_R) && - (id == sc->sc_id_win_r)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_win_r)) - sc->sc_modifiers |= MOD_WIN_R; - else - sc->sc_modifiers &= ~MOD_WIN_R; - } - sc->sc_ndata.modifiers = sc->sc_modifiers; + for (i = 0; i != UKBD_NKEYCODE; i++) { + const uint64_t valid = sc->sc_loc_key_valid[i / 64]; + const uint64_t mask = 1ULL << (i % 64); - if ((sc->sc_flags & UKBD_FLAG_EVENTS) && - (id == sc->sc_id_events)) { - i = sc->sc_loc_events.count; - if (i > UKBD_NKEYCODE) - i = UKBD_NKEYCODE; - if (i > len) - i = len; - while (i--) { - sc->sc_ndata.keycode[i] = - hid_get_data(sc->sc_buffer + i, len - i, - &sc->sc_loc_events); - } - } + if (mask == 1 && valid == 0) { + i += 63; + continue; /* skip empty areas */ + } else if (~valid & mask) { + continue; /* location is not valid */ + } else if (id != sc->sc_id_loc_key[i]) { + continue; /* invalid HID ID */ + } else if (i == 0) { + offset = sc->sc_loc_key[0].count; + if (offset < 0 || offset > len) + offset = len; + while (offset--) { + uint32_t key = + hid_get_data(sc->sc_buffer + offset, len - offset, + &sc->sc_loc_key[i]); + if (modifiers & MOD_FN) + key = ukbd_apple_fn(key); + if (sc->sc_flags & UKBD_FLAG_APPLE_SWAP) + key = ukbd_apple_swap(key); + if (key == KEY_NONE || key == KEY_ERROR || key >= UKBD_NKEYCODE) + continue; + /* set key in bitmap */ + sc->sc_ndata.bitmap[key / 64] |= 1ULL << (key % 64); + } + } else if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_key[i])) { + uint32_t key = i; -#ifdef USB_DEBUG - DPRINTF("modifiers = 0x%04x\n", (int)sc->sc_modifiers); - for (i = 0; i < UKBD_NKEYCODE; i++) { - if (sc->sc_ndata.keycode[i]) { - DPRINTF("[%d] = 0x%02x\n", - (int)i, (int)sc->sc_ndata.keycode[i]); + if (modifiers & MOD_FN) + key = ukbd_apple_fn(key); + if (sc->sc_flags & UKBD_FLAG_APPLE_SWAP) + key = ukbd_apple_swap(key); + if (key == KEY_NONE || key == KEY_ERROR || key >= UKBD_NKEYCODE) + continue; + /* set key in bitmap */ + sc->sc_ndata.bitmap[key / 64] |= 1ULL << (key % 64); } } -#endif - if (sc->sc_modifiers & MOD_FN) { - for (i = 0; i < UKBD_NKEYCODE; i++) { - sc->sc_ndata.keycode[i] = - ukbd_apple_fn(sc->sc_ndata.keycode[i]); - } - } +#ifdef USB_DEBUG + DPRINTF("modifiers = 0x%04x\n", modifiers); + for (i = 0; i != UKBD_NKEYCODE; i++) { + const uint64_t valid = sc->sc_ndata.bitmap[i / 64]; + const uint64_t mask = 1ULL << (i % 64); - if (sc->sc_flags & UKBD_FLAG_APPLE_SWAP) { - for (i = 0; i < UKBD_NKEYCODE; i++) { - sc->sc_ndata.keycode[i] = - ukbd_apple_swap(sc->sc_ndata.keycode[i]); - } + if (valid & mask) + DPRINTF("Key 0x%02x pressed\n", i); } - +#endif ukbd_interrupt(sc); case USB_ST_SETUP: @@ -1072,10 +968,14 @@ static void ukbd_parse_hid(struct ukbd_softc *sc, const uint8_t *ptr, uint32_t len) { uint32_t flags; + uint32_t key; /* reset detected bits */ sc->sc_flags &= ~UKBD_FLAG_HID_MASK; + /* reset detected keys */ + memset(sc->sc_loc_key_valid, 0, sizeof(sc->sc_loc_key_valid)); + /* check if there is an ID byte */ sc->sc_kbd_size = hid_report_size(ptr, len, hid_input, &sc->sc_kbd_id); @@ -1098,84 +998,34 @@ ukbd_parse_hid(struct ukbd_softc *sc, const uint8_t *p sc->sc_flags |= UKBD_FLAG_APPLE_FN; DPRINTFN(1, "Found Apple FN-key\n"); } - /* figure out some keys */ - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE0), - hid_input, 0, &sc->sc_loc_ctrl_l, &flags, - &sc->sc_id_ctrl_l)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_CTRL_L; - DPRINTFN(1, "Found left control\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE4), - hid_input, 0, &sc->sc_loc_ctrl_r, &flags, - &sc->sc_id_ctrl_r)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_CTRL_R; - DPRINTFN(1, "Found right control\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE1), - hid_input, 0, &sc->sc_loc_shift_l, &flags, - &sc->sc_id_shift_l)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_SHIFT_L; - DPRINTFN(1, "Found left shift\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE5), - hid_input, 0, &sc->sc_loc_shift_r, &flags, - &sc->sc_id_shift_r)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_SHIFT_R; - DPRINTFN(1, "Found right shift\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE2), - hid_input, 0, &sc->sc_loc_alt_l, &flags, - &sc->sc_id_alt_l)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_ALT_L; - DPRINTFN(1, "Found left alt\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE6), - hid_input, 0, &sc->sc_loc_alt_r, &flags, - &sc->sc_id_alt_r)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_ALT_R; - DPRINTFN(1, "Found right alt\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE3), - hid_input, 0, &sc->sc_loc_win_l, &flags, - &sc->sc_id_win_l)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_WIN_L; - DPRINTFN(1, "Found left GUI\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE7), - hid_input, 0, &sc->sc_loc_win_r, &flags, - &sc->sc_id_win_r)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_WIN_R; - DPRINTFN(1, "Found right GUI\n"); - } + /* figure out event buffer */ if (hid_locate(ptr, len, HID_USAGE2(HUP_KEYBOARD, 0x00), - hid_input, 0, &sc->sc_loc_events, &flags, - &sc->sc_id_events)) { + hid_input, 0, &sc->sc_loc_key[0], &flags, + &sc->sc_id_loc_key[0])) { if (flags & HIO_VARIABLE) { DPRINTFN(1, "Ignoring keyboard event control\n"); } else { - sc->sc_flags |= UKBD_FLAG_EVENTS; + sc->sc_loc_key_valid[0] |= 1; DPRINTFN(1, "Found keyboard event array\n"); } } + /* figure out the keys */ + for (key = 1; key != UKBD_NKEYCODE; key++) { + if (hid_locate(ptr, len, + HID_USAGE2(HUP_KEYBOARD, key), + hid_input, 0, &sc->sc_loc_key[key], &flags, + &sc->sc_id_loc_key[key])) { + if (flags & HIO_VARIABLE) { + sc->sc_loc_key_valid[key / 64] |= + 1ULL << (key % 64); + DPRINTFN(1, "Found key 0x%02x\n", key); + } + } + } + /* figure out leds on keyboard */ sc->sc_led_size = hid_report_size(ptr, len, hid_output, NULL); @@ -1301,7 +1151,7 @@ ukbd_attach(device_t dev) /* check if we should use the boot protocol */ if (usb_test_quirk(uaa, UQ_KBD_BOOTPROTO) || - (err != 0) || (!(sc->sc_flags & UKBD_FLAG_EVENTS))) { + (err != 0) || ukbd_any_key_valid(sc) == false) { DPRINTF("Forcing boot protocol\n"); @@ -1660,11 +1510,11 @@ ukbd_read(keyboard_t *kbd, int wait) ++(kbd->kb_count); #ifdef UKBD_EMULATE_ATSCANCODE - keycode = ukbd_atkeycode(usbcode, sc->sc_ndata.modifiers); + keycode = ukbd_atkeycode(usbcode, sc->sc_ndata.bitmap); if (keycode == NN) { return -1; } - return (ukbd_key2scan(sc, keycode, sc->sc_ndata.modifiers, + return (ukbd_key2scan(sc, keycode, sc->sc_ndata.bitmap, (usbcode & KEY_RELEASE))); #else /* !UKBD_EMULATE_ATSCANCODE */ return (usbcode); @@ -1731,13 +1581,13 @@ next_code: #ifdef UKBD_EMULATE_ATSCANCODE /* USB key index -> key code -> AT scan code */ - keycode = ukbd_atkeycode(usbcode, sc->sc_ndata.modifiers); + keycode = ukbd_atkeycode(usbcode, sc->sc_ndata.bitmap); if (keycode == NN) { return (NOKEY); } /* return an AT scan code for the K_RAW mode */ if (sc->sc_mode == K_RAW) { - return (ukbd_key2scan(sc, keycode, sc->sc_ndata.modifiers, + return (ukbd_key2scan(sc, keycode, sc->sc_ndata.bitmap, (usbcode & KEY_RELEASE))); } #else /* !UKBD_EMULATE_ATSCANCODE */ @@ -2061,8 +1911,8 @@ ukbd_clear_state(keyboard_t *kbd) #endif memset(&sc->sc_ndata, 0, sizeof(sc->sc_ndata)); memset(&sc->sc_odata, 0, sizeof(sc->sc_odata)); - memset(&sc->sc_ntime, 0, sizeof(sc->sc_ntime)); - memset(&sc->sc_otime, 0, sizeof(sc->sc_otime)); + sc->sc_repeat_time = 0; + sc->sc_repeat_key = 0; } /* save the internal state, not used */ @@ -2149,11 +1999,12 @@ ukbd_set_typematic(keyboard_t *kbd, int code) #ifdef UKBD_EMULATE_ATSCANCODE static uint32_t -ukbd_atkeycode(int usbcode, int shift) +ukbd_atkeycode(int usbcode, const uint64_t *bitmap) { uint32_t keycode; keycode = ukbd_trtab[KEY_INDEX(usbcode)]; + /* * Translate Alt-PrintScreen to SysRq. * @@ -2168,13 +2019,14 @@ ukbd_atkeycode(int usbcode, int shift) * is routine. */ if ((keycode == 0x5c || keycode == 0x7e) && - shift & (MOD_ALT_L | MOD_ALT_R)) + (UKBD_KEY_PRESSED(bitmap, 0xe2 /* ALT-L */) || + UKBD_KEY_PRESSED(bitmap, 0xe6 /* ALT-R */))) return (0x54); return (keycode); } static int -ukbd_key2scan(struct ukbd_softc *sc, int code, int shift, int up) +ukbd_key2scan(struct ukbd_softc *sc, int code, const uint64_t *bitmap, int up) { static const int scan[] = { /* 89 */ @@ -2234,12 +2086,17 @@ ukbd_key2scan(struct ukbd_softc *sc, int code, int shi code = scan[code - 89]; } /* PrintScreen */ - if (code == 0x137 && (!(shift & (MOD_CONTROL_L | MOD_CONTROL_R | - MOD_SHIFT_L | MOD_SHIFT_R)))) { + if (code == 0x137 && (!( + UKBD_KEY_PRESSED(bitmap, 0xe0 /* CTRL-L */) || + UKBD_KEY_PRESSED(bitmap, 0xe4 /* CTRL-R */) || + UKBD_KEY_PRESSED(bitmap, 0xe1 /* SHIFT-L */) || + UKBD_KEY_PRESSED(bitmap, 0xe5 /* SHIFT-R */)))) { code |= SCAN_PREFIX_SHIFT; } /* Pause/Break */ - if ((code == 0x146) && (!(shift & (MOD_CONTROL_L | MOD_CONTROL_R)))) { + if ((code == 0x146) && (!( + UKBD_KEY_PRESSED(bitmap, 0xe0 /* CTRL-L */) || + UKBD_KEY_PRESSED(bitmap, 0xe4 /* CTRL-R */)))) { code = (0x45 | SCAN_PREFIX_E1 | SCAN_PREFIX_CTL); } code |= (up ? SCAN_RELEASE : SCAN_PRESS); From owner-svn-src-all@freebsd.org Fri Feb 21 08:35:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3BCB52565F5; Fri, 21 Feb 2020 08:35:09 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48P4XF0WZ4z4W0Z; Fri, 21 Feb 2020 08:35:09 +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 DB0CF8068; Fri, 21 Feb 2020 08:35:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L8Z8pu013247; Fri, 21 Feb 2020 08:35:08 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L8Z8uE013246; Fri, 21 Feb 2020 08:35:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002210835.01L8Z8uE013246@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 21 Feb 2020 08:35:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358212 - stable/11/sys/dev/usb/input X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/usb/input X-SVN-Commit-Revision: 358212 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 08:35:09 -0000 Author: hselasky Date: Fri Feb 21 08:35:08 2020 New Revision: 358212 URL: https://svnweb.freebsd.org/changeset/base/358212 Log: MFC r304567: Fix translation of the PrintScreen/SysRq and Pause/Break keys. Almost everything was broken. The cases that I noticed were Ctrl-PrintScreen not being mapped to the virtual scancode 0x5c (debug) and Pause not being mapped to the physical/virtual scancode 0x46 (slock). These keys are the most complicated ones due to kludges to give some compatibility back to before AT keyboards. Alt-PrintScreen must pretend to be a separate key from PrintScreen even at the "raw" level. The (unique) usb code for it is 0x8a and we just have to map this to our unique virtual scancode 0x54, but we mapped it first to the internal code 0x7e and then to 0x79 which is a key on the Japanese 106/109 keyboard. This fix is under the UKBD_EMULATE_ATASCANCODE option which shouldn't be used for non-AT keyboards. If it is, then the syscons Japanese keymaps have nothing of importance for code 0x79 and can easily be changed. 0x54 is also unimportant in Japanese and US keymaps. NonAlt-PrintScreen and NonCtl-Pause/Break had many much larger bugs with smaller compatibility problems from fixing them. The details are too ugly to give here. Summary of the changed (hex) codes: K_RAW PrintScreen (Ctl, Shift, Ctl-Shift): E0-2A-E0-37 -> E0-37 K_RAW Alt-PrintScreen (all shift states): 79 -> 54 K_RAW Pause/Break (unshifted, Shift, Alt, Alt-Shift)): E0-46 -> E1-1D-45 K_CODE ALT-PrintScreen (all shift states): 79 -> 54 That is 15 of 32 shift combinations for 2 keys fixed, with 8 easy cases from the 79 -> 54 remapping. The difference is only large and with no workaround using a keymap for for K_RAW, but this affects other modes when ukbd is layered under kbmux because kbmux keeps all subdevices in K_RAW mode and translates. Oops. I used kbdmux to generate the above table of changes. Modified: stable/11/sys/dev/usb/input/ukbd.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/input/ukbd.c ============================================================================== --- stable/11/sys/dev/usb/input/ukbd.c Fri Feb 21 08:30:34 2020 (r358211) +++ stable/11/sys/dev/usb/input/ukbd.c Fri Feb 21 08:35:08 2020 (r358212) @@ -332,7 +332,7 @@ static const uint8_t ukbd_trtab[256] = { NN, NN, NN, NN, 115, 108, 111, 113, /* 70 - 77 */ 109, 110, 112, 118, 114, 116, 117, 119, /* 78 - 7F */ 121, 120, NN, NN, NN, NN, NN, 123, /* 80 - 87 */ - 124, 125, 126, 127, 128, NN, NN, NN, /* 88 - 8F */ + 124, 125, 84, 127, 128, NN, NN, NN, /* 88 - 8F */ 129, 130, NN, NN, NN, NN, NN, NN, /* 90 - 97 */ NN, NN, NN, NN, NN, NN, NN, NN, /* 98 - 9F */ NN, NN, NN, NN, NN, NN, NN, NN, /* A0 - A7 */ @@ -1757,17 +1757,6 @@ next_code: } } break; - /* XXX: I don't like these... */ - case 0x5c: /* print screen */ - if (sc->sc_flags & ALTS) { - keycode = 0x54; /* sysrq */ - } - break; - case 0x68: /* pause/break */ - if (sc->sc_flags & CTLS) { - keycode = 0x6c; /* break */ - } - break; } /* return the key code in the K_CODE mode */ @@ -2158,7 +2147,7 @@ ukbd_key2scan(struct ukbd_softc *sc, int code, int shi /* 90-99 */ 0x11d, /* Ctrl-R */ 0x135, /* Divide */ - 0x137 | SCAN_PREFIX_SHIFT, /* PrintScreen */ + 0x137, /* PrintScreen */ 0x138, /* Alt-R */ 0x147, /* Home */ 0x148, /* Up */ @@ -2209,12 +2198,14 @@ ukbd_key2scan(struct ukbd_softc *sc, int code, int shi if ((code >= 89) && (code < (int)(89 + nitems(scan)))) { code = scan[code - 89]; } + /* PrintScreen */ + if (code == 0x137 && (!(shift & (MOD_CONTROL_L | MOD_CONTROL_R | + MOD_ALT_L | MOD_ALT_R | MOD_SHIFT_L | MOD_SHIFT_R)))) { + code |= SCAN_PREFIX_SHIFT; + } /* Pause/Break */ - if ((code == 104) && (!(shift & (MOD_CONTROL_L | MOD_CONTROL_R)))) { + if ((code == 0x146) && (!(shift & (MOD_CONTROL_L | MOD_CONTROL_R)))) { code = (0x45 | SCAN_PREFIX_E1 | SCAN_PREFIX_CTL); - } - if (shift & (MOD_SHIFT_L | MOD_SHIFT_R)) { - code &= ~SCAN_PREFIX_SHIFT; } code |= (up ? SCAN_RELEASE : SCAN_PRESS); From owner-svn-src-all@freebsd.org Fri Feb 21 08:41:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8767C256A01; Fri, 21 Feb 2020 08:41:45 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48P4gr74Fkz3DYj; Fri, 21 Feb 2020 08:41:44 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7DA17824D; Fri, 21 Feb 2020 08:41:44 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L8fi1r017268; Fri, 21 Feb 2020 08:41:44 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L8fiYJ017267; Fri, 21 Feb 2020 08:41:44 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002210841.01L8fiYJ017267@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 21 Feb 2020 08:41:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358213 - stable/11/sys/dev/usb/input X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/usb/input X-SVN-Commit-Revision: 358213 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 08:41:45 -0000 Author: hselasky Date: Fri Feb 21 08:41:44 2020 New Revision: 358213 URL: https://svnweb.freebsd.org/changeset/base/358213 Log: MFC r304612: Further fixes for translation of PrintScreen/SysRq. The previous fix was tested mainly on 3 AT keyboards with USB adaptors where it works. 1 USB keyboard doesn't translate Alt-PrintScreen, so the software has to do it. Reorganize a little to share some code and to not translate the unusual usb scan code0x8a unless an Alt modified is set. Remove redundant check of Alt modifiers. Translation now more clearly filters out Alt-PrintScreen before the check. The table of errors fixed in the previous commit had many bugs. Correct table: K_RAW Ctl-PrintScreen: E0-2A-E0-37 -> E0-37 K_RAW Alt-PrintScreen (with 4 comb. of Ctl/Shift): 79 -> 54 K_RAW Pause/Break (with 4 comb. of Alt/Shift): E0-46 -> E1-1D-45 K_CODE PrintScreen (with 4 comb. of Ctl/Shift): 54 -> 5c K_CODE Alt-PrintScreen (with 4 comb. of Ctl/Shift): 7e -> 54 K_CODE Pause/Break (with 8 comb. of Ctl/Alt/Shift): 6c -> 68 That is 25 of 32 shift combinations for 2 keys fixed. All 16 combinations were broken for K_CODE and thus also for K_XLATE. Modified: stable/11/sys/dev/usb/input/ukbd.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/input/ukbd.c ============================================================================== --- stable/11/sys/dev/usb/input/ukbd.c Fri Feb 21 08:35:08 2020 (r358212) +++ stable/11/sys/dev/usb/input/ukbd.c Fri Feb 21 08:41:44 2020 (r358213) @@ -332,7 +332,7 @@ static const uint8_t ukbd_trtab[256] = { NN, NN, NN, NN, 115, 108, 111, 113, /* 70 - 77 */ 109, 110, 112, 118, 114, 116, 117, 119, /* 78 - 7F */ 121, 120, NN, NN, NN, NN, NN, 123, /* 80 - 87 */ - 124, 125, 84, 127, 128, NN, NN, NN, /* 88 - 8F */ + 124, 125, 126, 127, 128, NN, NN, NN, /* 88 - 8F */ 129, 130, NN, NN, NN, NN, NN, NN, /* 90 - 97 */ NN, NN, NN, NN, NN, NN, NN, NN, /* 98 - 9F */ NN, NN, NN, NN, NN, NN, NN, NN, /* A0 - A7 */ @@ -370,6 +370,7 @@ static void ukbd_timeout(void *); static void ukbd_set_leds(struct ukbd_softc *, uint8_t); static int ukbd_set_typematic(keyboard_t *, int); #ifdef UKBD_EMULATE_ATSCANCODE +static uint32_t ukbd_atkeycode(int, int); static int ukbd_key2scan(struct ukbd_softc *, int, int, int); #endif static uint32_t ukbd_read_char(keyboard_t *, int); @@ -1647,7 +1648,7 @@ ukbd_read(keyboard_t *kbd, int wait) ++(kbd->kb_count); #ifdef UKBD_EMULATE_ATSCANCODE - keycode = ukbd_trtab[KEY_INDEX(usbcode)]; + keycode = ukbd_atkeycode(usbcode, sc->sc_ndata.modifiers); if (keycode == NN) { return -1; } @@ -1718,7 +1719,7 @@ next_code: #ifdef UKBD_EMULATE_ATSCANCODE /* USB key index -> key code -> AT scan code */ - keycode = ukbd_trtab[KEY_INDEX(usbcode)]; + keycode = ukbd_atkeycode(usbcode, sc->sc_ndata.modifiers); if (keycode == NN) { return (NOKEY); } @@ -2138,6 +2139,31 @@ ukbd_set_typematic(keyboard_t *kbd, int code) } #ifdef UKBD_EMULATE_ATSCANCODE +static uint32_t +ukbd_atkeycode(int usbcode, int shift) +{ + uint32_t keycode; + + keycode = ukbd_trtab[KEY_INDEX(usbcode)]; + /* + * Translate Alt-PrintScreen to SysRq. + * + * Some or all AT keyboards connected through USB have already + * mapped Alted PrintScreens to an unusual usbcode (0x8a). + * ukbd_trtab translates this to 0x7e, and key2scan() would + * translate that to 0x79 (Intl' 4). Assume that if we have + * an Alted 0x7e here then it actually is an Alted PrintScreen. + * + * The usual usbcode for all PrintScreens is 0x46. ukbd_trtab + * translates this to 0x5c, so the Alt check to classify 0x5c + * is routine. + */ + if ((keycode == 0x5c || keycode == 0x7e) && + shift & (MOD_ALT_L | MOD_ALT_R)) + return (0x54); + return (keycode); +} + static int ukbd_key2scan(struct ukbd_softc *sc, int code, int shift, int up) { @@ -2160,7 +2186,7 @@ ukbd_key2scan(struct ukbd_softc *sc, int code, int shi 0x151, /* PageDown */ 0x152, /* Insert */ 0x153, /* Delete */ - 0x146, /* XXX Pause/Break */ + 0x146, /* Pause/Break */ 0x15b, /* Win_L(Super_L) */ 0x15c, /* Win_R(Super_R) */ 0x15d, /* Application(Menu) */ @@ -2200,7 +2226,7 @@ ukbd_key2scan(struct ukbd_softc *sc, int code, int shi } /* PrintScreen */ if (code == 0x137 && (!(shift & (MOD_CONTROL_L | MOD_CONTROL_R | - MOD_ALT_L | MOD_ALT_R | MOD_SHIFT_L | MOD_SHIFT_R)))) { + MOD_SHIFT_L | MOD_SHIFT_R)))) { code |= SCAN_PREFIX_SHIFT; } /* Pause/Break */ From owner-svn-src-all@freebsd.org Fri Feb 21 08:48:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 34300256D1A; Fri, 21 Feb 2020 08:48:25 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48P4qY0MLvz3xkm; Fri, 21 Feb 2020 08:48:25 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DDCF282FD; Fri, 21 Feb 2020 08:48:24 +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 01L8mOS7019533; Fri, 21 Feb 2020 08:48:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L8mO99019532; Fri, 21 Feb 2020 08:48:24 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002210848.01L8mO99019532@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 21 Feb 2020 08:48:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358214 - stable/11/sys/dev/usb/input X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/usb/input X-SVN-Commit-Revision: 358214 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 08:48:25 -0000 Author: hselasky Date: Fri Feb 21 08:48:24 2020 New Revision: 358214 URL: https://svnweb.freebsd.org/changeset/base/358214 Log: MFC r304699: Fix key delay and repeat, part 1. kbdcontrol -r fast is documented to give a non-emulated atkbd's fastest rate of 250.34, but is misimplemented to request this as 0.0. ukbd supports many nonstandard rates, although it is currently too inaccurate by a factor of several hundred for non-huge nonstandard rates to be useful. It mapped 0.0 to 200.0. A repeat delay of 0 means a rate of infinity which is quite fast, but physical constraints limit this to a few MHz and the inaccuracies made it almost usable. Convert 0.0 to the documented 250.34. Also convert negative args and small args to the 250.34 minimal ones, like atkbd does. This is for KDSETREPEAT -- the 2 versions of the deprecated KDSETRAD have bounds checking. Keep not doing any bounds checking or conversions for upper limits since nonstandard large delays are useful for testing. The inaccuracies are dependent on HZ and the timeout implementation. With the old timeout implementation and HZ = 1000, 200.0 probably worked better to emulate 250.34 than 250.34 itself. HZ = 100 gives roundoff errors that accidentally reduce the inaaccuracies, and event timers reduce the inaccuracies even more, so 200.0 was giving more like itself (perhaps 215.15 on average but sometimes close to 10 msec repeat which is noticebly too fast). This commit makes 0.0 noticeably too slow, like 250.34 always was. Modified: stable/11/sys/dev/usb/input/ukbd.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/input/ukbd.c ============================================================================== --- stable/11/sys/dev/usb/input/ukbd.c Fri Feb 21 08:41:44 2020 (r358213) +++ stable/11/sys/dev/usb/input/ukbd.c Fri Feb 21 08:48:24 2020 (r358214) @@ -1954,17 +1954,14 @@ ukbd_ioctl_locked(keyboard_t *kbd, u_long cmd, caddr_t if (!KBD_HAS_DEVICE(kbd)) { return (0); } - if (((int *)arg)[1] < 0) { - return (EINVAL); - } - if (((int *)arg)[0] < 0) { - return (EINVAL); - } - if (((int *)arg)[0] < 200) /* fastest possible value */ - kbd->kb_delay1 = 200; - else - kbd->kb_delay1 = ((int *)arg)[0]; - kbd->kb_delay2 = ((int *)arg)[1]; + /* + * Convert negative, zero and tiny args to the same limits + * as atkbd. We could support delays of 1 msec, but + * anything much shorter than the shortest atkbd value + * of 250.34 is almost unusable as well as incompatible. + */ + kbd->kb_delay1 = imax(((int *)arg)[0], 250); + kbd->kb_delay2 = imax(((int *)arg)[1], 34); #ifdef EVDEV_SUPPORT if (sc->sc_evdev != NULL) evdev_push_repeats(sc->sc_evdev, kbd); From owner-svn-src-all@freebsd.org Fri Feb 21 08:59:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9711E2570C1; Fri, 21 Feb 2020 08:59:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48P5492cKFz4JkX; Fri, 21 Feb 2020 08:59:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4D76184BF; Fri, 21 Feb 2020 08:59:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L8xLZP025582; Fri, 21 Feb 2020 08:59:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L8xLMV025581; Fri, 21 Feb 2020 08:59:21 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002210859.01L8xLMV025581@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 21 Feb 2020 08:59:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358215 - stable/11/sys/dev/usb/input X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/usb/input X-SVN-Commit-Revision: 358215 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 08:59:21 -0000 Author: hselasky Date: Fri Feb 21 08:59:20 2020 New Revision: 358215 URL: https://svnweb.freebsd.org/changeset/base/358215 Log: MFC r304735 and r331692: Fix key delay and repeat, part 2. Use sbintime_t timeouts with precision control to get very accurate timing. It costs little to always ask for about 1% accuracy, and the not so new event timer implementation usual delivers that, and when it can't it gets much closer than our previous coarse timeouts and buggy simple countdown. The 2 fastest atkbd repeat rates have periods 34 and 38 msec, and ukbd pretended to support rates in between these. This requires sub-microsecond precision and accuracy even to handle the 4 msec difference very well, but ukbd asked the timeout subsystem for timeouts of 25 msec and the buggy simple countdown of this gave a a wide range of precisions and accuracies depending on HZ and other timer configuration (sometimes better than 25 msec but usually more like 50 msec). We now ask for and usually get precision and accuracy of about 1% for each repeat and much better on average. The 1% accuracy is overkill. Rounding of 30 cps to 34 msec instead of 33 already gives an error of +2% instead of -1%, and ut AT keyboards on PS/2 interfaces have similar errors. A timeout is now scheduled for every keypress and release. This allows some simplifications that are not done. It allows removing the timeout scheduling for exiting polled mode where it was unsafe in ddb mode. This is done. Exiting polled mode had some problems with extra repeats. Now exiting polled mode lets an extra timeout fire and the state is fudged so that the timeout handler does very little. The sc->time_ms variable is unsigned to avoid overflow. Differences of it need to be signed. Signed comparisons were emulated by testing an emulated sign bits. This only works easily for '<' comparisonss, but we now need a '<=' comparison. Change the difference variable to signed and use a signed comparison. Using unsigned types here didn't prevent overflow bugs but just reduced them. Overflow occurs with n repeats at the silly repeat period of [U]INT_MAX / n. The old countdown had an off by 1 error, and the simplifications would simply count down 1 to 0 and not need to accumulate possibly-large repeat repeats. PR: 226968 Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/input/ukbd.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/input/ukbd.c ============================================================================== --- stable/11/sys/dev/usb/input/ukbd.c Fri Feb 21 08:48:24 2020 (r358214) +++ stable/11/sys/dev/usb/input/ukbd.c Fri Feb 21 08:59:20 2020 (r358215) @@ -171,6 +171,8 @@ struct ukbd_softc { struct evdev_dev *sc_evdev; #endif + sbintime_t sc_co_basetime; + int sc_delay; uint32_t sc_ntime[UKBD_NKEYCODE]; uint32_t sc_otime[UKBD_NKEYCODE]; uint32_t sc_input[UKBD_IN_BUF_SIZE]; /* input buffer */ @@ -190,7 +192,6 @@ struct ukbd_softc { #define UKBD_FLAG_APPLE_EJECT 0x00000040 #define UKBD_FLAG_APPLE_FN 0x00000080 #define UKBD_FLAG_APPLE_SWAP 0x00000100 -#define UKBD_FLAG_TIMER_RUNNING 0x00000200 #define UKBD_FLAG_CTRL_L 0x00000400 #define UKBD_FLAG_CTRL_R 0x00000800 #define UKBD_FLAG_SHIFT_L 0x00001000 @@ -407,8 +408,26 @@ ukbd_any_key_pressed(struct ukbd_softc *sc) static void ukbd_start_timer(struct ukbd_softc *sc) { - sc->sc_flags |= UKBD_FLAG_TIMER_RUNNING; - usb_callout_reset(&sc->sc_callout, hz / 40, &ukbd_timeout, sc); + sbintime_t delay, now, prec; + + now = sbinuptime(); + + /* check if initial delay passed and fallback to key repeat delay */ + if (sc->sc_delay == 0) + sc->sc_delay = sc->sc_kbd.kb_delay2; + + /* compute timeout */ + delay = SBT_1MS * sc->sc_delay; + sc->sc_co_basetime += delay; + + /* check if we are running behind */ + if (sc->sc_co_basetime < now) + sc->sc_co_basetime = now; + + /* This is rarely called, so prefer precision to efficiency. */ + prec = qmin(delay >> 7, SBT_1MS * 10); + callout_reset_sbt(&sc->sc_callout.co, sc->sc_co_basetime, prec, + ukbd_timeout, sc, C_ABSOLUTE); } static void @@ -528,7 +547,7 @@ ukbd_interrupt(struct ukbd_softc *sc) uint32_t n_mod; uint32_t o_mod; uint32_t now = sc->sc_time_ms; - uint32_t dtime; + int32_t dtime; uint8_t key; uint8_t i; uint8_t j; @@ -586,7 +605,7 @@ rfound: ; sc->sc_ntime[i] = sc->sc_otime[j]; dtime = (sc->sc_otime[j] - now); - if (!(dtime & 0x80000000)) { + if (dtime > 0) { /* time has not elapsed */ goto pfound; } @@ -594,6 +613,12 @@ rfound: ; break; } } + if (j == UKBD_NKEYCODE) { + /* New key - set initial delay and [re]start timer */ + sc->sc_co_basetime = sbinuptime(); + sc->sc_delay = sc->sc_kbd.kb_delay1; + ukbd_start_timer(sc); + } ukbd_put_key(sc, key | KEY_PRESS); /* @@ -648,7 +673,8 @@ ukbd_timeout(void *arg) UKBD_LOCK_ASSERT(); - sc->sc_time_ms += 25; /* milliseconds */ + sc->sc_time_ms += sc->sc_delay; + sc->sc_delay = 0; ukbd_interrupt(sc); @@ -657,8 +683,6 @@ ukbd_timeout(void *arg) if (ukbd_any_key_pressed(sc) || (sc->sc_inputs != 0)) { ukbd_start_timer(sc); - } else { - sc->sc_flags &= ~UKBD_FLAG_TIMER_RUNNING; } } @@ -844,12 +868,6 @@ ukbd_intr_callback(struct usb_xfer *xfer, usb_error_t ukbd_interrupt(sc); - if (!(sc->sc_flags & UKBD_FLAG_TIMER_RUNNING)) { - if (ukbd_any_key_pressed(sc)) { - ukbd_start_timer(sc); - } - } - case USB_ST_SETUP: tr_setup: if (sc->sc_inputs < UKBD_IN_BUF_FULL) { @@ -2087,7 +2105,7 @@ ukbd_poll(keyboard_t *kbd, int on) sc->sc_poll_thread = curthread; } else { sc->sc_flags &= ~UKBD_FLAG_POLLING; - ukbd_start_timer(sc); /* start timer */ + sc->sc_delay = 0; } UKBD_UNLOCK(); From owner-svn-src-all@freebsd.org Fri Feb 21 09:07:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8BE5525762F; Fri, 21 Feb 2020 09:07:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48P5F13yNpz4PFk; Fri, 21 Feb 2020 09:07:01 +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 791728688; Fri, 21 Feb 2020 09:07:01 +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 01L971Z7031381; Fri, 21 Feb 2020 09:07:01 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L971uj031380; Fri, 21 Feb 2020 09:07:01 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002210907.01L971uj031380@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 21 Feb 2020 09:07:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358216 - stable/11/sys/dev/usb/input X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/usb/input X-SVN-Commit-Revision: 358216 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 09:07:01 -0000 Author: hselasky Date: Fri Feb 21 09:07:01 2020 New Revision: 358216 URL: https://svnweb.freebsd.org/changeset/base/358216 Log: MFC r357861 and r357898: Improve USB gaming keyboard support. Add support for decoding pressed keys as a bitmap. The keys in the bitmap are described in the interface specific HID descriptor. Some keyboards even have multiple input interfaces, only using the bitmap method when the event array is full. That typically means when more than seven keys are pressed simultaneously. The internals of the USB keyboard driver have been slightly reworked to keep track of all keys in a single bitmap having 256 bits. This bitmap is then divided into blocks of 64-bits as an optimisation. Simplify automatic key repeat logic, because only the last key pressed can be repeated. PR: 224592 PR: 233884 Tested by: Alex V. Petrov Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/input/ukbd.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/input/ukbd.c ============================================================================== --- stable/11/sys/dev/usb/input/ukbd.c Fri Feb 21 08:59:20 2020 (r358215) +++ stable/11/sys/dev/usb/input/ukbd.c Fri Feb 21 09:07:01 2020 (r358216) @@ -110,27 +110,21 @@ SYSCTL_INT(_hw_usb_ukbd, OID_AUTO, pollrate, CTLFLAG_R #define UKBD_EMULATE_ATSCANCODE 1 #define UKBD_DRIVER_NAME "ukbd" -#define UKBD_NMOD 8 /* units */ -#define UKBD_NKEYCODE 6 /* units */ -#define UKBD_IN_BUF_SIZE (2*(UKBD_NMOD + (2*UKBD_NKEYCODE))) /* bytes */ -#define UKBD_IN_BUF_FULL ((UKBD_IN_BUF_SIZE / 2) - 1) /* bytes */ +#define UKBD_NKEYCODE 256 /* units */ +#define UKBD_IN_BUF_SIZE (4 * UKBD_NKEYCODE) /* scancodes */ +#define UKBD_IN_BUF_FULL ((UKBD_IN_BUF_SIZE / 2) - 1) /* scancodes */ #define UKBD_NFKEY (sizeof(fkey_tab)/sizeof(fkey_tab[0])) /* units */ #define UKBD_BUFFER_SIZE 64 /* bytes */ +#define UKBD_KEY_PRESSED(map, key) ({ \ + CTASSERT((key) >= 0 && (key) < UKBD_NKEYCODE); \ + ((map)[(key) / 64] & (1ULL << ((key) % 64))); \ +}) +#define MOD_EJECT 0x01 +#define MOD_FN 0x02 + struct ukbd_data { - uint16_t modifiers; -#define MOD_CONTROL_L 0x01 -#define MOD_CONTROL_R 0x10 -#define MOD_SHIFT_L 0x02 -#define MOD_SHIFT_R 0x20 -#define MOD_ALT_L 0x04 -#define MOD_ALT_R 0x40 -#define MOD_WIN_L 0x08 -#define MOD_WIN_R 0x80 -/* internal */ -#define MOD_EJECT 0x0100 -#define MOD_FN 0x0200 - uint8_t keycode[UKBD_NKEYCODE]; + uint64_t bitmap[howmany(UKBD_NKEYCODE, 64)]; }; enum { @@ -145,17 +139,10 @@ struct ukbd_softc { keymap_t sc_keymap; accentmap_t sc_accmap; fkeytab_t sc_fkeymap[UKBD_NFKEY]; + uint64_t sc_loc_key_valid[howmany(UKBD_NKEYCODE, 64)]; struct hid_location sc_loc_apple_eject; struct hid_location sc_loc_apple_fn; - struct hid_location sc_loc_ctrl_l; - struct hid_location sc_loc_ctrl_r; - struct hid_location sc_loc_shift_l; - struct hid_location sc_loc_shift_r; - struct hid_location sc_loc_alt_l; - struct hid_location sc_loc_alt_r; - struct hid_location sc_loc_win_l; - struct hid_location sc_loc_win_r; - struct hid_location sc_loc_events; + struct hid_location sc_loc_key[UKBD_NKEYCODE]; struct hid_location sc_loc_numlock; struct hid_location sc_loc_capslock; struct hid_location sc_loc_scrolllock; @@ -173,8 +160,7 @@ struct ukbd_softc { sbintime_t sc_co_basetime; int sc_delay; - uint32_t sc_ntime[UKBD_NKEYCODE]; - uint32_t sc_otime[UKBD_NKEYCODE]; + uint32_t sc_repeat_time; uint32_t sc_input[UKBD_IN_BUF_SIZE]; /* input buffer */ uint32_t sc_time_ms; uint32_t sc_composed_char; /* composed char code, if non-zero */ @@ -192,15 +178,6 @@ struct ukbd_softc { #define UKBD_FLAG_APPLE_EJECT 0x00000040 #define UKBD_FLAG_APPLE_FN 0x00000080 #define UKBD_FLAG_APPLE_SWAP 0x00000100 -#define UKBD_FLAG_CTRL_L 0x00000400 -#define UKBD_FLAG_CTRL_R 0x00000800 -#define UKBD_FLAG_SHIFT_L 0x00001000 -#define UKBD_FLAG_SHIFT_R 0x00002000 -#define UKBD_FLAG_ALT_L 0x00004000 -#define UKBD_FLAG_ALT_R 0x00008000 -#define UKBD_FLAG_WIN_L 0x00010000 -#define UKBD_FLAG_WIN_R 0x00020000 -#define UKBD_FLAG_EVENTS 0x00040000 #define UKBD_FLAG_NUMLOCK 0x00080000 #define UKBD_FLAG_CAPSLOCK 0x00100000 #define UKBD_FLAG_SCROLLLOCK 0x00200000 @@ -215,31 +192,23 @@ struct ukbd_softc { uint16_t sc_inputs; uint16_t sc_inputhead; uint16_t sc_inputtail; - uint16_t sc_modifiers; uint8_t sc_leds; /* store for async led requests */ uint8_t sc_iface_index; uint8_t sc_iface_no; uint8_t sc_id_apple_eject; uint8_t sc_id_apple_fn; - uint8_t sc_id_ctrl_l; - uint8_t sc_id_ctrl_r; - uint8_t sc_id_shift_l; - uint8_t sc_id_shift_r; - uint8_t sc_id_alt_l; - uint8_t sc_id_alt_r; - uint8_t sc_id_win_l; - uint8_t sc_id_win_r; - uint8_t sc_id_event; + uint8_t sc_id_loc_key[UKBD_NKEYCODE]; uint8_t sc_id_numlock; uint8_t sc_id_capslock; uint8_t sc_id_scrolllock; - uint8_t sc_id_events; uint8_t sc_kbd_id; + uint8_t sc_repeat_key; uint8_t sc_buffer[UKBD_BUFFER_SIZE]; }; +#define KEY_NONE 0x00 #define KEY_ERROR 0x01 #define KEY_PRESS 0 @@ -283,21 +252,6 @@ struct ukbd_softc { #endif -struct ukbd_mods { - uint32_t mask, key; -}; - -static const struct ukbd_mods ukbd_mods[UKBD_NMOD] = { - {MOD_CONTROL_L, 0xe0}, - {MOD_CONTROL_R, 0xe4}, - {MOD_SHIFT_L, 0xe1}, - {MOD_SHIFT_R, 0xe5}, - {MOD_ALT_L, 0xe2}, - {MOD_ALT_R, 0xe6}, - {MOD_WIN_L, 0xe3}, - {MOD_WIN_R, 0xe7}, -}; - #define NN 0 /* no translation */ /* * Translate USB keycodes to AT keyboard scancodes. @@ -371,8 +325,8 @@ static void ukbd_timeout(void *); static void ukbd_set_leds(struct ukbd_softc *, uint8_t); static int ukbd_set_typematic(keyboard_t *, int); #ifdef UKBD_EMULATE_ATSCANCODE -static uint32_t ukbd_atkeycode(int, int); -static int ukbd_key2scan(struct ukbd_softc *, int, int, int); +static uint32_t ukbd_atkeycode(int, const uint64_t *); +static int ukbd_key2scan(struct ukbd_softc *, int, const uint64_t *, int); #endif static uint32_t ukbd_read_char(keyboard_t *, int); static void ukbd_clear_state(keyboard_t *); @@ -393,18 +347,35 @@ static const struct evdev_methods ukbd_evdev_methods = }; #endif -static uint8_t +static bool ukbd_any_key_pressed(struct ukbd_softc *sc) { - uint8_t i; - uint8_t j; + bool ret = false; + unsigned i; - for (j = i = 0; i < UKBD_NKEYCODE; i++) - j |= sc->sc_odata.keycode[i]; + for (i = 0; i != howmany(UKBD_NKEYCODE, 64); i++) + ret |= (sc->sc_odata.bitmap[i] != 0); + return (ret); +} - return (j ? 1 : 0); +static bool +ukbd_any_key_valid(struct ukbd_softc *sc) +{ + bool ret = false; + unsigned i; + + for (i = 0; i != howmany(UKBD_NKEYCODE, 64); i++) + ret |= (sc->sc_loc_key_valid[i] != 0); + return (ret); } +static bool +ukbd_is_modifier_key(uint32_t key) +{ + + return (key >= 0xe0 && key <= 0xe7); +} + static void ukbd_start_timer(struct ukbd_softc *sc) { @@ -544,99 +515,66 @@ ukbd_get_key(struct ukbd_softc *sc, uint8_t wait) static void ukbd_interrupt(struct ukbd_softc *sc) { - uint32_t n_mod; - uint32_t o_mod; - uint32_t now = sc->sc_time_ms; - int32_t dtime; - uint8_t key; - uint8_t i; - uint8_t j; + const uint32_t now = sc->sc_time_ms; + unsigned key; UKBD_CTX_LOCK_ASSERT(); - if (sc->sc_ndata.keycode[0] == KEY_ERROR) - return; + /* Check for key changes */ + for (key = 0; key != UKBD_NKEYCODE; key++) { + const uint64_t mask = 1ULL << (key % 64); + const uint64_t delta = + sc->sc_odata.bitmap[key / 64] ^ + sc->sc_ndata.bitmap[key / 64]; - n_mod = sc->sc_ndata.modifiers; - o_mod = sc->sc_odata.modifiers; - if (n_mod != o_mod) { - for (i = 0; i < UKBD_NMOD; i++) { - if ((n_mod & ukbd_mods[i].mask) != - (o_mod & ukbd_mods[i].mask)) { - ukbd_put_key(sc, ukbd_mods[i].key | - ((n_mod & ukbd_mods[i].mask) ? - KEY_PRESS : KEY_RELEASE)); - } - } - } - /* Check for released keys. */ - for (i = 0; i < UKBD_NKEYCODE; i++) { - key = sc->sc_odata.keycode[i]; - if (key == 0) { - continue; - } - for (j = 0; j < UKBD_NKEYCODE; j++) { - if (sc->sc_ndata.keycode[j] == 0) { - continue; - } - if (key == sc->sc_ndata.keycode[j]) { - goto rfound; - } - } - ukbd_put_key(sc, key | KEY_RELEASE); -rfound: ; - } + if (mask == 1 && delta == 0) { + key += 63; + continue; /* skip empty areas */ + } else if (delta & mask) { + if (sc->sc_odata.bitmap[key / 64] & mask) { + ukbd_put_key(sc, key | KEY_RELEASE); - /* Check for pressed keys. */ - for (i = 0; i < UKBD_NKEYCODE; i++) { - key = sc->sc_ndata.keycode[i]; - if (key == 0) { - continue; - } - sc->sc_ntime[i] = now + sc->sc_kbd.kb_delay1; - for (j = 0; j < UKBD_NKEYCODE; j++) { - if (sc->sc_odata.keycode[j] == 0) { - continue; - } - if (key == sc->sc_odata.keycode[j]) { + /* clear repeating key, if any */ + if (sc->sc_repeat_key == key) + sc->sc_repeat_key = 0; + } else { + ukbd_put_key(sc, key | KEY_PRESS); - /* key is still pressed */ + if (ukbd_is_modifier_key(key)) + continue; - sc->sc_ntime[i] = sc->sc_otime[j]; - dtime = (sc->sc_otime[j] - now); - - if (dtime > 0) { - /* time has not elapsed */ - goto pfound; + /* + * Check for first new key and set + * initial delay and [re]start timer: + */ + if (sc->sc_repeat_key == 0) { + sc->sc_co_basetime = sbinuptime(); + sc->sc_delay = sc->sc_kbd.kb_delay1; + ukbd_start_timer(sc); } - sc->sc_ntime[i] = now + sc->sc_kbd.kb_delay2; - break; + + /* set repeat time for last key */ + sc->sc_repeat_time = now + sc->sc_kbd.kb_delay1; + sc->sc_repeat_key = key; } } - if (j == UKBD_NKEYCODE) { - /* New key - set initial delay and [re]start timer */ - sc->sc_co_basetime = sbinuptime(); - sc->sc_delay = sc->sc_kbd.kb_delay1; - ukbd_start_timer(sc); - } - ukbd_put_key(sc, key | KEY_PRESS); - - /* - * If any other key is presently down, force its repeat to be - * well in the future (100s). This makes the last key to be - * pressed do the autorepeat. - */ - for (j = 0; j != UKBD_NKEYCODE; j++) { - if (j != i) - sc->sc_ntime[j] = now + (100 * 1000); - } -pfound: ; } + /* synchronize old data with new data */ sc->sc_odata = sc->sc_ndata; + + /* check if last key is still pressed */ + if (sc->sc_repeat_key != 0) { + const int32_t dtime = (sc->sc_repeat_time - now); - memcpy(sc->sc_otime, sc->sc_ntime, sizeof(sc->sc_otime)); + /* check if time has elapsed */ + if (dtime <= 0) { + ukbd_put_key(sc, sc->sc_repeat_key | KEY_PRESS); + sc->sc_repeat_time = now + sc->sc_kbd.kb_delay2; + } + } + /* wakeup keyboard system */ ukbd_event_keyinput(sc); } @@ -686,8 +624,9 @@ ukbd_timeout(void *arg) } } -static uint8_t -ukbd_apple_fn(uint8_t keycode) { +static uint32_t +ukbd_apple_fn(uint32_t keycode) +{ switch (keycode) { case 0x28: return 0x49; /* RETURN -> INSERT */ case 0x2a: return 0x4c; /* BACKSPACE -> DEL */ @@ -699,8 +638,9 @@ ukbd_apple_fn(uint8_t keycode) { } } -static uint8_t -ukbd_apple_swap(uint8_t keycode) { +static uint32_t +ukbd_apple_swap(uint32_t keycode) +{ switch (keycode) { case 0x35: return 0x64; case 0x64: return 0x35; @@ -713,9 +653,10 @@ ukbd_intr_callback(struct usb_xfer *xfer, usb_error_t { struct ukbd_softc *sc = usbd_xfer_softc(xfer); struct usb_page_cache *pc; - uint8_t i; - uint8_t offset; + uint32_t i; uint8_t id; + uint8_t modifiers; + int offset; int len; UKBD_LOCK_ASSERT(); @@ -755,117 +696,72 @@ ukbd_intr_callback(struct usb_xfer *xfer, usb_error_t /* clear temporary storage */ memset(&sc->sc_ndata, 0, sizeof(sc->sc_ndata)); + /* clear modifiers */ + modifiers = 0; + /* scan through HID data */ if ((sc->sc_flags & UKBD_FLAG_APPLE_EJECT) && (id == sc->sc_id_apple_eject)) { if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_apple_eject)) - sc->sc_modifiers |= MOD_EJECT; - else - sc->sc_modifiers &= ~MOD_EJECT; + modifiers |= MOD_EJECT; } if ((sc->sc_flags & UKBD_FLAG_APPLE_FN) && (id == sc->sc_id_apple_fn)) { if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_apple_fn)) - sc->sc_modifiers |= MOD_FN; - else - sc->sc_modifiers &= ~MOD_FN; + modifiers |= MOD_FN; } - if ((sc->sc_flags & UKBD_FLAG_CTRL_L) && - (id == sc->sc_id_ctrl_l)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_ctrl_l)) - sc-> sc_modifiers |= MOD_CONTROL_L; - else - sc-> sc_modifiers &= ~MOD_CONTROL_L; - } - if ((sc->sc_flags & UKBD_FLAG_CTRL_R) && - (id == sc->sc_id_ctrl_r)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_ctrl_r)) - sc->sc_modifiers |= MOD_CONTROL_R; - else - sc->sc_modifiers &= ~MOD_CONTROL_R; - } - if ((sc->sc_flags & UKBD_FLAG_SHIFT_L) && - (id == sc->sc_id_shift_l)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_shift_l)) - sc->sc_modifiers |= MOD_SHIFT_L; - else - sc->sc_modifiers &= ~MOD_SHIFT_L; - } - if ((sc->sc_flags & UKBD_FLAG_SHIFT_R) && - (id == sc->sc_id_shift_r)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_shift_r)) - sc->sc_modifiers |= MOD_SHIFT_R; - else - sc->sc_modifiers &= ~MOD_SHIFT_R; - } - if ((sc->sc_flags & UKBD_FLAG_ALT_L) && - (id == sc->sc_id_alt_l)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_alt_l)) - sc->sc_modifiers |= MOD_ALT_L; - else - sc->sc_modifiers &= ~MOD_ALT_L; - } - if ((sc->sc_flags & UKBD_FLAG_ALT_R) && - (id == sc->sc_id_alt_r)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_alt_r)) - sc->sc_modifiers |= MOD_ALT_R; - else - sc->sc_modifiers &= ~MOD_ALT_R; - } - if ((sc->sc_flags & UKBD_FLAG_WIN_L) && - (id == sc->sc_id_win_l)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_win_l)) - sc->sc_modifiers |= MOD_WIN_L; - else - sc->sc_modifiers &= ~MOD_WIN_L; - } - if ((sc->sc_flags & UKBD_FLAG_WIN_R) && - (id == sc->sc_id_win_r)) { - if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_win_r)) - sc->sc_modifiers |= MOD_WIN_R; - else - sc->sc_modifiers &= ~MOD_WIN_R; - } - sc->sc_ndata.modifiers = sc->sc_modifiers; + for (i = 0; i != UKBD_NKEYCODE; i++) { + const uint64_t valid = sc->sc_loc_key_valid[i / 64]; + const uint64_t mask = 1ULL << (i % 64); - if ((sc->sc_flags & UKBD_FLAG_EVENTS) && - (id == sc->sc_id_events)) { - i = sc->sc_loc_events.count; - if (i > UKBD_NKEYCODE) - i = UKBD_NKEYCODE; - if (i > len) - i = len; - while (i--) { - sc->sc_ndata.keycode[i] = - hid_get_data(sc->sc_buffer + i, len - i, - &sc->sc_loc_events); - } - } + if (mask == 1 && valid == 0) { + i += 63; + continue; /* skip empty areas */ + } else if (~valid & mask) { + continue; /* location is not valid */ + } else if (id != sc->sc_id_loc_key[i]) { + continue; /* invalid HID ID */ + } else if (i == 0) { + offset = sc->sc_loc_key[0].count; + if (offset < 0 || offset > len) + offset = len; + while (offset--) { + uint32_t key = + hid_get_data(sc->sc_buffer + offset, len - offset, + &sc->sc_loc_key[i]); + if (modifiers & MOD_FN) + key = ukbd_apple_fn(key); + if (sc->sc_flags & UKBD_FLAG_APPLE_SWAP) + key = ukbd_apple_swap(key); + if (key == KEY_NONE || key == KEY_ERROR || key >= UKBD_NKEYCODE) + continue; + /* set key in bitmap */ + sc->sc_ndata.bitmap[key / 64] |= 1ULL << (key % 64); + } + } else if (hid_get_data(sc->sc_buffer, len, &sc->sc_loc_key[i])) { + uint32_t key = i; -#ifdef USB_DEBUG - DPRINTF("modifiers = 0x%04x\n", (int)sc->sc_modifiers); - for (i = 0; i < UKBD_NKEYCODE; i++) { - if (sc->sc_ndata.keycode[i]) { - DPRINTF("[%d] = 0x%02x\n", - (int)i, (int)sc->sc_ndata.keycode[i]); + if (modifiers & MOD_FN) + key = ukbd_apple_fn(key); + if (sc->sc_flags & UKBD_FLAG_APPLE_SWAP) + key = ukbd_apple_swap(key); + if (key == KEY_NONE || key == KEY_ERROR || key >= UKBD_NKEYCODE) + continue; + /* set key in bitmap */ + sc->sc_ndata.bitmap[key / 64] |= 1ULL << (key % 64); } } -#endif - if (sc->sc_modifiers & MOD_FN) { - for (i = 0; i < UKBD_NKEYCODE; i++) { - sc->sc_ndata.keycode[i] = - ukbd_apple_fn(sc->sc_ndata.keycode[i]); - } - } +#ifdef USB_DEBUG + DPRINTF("modifiers = 0x%04x\n", modifiers); + for (i = 0; i != UKBD_NKEYCODE; i++) { + const uint64_t valid = sc->sc_ndata.bitmap[i / 64]; + const uint64_t mask = 1ULL << (i % 64); - if (sc->sc_flags & UKBD_FLAG_APPLE_SWAP) { - for (i = 0; i < UKBD_NKEYCODE; i++) { - sc->sc_ndata.keycode[i] = - ukbd_apple_swap(sc->sc_ndata.keycode[i]); - } + if (valid & mask) + DPRINTF("Key 0x%02x pressed\n", i); } - +#endif ukbd_interrupt(sc); case USB_ST_SETUP: @@ -1094,10 +990,14 @@ static void ukbd_parse_hid(struct ukbd_softc *sc, const uint8_t *ptr, uint32_t len) { uint32_t flags; + uint32_t key; /* reset detected bits */ sc->sc_flags &= ~UKBD_FLAG_HID_MASK; + /* reset detected keys */ + memset(sc->sc_loc_key_valid, 0, sizeof(sc->sc_loc_key_valid)); + /* check if there is an ID byte */ sc->sc_kbd_size = hid_report_size(ptr, len, hid_input, &sc->sc_kbd_id); @@ -1120,84 +1020,34 @@ ukbd_parse_hid(struct ukbd_softc *sc, const uint8_t *p sc->sc_flags |= UKBD_FLAG_APPLE_FN; DPRINTFN(1, "Found Apple FN-key\n"); } - /* figure out some keys */ - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE0), - hid_input, 0, &sc->sc_loc_ctrl_l, &flags, - &sc->sc_id_ctrl_l)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_CTRL_L; - DPRINTFN(1, "Found left control\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE4), - hid_input, 0, &sc->sc_loc_ctrl_r, &flags, - &sc->sc_id_ctrl_r)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_CTRL_R; - DPRINTFN(1, "Found right control\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE1), - hid_input, 0, &sc->sc_loc_shift_l, &flags, - &sc->sc_id_shift_l)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_SHIFT_L; - DPRINTFN(1, "Found left shift\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE5), - hid_input, 0, &sc->sc_loc_shift_r, &flags, - &sc->sc_id_shift_r)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_SHIFT_R; - DPRINTFN(1, "Found right shift\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE2), - hid_input, 0, &sc->sc_loc_alt_l, &flags, - &sc->sc_id_alt_l)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_ALT_L; - DPRINTFN(1, "Found left alt\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE6), - hid_input, 0, &sc->sc_loc_alt_r, &flags, - &sc->sc_id_alt_r)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_ALT_R; - DPRINTFN(1, "Found right alt\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE3), - hid_input, 0, &sc->sc_loc_win_l, &flags, - &sc->sc_id_win_l)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_WIN_L; - DPRINTFN(1, "Found left GUI\n"); - } - if (hid_locate(ptr, len, - HID_USAGE2(HUP_KEYBOARD, 0xE7), - hid_input, 0, &sc->sc_loc_win_r, &flags, - &sc->sc_id_win_r)) { - if (flags & HIO_VARIABLE) - sc->sc_flags |= UKBD_FLAG_WIN_R; - DPRINTFN(1, "Found right GUI\n"); - } + /* figure out event buffer */ if (hid_locate(ptr, len, HID_USAGE2(HUP_KEYBOARD, 0x00), - hid_input, 0, &sc->sc_loc_events, &flags, - &sc->sc_id_events)) { + hid_input, 0, &sc->sc_loc_key[0], &flags, + &sc->sc_id_loc_key[0])) { if (flags & HIO_VARIABLE) { DPRINTFN(1, "Ignoring keyboard event control\n"); } else { - sc->sc_flags |= UKBD_FLAG_EVENTS; + sc->sc_loc_key_valid[0] |= 1; DPRINTFN(1, "Found keyboard event array\n"); } } + /* figure out the keys */ + for (key = 1; key != UKBD_NKEYCODE; key++) { + if (hid_locate(ptr, len, + HID_USAGE2(HUP_KEYBOARD, key), + hid_input, 0, &sc->sc_loc_key[key], &flags, + &sc->sc_id_loc_key[key])) { + if (flags & HIO_VARIABLE) { + sc->sc_loc_key_valid[key / 64] |= + 1ULL << (key % 64); + DPRINTFN(1, "Found key 0x%02x\n", key); + } + } + } + /* figure out leds on keyboard */ sc->sc_led_size = hid_report_size(ptr, len, hid_output, NULL); @@ -1323,7 +1173,7 @@ ukbd_attach(device_t dev) /* check if we should use the boot protocol */ if (usb_test_quirk(uaa, UQ_KBD_BOOTPROTO) || - (err != 0) || (!(sc->sc_flags & UKBD_FLAG_EVENTS))) { + (err != 0) || ukbd_any_key_valid(sc) == false) { DPRINTF("Forcing boot protocol\n"); @@ -1666,11 +1516,11 @@ ukbd_read(keyboard_t *kbd, int wait) ++(kbd->kb_count); #ifdef UKBD_EMULATE_ATSCANCODE - keycode = ukbd_atkeycode(usbcode, sc->sc_ndata.modifiers); + keycode = ukbd_atkeycode(usbcode, sc->sc_ndata.bitmap); if (keycode == NN) { return -1; } - return (ukbd_key2scan(sc, keycode, sc->sc_ndata.modifiers, + return (ukbd_key2scan(sc, keycode, sc->sc_ndata.bitmap, (usbcode & KEY_RELEASE))); #else /* !UKBD_EMULATE_ATSCANCODE */ return (usbcode); @@ -1737,13 +1587,13 @@ next_code: #ifdef UKBD_EMULATE_ATSCANCODE /* USB key index -> key code -> AT scan code */ - keycode = ukbd_atkeycode(usbcode, sc->sc_ndata.modifiers); + keycode = ukbd_atkeycode(usbcode, sc->sc_ndata.bitmap); if (keycode == NN) { return (NOKEY); } /* return an AT scan code for the K_RAW mode */ if (sc->sc_mode == K_RAW) { - return (ukbd_key2scan(sc, keycode, sc->sc_ndata.modifiers, + return (ukbd_key2scan(sc, keycode, sc->sc_ndata.bitmap, (usbcode & KEY_RELEASE))); } #else /* !UKBD_EMULATE_ATSCANCODE */ @@ -2067,8 +1917,8 @@ ukbd_clear_state(keyboard_t *kbd) #endif memset(&sc->sc_ndata, 0, sizeof(sc->sc_ndata)); memset(&sc->sc_odata, 0, sizeof(sc->sc_odata)); - memset(&sc->sc_ntime, 0, sizeof(sc->sc_ntime)); - memset(&sc->sc_otime, 0, sizeof(sc->sc_otime)); + sc->sc_repeat_time = 0; + sc->sc_repeat_key = 0; } /* save the internal state, not used */ @@ -2155,11 +2005,12 @@ ukbd_set_typematic(keyboard_t *kbd, int code) #ifdef UKBD_EMULATE_ATSCANCODE static uint32_t -ukbd_atkeycode(int usbcode, int shift) +ukbd_atkeycode(int usbcode, const uint64_t *bitmap) { uint32_t keycode; keycode = ukbd_trtab[KEY_INDEX(usbcode)]; + /* * Translate Alt-PrintScreen to SysRq. * @@ -2174,13 +2025,14 @@ ukbd_atkeycode(int usbcode, int shift) * is routine. */ if ((keycode == 0x5c || keycode == 0x7e) && - shift & (MOD_ALT_L | MOD_ALT_R)) + (UKBD_KEY_PRESSED(bitmap, 0xe2 /* ALT-L */) || + UKBD_KEY_PRESSED(bitmap, 0xe6 /* ALT-R */))) return (0x54); return (keycode); } static int -ukbd_key2scan(struct ukbd_softc *sc, int code, int shift, int up) +ukbd_key2scan(struct ukbd_softc *sc, int code, const uint64_t *bitmap, int up) { static const int scan[] = { /* 89 */ @@ -2240,12 +2092,17 @@ ukbd_key2scan(struct ukbd_softc *sc, int code, int shi code = scan[code - 89]; } /* PrintScreen */ - if (code == 0x137 && (!(shift & (MOD_CONTROL_L | MOD_CONTROL_R | - MOD_SHIFT_L | MOD_SHIFT_R)))) { + if (code == 0x137 && (!( + UKBD_KEY_PRESSED(bitmap, 0xe0 /* CTRL-L */) || + UKBD_KEY_PRESSED(bitmap, 0xe4 /* CTRL-R */) || + UKBD_KEY_PRESSED(bitmap, 0xe1 /* SHIFT-L */) || + UKBD_KEY_PRESSED(bitmap, 0xe5 /* SHIFT-R */)))) { code |= SCAN_PREFIX_SHIFT; } /* Pause/Break */ - if ((code == 0x146) && (!(shift & (MOD_CONTROL_L | MOD_CONTROL_R)))) { + if ((code == 0x146) && (!( + UKBD_KEY_PRESSED(bitmap, 0xe0 /* CTRL-L */) || + UKBD_KEY_PRESSED(bitmap, 0xe4 /* CTRL-R */)))) { code = (0x45 | SCAN_PREFIX_E1 | SCAN_PREFIX_CTL); } code |= (up ? SCAN_RELEASE : SCAN_PRESS); From owner-svn-src-all@freebsd.org Fri Feb 21 09:28:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3ED84258406; Fri, 21 Feb 2020 09: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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48P5k74zdsz3x1M; Fri, 21 Feb 2020 09: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 60B568A5B; Fri, 21 Feb 2020 09: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 01L9Sleo043511; Fri, 21 Feb 2020 09:28:47 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L9SjdT043506; Fri, 21 Feb 2020 09:28:45 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202002210928.01L9SjdT043506@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Fri, 21 Feb 2020 09:28:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358217 - in head/sys: compat/linuxkpi/common/include/linux compat/linuxkpi/common/src conf modules/linuxkpi X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: compat/linuxkpi/common/include/linux compat/linuxkpi/common/src conf modules/linuxkpi X-SVN-Commit-Revision: 358217 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 09:28:48 -0000 Author: manu Date: Fri Feb 21 09:28:45 2020 New Revision: 358217 URL: https://svnweb.freebsd.org/changeset/base/358217 Log: linuxkpi: Move shmem related functions in it's own file For drmkpi (D23085) we don't want the Linux struct file as we don't emulate everything. Also the prototypes should be in shmem_fs.h to have 100% compatibility with Linux. Reviewed by: hselasky MFC after: Maybe Differential Revision: https://reviews.freebsd.org/D23764 Added: head/sys/compat/linuxkpi/common/include/linux/shmem_fs.h (contents, props changed) head/sys/compat/linuxkpi/common/src/linux_shmemfs.c (contents, props changed) Modified: head/sys/compat/linuxkpi/common/include/linux/fs.h head/sys/compat/linuxkpi/common/src/linux_page.c head/sys/conf/files head/sys/modules/linuxkpi/Makefile Modified: head/sys/compat/linuxkpi/common/include/linux/fs.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/linux/fs.h Fri Feb 21 09:07:01 2020 (r358216) +++ head/sys/compat/linuxkpi/common/include/linux/fs.h Fri Feb 21 09:28:45 2020 (r358217) @@ -302,25 +302,4 @@ call_mmap(struct linux_file *file, struct vm_area_stru return (file->f_op->mmap(file, vma)); } -/* Shared memory support */ -unsigned long linux_invalidate_mapping_pages(vm_object_t, pgoff_t, pgoff_t); -struct page *linux_shmem_read_mapping_page_gfp(vm_object_t, int, gfp_t); -struct linux_file *linux_shmem_file_setup(const char *, loff_t, unsigned long); -void linux_shmem_truncate_range(vm_object_t, loff_t, loff_t); - -#define invalidate_mapping_pages(...) \ - linux_invalidate_mapping_pages(__VA_ARGS__) - -#define shmem_read_mapping_page(...) \ - linux_shmem_read_mapping_page_gfp(__VA_ARGS__, 0) - -#define shmem_read_mapping_page_gfp(...) \ - linux_shmem_read_mapping_page_gfp(__VA_ARGS__) - -#define shmem_file_setup(...) \ - linux_shmem_file_setup(__VA_ARGS__) - -#define shmem_truncate_range(...) \ - linux_shmem_truncate_range(__VA_ARGS__) - #endif /* _LINUX_FS_H_ */ Added: head/sys/compat/linuxkpi/common/include/linux/shmem_fs.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/compat/linuxkpi/common/include/linux/shmem_fs.h Fri Feb 21 09:28:45 2020 (r358217) @@ -0,0 +1,55 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2010 iX Systems, Inc. + * Copyright (c) 2010 Panasas, Inc. + * Copyright (c) 2013-2018 Mellanox Technologies, Ltd. + * 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 unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ +#ifndef _LINUX_SHMEM_FS_H_ +#define _LINUX_SHMEM_FS_H_ + +/* Shared memory support */ +unsigned long linux_invalidate_mapping_pages(vm_object_t, pgoff_t, pgoff_t); +struct page *linux_shmem_read_mapping_page_gfp(vm_object_t, int, gfp_t); +struct linux_file *linux_shmem_file_setup(const char *, loff_t, unsigned long); +void linux_shmem_truncate_range(vm_object_t, loff_t, loff_t); + +#define invalidate_mapping_pages(...) \ + linux_invalidate_mapping_pages(__VA_ARGS__) + +#define shmem_read_mapping_page(...) \ + linux_shmem_read_mapping_page_gfp(__VA_ARGS__, 0) + +#define shmem_read_mapping_page_gfp(...) \ + linux_shmem_read_mapping_page_gfp(__VA_ARGS__) + +#define shmem_file_setup(...) \ + linux_shmem_file_setup(__VA_ARGS__) + +#define shmem_truncate_range(...) \ + linux_shmem_truncate_range(__VA_ARGS__) + +#endif /* _LINUX_SHMEM_FS_H_ */ Modified: head/sys/compat/linuxkpi/common/src/linux_page.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_page.c Fri Feb 21 09:07:01 2020 (r358216) +++ head/sys/compat/linuxkpi/common/src/linux_page.c Fri Feb 21 09:28:45 2020 (r358217) @@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include void si_meminfo(struct sysinfo *si) @@ -274,87 +275,4 @@ int is_vmalloc_addr(const void *addr) { return (vtoslab((vm_offset_t)addr & ~UMA_SLAB_MASK) != NULL); -} - -struct page * -linux_shmem_read_mapping_page_gfp(vm_object_t obj, int pindex, gfp_t gfp) -{ - vm_page_t page; - int rv; - - if ((gfp & GFP_NOWAIT) != 0) - panic("GFP_NOWAIT is unimplemented"); - - VM_OBJECT_WLOCK(obj); - rv = vm_page_grab_valid(&page, obj, pindex, VM_ALLOC_NORMAL | - VM_ALLOC_NOBUSY | VM_ALLOC_WIRED); - VM_OBJECT_WUNLOCK(obj); - if (rv != VM_PAGER_OK) - return (ERR_PTR(-EINVAL)); - return (page); -} - -struct linux_file * -linux_shmem_file_setup(const char *name, loff_t size, unsigned long flags) -{ - struct fileobj { - struct linux_file file __aligned(sizeof(void *)); - struct vnode vnode __aligned(sizeof(void *)); - }; - struct fileobj *fileobj; - struct linux_file *filp; - struct vnode *vp; - int error; - - fileobj = kzalloc(sizeof(*fileobj), GFP_KERNEL); - if (fileobj == NULL) { - error = -ENOMEM; - goto err_0; - } - filp = &fileobj->file; - vp = &fileobj->vnode; - - filp->f_count = 1; - filp->f_vnode = vp; - filp->f_shmem = vm_pager_allocate(OBJT_DEFAULT, NULL, size, - VM_PROT_READ | VM_PROT_WRITE, 0, curthread->td_ucred); - if (filp->f_shmem == NULL) { - error = -ENOMEM; - goto err_1; - } - return (filp); -err_1: - kfree(filp); -err_0: - return (ERR_PTR(error)); -} - -static vm_ooffset_t -linux_invalidate_mapping_pages_sub(vm_object_t obj, vm_pindex_t start, - vm_pindex_t end, int flags) -{ - int start_count, end_count; - - VM_OBJECT_WLOCK(obj); - start_count = obj->resident_page_count; - vm_object_page_remove(obj, start, end, flags); - end_count = obj->resident_page_count; - VM_OBJECT_WUNLOCK(obj); - return (start_count - end_count); -} - -unsigned long -linux_invalidate_mapping_pages(vm_object_t obj, pgoff_t start, pgoff_t end) -{ - - return (linux_invalidate_mapping_pages_sub(obj, start, end, OBJPR_CLEANONLY)); -} - -void -linux_shmem_truncate_range(vm_object_t obj, loff_t lstart, loff_t lend) -{ - vm_pindex_t start = OFF_TO_IDX(lstart + PAGE_SIZE - 1); - vm_pindex_t end = OFF_TO_IDX(lend + 1); - - (void) linux_invalidate_mapping_pages_sub(obj, start, end, 0); } Added: head/sys/compat/linuxkpi/common/src/linux_shmemfs.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/compat/linuxkpi/common/src/linux_shmemfs.c Fri Feb 21 09:28:45 2020 (r358217) @@ -0,0 +1,128 @@ +/*- + * Copyright (c) 2010 Isilon Systems, Inc. + * Copyright (c) 2016 Matthew Macy (mmacy@mattmacy.io) + * Copyright (c) 2017 Mellanox Technologies, Ltd. + * 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 unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +struct page * +linux_shmem_read_mapping_page_gfp(vm_object_t obj, int pindex, gfp_t gfp) +{ + vm_page_t page; + int rv; + + if ((gfp & GFP_NOWAIT) != 0) + panic("GFP_NOWAIT is unimplemented"); + + VM_OBJECT_WLOCK(obj); + rv = vm_page_grab_valid(&page, obj, pindex, VM_ALLOC_NORMAL | + VM_ALLOC_NOBUSY | VM_ALLOC_WIRED); + VM_OBJECT_WUNLOCK(obj); + if (rv != VM_PAGER_OK) + return (ERR_PTR(-EINVAL)); + return (page); +} + +struct linux_file * +linux_shmem_file_setup(const char *name, loff_t size, unsigned long flags) +{ + struct fileobj { + struct linux_file file __aligned(sizeof(void *)); + struct vnode vnode __aligned(sizeof(void *)); + }; + struct fileobj *fileobj; + struct linux_file *filp; + struct vnode *vp; + int error; + + fileobj = kzalloc(sizeof(*fileobj), GFP_KERNEL); + if (fileobj == NULL) { + error = -ENOMEM; + goto err_0; + } + filp = &fileobj->file; + vp = &fileobj->vnode; + + filp->f_count = 1; + filp->f_vnode = vp; + filp->f_shmem = vm_pager_allocate(OBJT_DEFAULT, NULL, size, + VM_PROT_READ | VM_PROT_WRITE, 0, curthread->td_ucred); + if (filp->f_shmem == NULL) { + error = -ENOMEM; + goto err_1; + } + return (filp); +err_1: + kfree(filp); +err_0: + return (ERR_PTR(error)); +} + +static vm_ooffset_t +linux_invalidate_mapping_pages_sub(vm_object_t obj, vm_pindex_t start, + vm_pindex_t end, int flags) +{ + int start_count, end_count; + + VM_OBJECT_WLOCK(obj); + start_count = obj->resident_page_count; + vm_object_page_remove(obj, start, end, flags); + end_count = obj->resident_page_count; + VM_OBJECT_WUNLOCK(obj); + return (start_count - end_count); +} + +unsigned long +linux_invalidate_mapping_pages(vm_object_t obj, pgoff_t start, pgoff_t end) +{ + + return (linux_invalidate_mapping_pages_sub(obj, start, end, OBJPR_CLEANONLY)); +} + +void +linux_shmem_truncate_range(vm_object_t obj, loff_t lstart, loff_t lend) +{ + vm_pindex_t start = OFF_TO_IDX(lstart + PAGE_SIZE - 1); + vm_pindex_t end = OFF_TO_IDX(lend + 1); + + (void) linux_invalidate_mapping_pages_sub(obj, start, end, 0); +} Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Fri Feb 21 09:07:01 2020 (r358216) +++ head/sys/conf/files Fri Feb 21 09:28:45 2020 (r358217) @@ -4476,6 +4476,8 @@ compat/linuxkpi/common/src/linux_rcu.c optional compa compile-with "${LINUXKPI_C} -I$S/contrib/ck/include" compat/linuxkpi/common/src/linux_schedule.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" +compat/linuxkpi/common/src/linux_shmemfs.c optional compat_linuxkpi \ + compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_slab.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_usb.c optional compat_linuxkpi usb \ Modified: head/sys/modules/linuxkpi/Makefile ============================================================================== --- head/sys/modules/linuxkpi/Makefile Fri Feb 21 09:07:01 2020 (r358216) +++ head/sys/modules/linuxkpi/Makefile Fri Feb 21 09:28:45 2020 (r358217) @@ -15,6 +15,7 @@ SRCS= linux_compat.c \ linux_rcu.c \ linux_seq_file.c \ linux_schedule.c \ + linux_shmemfs.c \ linux_slab.c \ linux_tasklet.c \ linux_usb.c \ From owner-svn-src-all@freebsd.org Fri Feb 21 09:29:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AB1822584A2; Fri, 21 Feb 2020 09:29:57 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48P5lT3GKhz3yh8; Fri, 21 Feb 2020 09:29:57 +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 637948A63; Fri, 21 Feb 2020 09:29:57 +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 01L9TvbR043610; Fri, 21 Feb 2020 09:29:57 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L9Tv79043609; Fri, 21 Feb 2020 09:29:57 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202002210929.01L9Tv79043609@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Fri, 21 Feb 2020 09:29:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358218 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 358218 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 09:29:57 -0000 Author: manu Date: Fri Feb 21 09:29:56 2020 New Revision: 358218 URL: https://svnweb.freebsd.org/changeset/base/358218 Log: Bump _FreeBSD_version after the recent linuxkpi changes Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Fri Feb 21 09:28:45 2020 (r358217) +++ head/sys/sys/param.h Fri Feb 21 09:29:56 2020 (r358218) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300080 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300081 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Fri Feb 21 09:52:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AD0BF258BAB; Fri, 21 Feb 2020 09:52:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48P6FK3tXWz3GQ0; Fri, 21 Feb 2020 09:52:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 55BBB8FE2; Fri, 21 Feb 2020 09:52:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01L9qLiW059577; Fri, 21 Feb 2020 09:52:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01L9qLUb059562; Fri, 21 Feb 2020 09:52:21 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002210952.01L9qLUb059562@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 21 Feb 2020 09:52:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358219 - head/sys/dev/acpica X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/acpica X-SVN-Commit-Revision: 358219 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 09:52:21 -0000 Author: hselasky Date: Fri Feb 21 09:52:20 2020 New Revision: 358219 URL: https://svnweb.freebsd.org/changeset/base/358219 Log: Make sure the ACPI lid state is updated during boot and after resume. While at it update the sysctl(9) description for the lid state. Differential Revision: https://reviews.freebsd.org/D23724 PR: 240881 Submitted by: Yuri Pankov MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/acpica/acpi_lid.c Modified: head/sys/dev/acpica/acpi_lid.c ============================================================================== --- head/sys/dev/acpica/acpi_lid.c Fri Feb 21 09:29:56 2020 (r358218) +++ head/sys/dev/acpica/acpi_lid.c Fri Feb 21 09:52:20 2020 (r358219) @@ -124,13 +124,16 @@ acpi_lid_attach(device_t dev) if (acpi_parse_prw(sc->lid_handle, &prw) == 0) AcpiEnableGpe(prw.gpe_handle, prw.gpe_bit); + /* Get the initial lid status, ignore failures */ + (void) acpi_GetInteger(sc->lid_handle, "_LID", &sc->lid_status); + /* * Export the lid status */ SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "state", CTLFLAG_RD, &sc->lid_status, 0, - "Device set to wake the system"); + "Device state (0 = closed, 1 = open)"); return (0); } @@ -144,6 +147,13 @@ acpi_lid_suspend(device_t dev) static int acpi_lid_resume(device_t dev) { + struct acpi_lid_softc *sc; + + sc = device_get_softc(dev); + + /* Get lid status after resume, ignore failures */ + (void) acpi_GetInteger(sc->lid_handle, "_LID", &sc->lid_status); + return (0); } From owner-svn-src-all@freebsd.org Fri Feb 21 10:14:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 633EF2593BC; Fri, 21 Feb 2020 10:14:04 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48P6kN01nzz4FGV; Fri, 21 Feb 2020 10:14:03 +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 B9F95937F; Fri, 21 Feb 2020 10:14:03 +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 01LAE3xF073214; Fri, 21 Feb 2020 10:14:03 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LAE3eB073212; Fri, 21 Feb 2020 10:14:03 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202002211014.01LAE3eB073212@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Fri, 21 Feb 2020 10:14:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358220 - head/sys/dev/mlx5/mlx5_ib X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_ib X-SVN-Commit-Revision: 358220 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 10:14:04 -0000 Author: hselasky Date: Fri Feb 21 10:14:02 2020 New Revision: 358220 URL: https://svnweb.freebsd.org/changeset/base/358220 Log: Fix broken MLX5_IB_INDEX() macro in mlx5ib(4). The index should be computed as distance from arg[0] and not the beginning of struct mlx5_ib_congestion . While at it fix a use of zero length array to avoid depending on undefined compiler behaviour. MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/mlx5_ib/mlx5_ib.h head/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c Modified: head/sys/dev/mlx5/mlx5_ib/mlx5_ib.h ============================================================================== --- head/sys/dev/mlx5/mlx5_ib/mlx5_ib.h Fri Feb 21 09:52:20 2020 (r358219) +++ head/sys/dev/mlx5/mlx5_ib/mlx5_ib.h Fri Feb 21 10:14:02 2020 (r358220) @@ -650,9 +650,13 @@ struct mlx5_ib_congestion { struct sysctl_ctx_list ctx; struct sx lock; struct delayed_work dwork; - u64 arg [0]; - MLX5_IB_CONG_PARAMS(MLX5_IB_STATS_VAR) - MLX5_IB_CONG_STATS(MLX5_IB_STATS_VAR) + union { + u64 arg[1]; + struct { + MLX5_IB_CONG_PARAMS(MLX5_IB_STATS_VAR) + MLX5_IB_CONG_STATS(MLX5_IB_STATS_VAR) + }; + }; }; struct mlx5_ib_dev { Modified: head/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c ============================================================================== --- head/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c Fri Feb 21 09:52:20 2020 (r358219) +++ head/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c Fri Feb 21 10:14:02 2020 (r358220) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2013-2015, Mellanox Technologies, Ltd. All rights reserved. + * Copyright (c) 2013-2020, Mellanox Technologies, Ltd. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -37,7 +37,9 @@ static const char *mlx5_ib_cong_stats_desc[] = { MLX5_IB_CONG_STATS(MLX5_IB_STATS_DESC) }; -#define MLX5_IB_INDEX(field) (__offsetof(struct mlx5_ib_congestion, field) / sizeof(u64)) +#define MLX5_IB_INDEX(field) ( \ + (__offsetof(struct mlx5_ib_congestion, field) - \ + __offsetof(struct mlx5_ib_congestion, arg[0])) / sizeof(u64)) #define MLX5_IB_FLD_MAX(type, field) ((1ULL << __mlx5_bit_sz(type, field)) - 1ULL) #define MLX5_IB_SET_CLIPPED(type, ptr, field, var) do { \ /* rangecheck */ \ From owner-svn-src-all@freebsd.org Fri Feb 21 14:40:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F298825FA68; Fri, 21 Feb 2020 14:40:08 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PDdN5Tr9z4QGC; Fri, 21 Feb 2020 14:40:08 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A4F58C463; Fri, 21 Feb 2020 14:40:08 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01LEe8CJ029689; Fri, 21 Feb 2020 14:40:08 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LEe8fA029688; Fri, 21 Feb 2020 14:40:08 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202002211440.01LEe8fA029688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 21 Feb 2020 14:40:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358221 - stable/12/contrib/elftoolchain/addr2line X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/contrib/elftoolchain/addr2line X-SVN-Commit-Revision: 358221 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 14:40:09 -0000 Author: markj Date: Fri Feb 21 14:40:08 2020 New Revision: 358221 URL: https://svnweb.freebsd.org/changeset/base/358221 Log: Revert r350515 for now. It seems to cause build failures when Capsicum support is disabled in src.conf. PR: 244258 Reported by: rozhuk.im@gmail.com, Giacomo Olgeni Modified: stable/12/contrib/elftoolchain/addr2line/addr2line.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/elftoolchain/addr2line/addr2line.c ============================================================================== --- stable/12/contrib/elftoolchain/addr2line/addr2line.c Fri Feb 21 10:14:02 2020 (r358220) +++ stable/12/contrib/elftoolchain/addr2line/addr2line.c Fri Feb 21 14:40:08 2020 (r358221) @@ -27,7 +27,6 @@ #include #include -#include #include #include #include @@ -688,7 +687,6 @@ find_section_base(const char *exe, Elf *e, const char int main(int argc, char **argv) { - cap_rights_t rights; Elf *e; Dwarf_Debug dbg; Dwarf_Error de; @@ -745,16 +743,6 @@ main(int argc, char **argv) if ((fd = open(exe, O_RDONLY)) < 0) err(EXIT_FAILURE, "%s", exe); - - if (caph_rights_limit(fd, cap_rights_init(&rights, CAP_FSTAT, - CAP_MMAP_R)) < 0) - errx(EXIT_FAILURE, "caph_rights_limit"); - - caph_cache_catpages(); - if (caph_limit_stdio() < 0) - errx(EXIT_FAILURE, "failed to limit stdio rights"); - if (caph_enter() < 0) - errx(EXIT_FAILURE, "failed to enter capability mode"); if (dwarf_init(fd, DW_DLC_READ, NULL, NULL, &dbg, &de)) errx(EXIT_FAILURE, "dwarf_init: %s", dwarf_errmsg(de)); From owner-svn-src-all@freebsd.org Fri Feb 21 14:45:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 55A0325FD31; Fri, 21 Feb 2020 14:45:49 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PDlx1Z5Cz4d9w; Fri, 21 Feb 2020 14:45: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 20B9EC649; Fri, 21 Feb 2020 14:45: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 01LEjn80035383; Fri, 21 Feb 2020 14:45:49 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LEjmXP035382; Fri, 21 Feb 2020 14:45:48 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202002211445.01LEjmXP035382@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 21 Feb 2020 14:45:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358222 - stable/12/contrib/elftoolchain/addr2line X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/contrib/elftoolchain/addr2line X-SVN-Commit-Revision: 358222 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 14:45:49 -0000 Author: markj Date: Fri Feb 21 14:45:48 2020 New Revision: 358222 URL: https://svnweb.freebsd.org/changeset/base/358222 Log: MFC r357862 (by emaste): addr2line: use stdbool.h header for bool Modified: stable/12/contrib/elftoolchain/addr2line/addr2line.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/elftoolchain/addr2line/addr2line.c ============================================================================== --- stable/12/contrib/elftoolchain/addr2line/addr2line.c Fri Feb 21 14:40:08 2020 (r358221) +++ stable/12/contrib/elftoolchain/addr2line/addr2line.c Fri Feb 21 14:45:48 2020 (r358222) @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include From owner-svn-src-all@freebsd.org Fri Feb 21 16:23:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9540123A26F; Fri, 21 Feb 2020 16:23:01 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PGw53QNWz4SJY; Fri, 21 Feb 2020 16:23:01 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6FA9AD873; Fri, 21 Feb 2020 16:23:01 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01LGN1WW094918; Fri, 21 Feb 2020 16:23:01 GMT (envelope-from kaktus@FreeBSD.org) Received: (from kaktus@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LGN0gf094915; Fri, 21 Feb 2020 16:23:00 GMT (envelope-from kaktus@FreeBSD.org) Message-Id: <202002211623.01LGN0gf094915@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kaktus set sender to kaktus@FreeBSD.org using -f From: Pawel Biernacki Date: Fri, 21 Feb 2020 16:23:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358223 - in head/sys: netinet netpfil/pf X-SVN-Group: head X-SVN-Commit-Author: kaktus X-SVN-Commit-Paths: in head/sys: netinet netpfil/pf X-SVN-Commit-Revision: 358223 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 16:23:01 -0000 Author: kaktus Date: Fri Feb 21 16:23:00 2020 New Revision: 358223 URL: https://svnweb.freebsd.org/changeset/base/358223 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (6 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. Mark all nodes in pf, pfsync and carp as MPSAFE. Reviewed by: kp Approved by: kib (mentor, blanket) Differential Revision: https://reviews.freebsd.org/D23634 Modified: head/sys/netinet/ip_carp.c head/sys/netpfil/pf/if_pfsync.c head/sys/netpfil/pf/pf.c Modified: head/sys/netinet/ip_carp.c ============================================================================== --- head/sys/netinet/ip_carp.c Fri Feb 21 14:45:48 2020 (r358222) +++ head/sys/netinet/ip_carp.c Fri Feb 21 16:23:00 2020 (r358223) @@ -218,19 +218,22 @@ static int carp_allow_sysctl(SYSCTL_HANDLER_ARGS); static int carp_dscp_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_NODE(_net_inet, IPPROTO_CARP, carp, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, + "CARP"); SYSCTL_PROC(_net_inet_carp, OID_AUTO, allow, - CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW, 0, 0, carp_allow_sysctl, "I", + CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + 0, 0, carp_allow_sysctl, "I", "Accept incoming CARP packets"); SYSCTL_PROC(_net_inet_carp, OID_AUTO, dscp, - CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW, 0, 0, carp_dscp_sysctl, "I", + CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + 0, 0, carp_dscp_sysctl, "I", "DSCP value for 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, &VNET_NAME(carp_log), 0, "CARP log level"); SYSCTL_PROC(_net_inet_carp, OID_AUTO, demotion, - CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW, + CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, 0, 0, carp_demote_adj_sysctl, "I", "Adjust demotion factor (skew of advskew)"); SYSCTL_INT(_net_inet_carp, OID_AUTO, senderr_demotion_factor, Modified: head/sys/netpfil/pf/if_pfsync.c ============================================================================== --- head/sys/netpfil/pf/if_pfsync.c Fri Feb 21 14:45:48 2020 (r358222) +++ head/sys/netpfil/pf/if_pfsync.c Fri Feb 21 16:23:00 2020 (r358223) @@ -273,7 +273,8 @@ static void pfsync_uninit(void); static unsigned long pfsync_buckets; -SYSCTL_NODE(_net, OID_AUTO, pfsync, CTLFLAG_RW, 0, "PFSYNC"); +SYSCTL_NODE(_net, OID_AUTO, pfsync, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, + "PFSYNC"); SYSCTL_STRUCT(_net_pfsync, OID_AUTO, stats, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(pfsyncstats), pfsyncstats, "PFSYNC statistics (struct pfsyncstats, net/if_pfsync.h)"); Modified: head/sys/netpfil/pf/pf.c ============================================================================== --- head/sys/netpfil/pf/pf.c Fri Feb 21 14:45:48 2020 (r358222) +++ head/sys/netpfil/pf/pf.c Fri Feb 21 16:23:00 2020 (r358223) @@ -369,7 +369,8 @@ VNET_DEFINE(struct pf_keyhash *, pf_keyhash); VNET_DEFINE(struct pf_idhash *, pf_idhash); VNET_DEFINE(struct pf_srchash *, pf_srchash); -SYSCTL_NODE(_net, OID_AUTO, pf, CTLFLAG_RW, 0, "pf(4)"); +SYSCTL_NODE(_net, OID_AUTO, pf, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, + "pf(4)"); u_long pf_hashmask; u_long pf_srchashmask; From owner-svn-src-all@freebsd.org Fri Feb 21 16:32:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B9BFB23A802; Fri, 21 Feb 2020 16:32:20 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PH6r44Cwz4ntZ; Fri, 21 Feb 2020 16:32:20 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 597E1DA34; Fri, 21 Feb 2020 16:32:20 +0000 (UTC) (envelope-from kaktus@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01LGWK9r001103; Fri, 21 Feb 2020 16:32:20 GMT (envelope-from kaktus@FreeBSD.org) Received: (from kaktus@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LGWH5W001089; Fri, 21 Feb 2020 16:32:17 GMT (envelope-from kaktus@FreeBSD.org) Message-Id: <202002211632.01LGWH5W001089@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kaktus set sender to kaktus@FreeBSD.org using -f From: Pawel Biernacki Date: Fri, 21 Feb 2020 16:32:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358224 - in head/sys: dev/ath dev/ath/ath_rate/sample dev/otus net80211 X-SVN-Group: head X-SVN-Commit-Author: kaktus X-SVN-Commit-Paths: in head/sys: dev/ath dev/ath/ath_rate/sample dev/otus net80211 X-SVN-Commit-Revision: 358224 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 16:32:20 -0000 Author: kaktus Date: Fri Feb 21 16:32:17 2020 New Revision: 358224 URL: https://svnweb.freebsd.org/changeset/base/358224 Log: Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (7 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all low hanging fruits as MPSAFE. Reviewed by: markj Approved by: kib (mentor, blanket) Differential Revision: https://reviews.freebsd.org/D23626 Modified: head/sys/dev/ath/ah_osdep.c head/sys/dev/ath/ath_rate/sample/sample.c head/sys/dev/ath/if_ath_sysctl.c head/sys/dev/otus/if_otus.c head/sys/net80211/ieee80211_alq.c head/sys/net80211/ieee80211_amrr.c head/sys/net80211/ieee80211_freebsd.c head/sys/net80211/ieee80211_ht.c head/sys/net80211/ieee80211_hwmp.c head/sys/net80211/ieee80211_mesh.c head/sys/net80211/ieee80211_rssadapt.c head/sys/net80211/ieee80211_superg.c Modified: head/sys/dev/ath/ah_osdep.c ============================================================================== --- head/sys/dev/ath/ah_osdep.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/dev/ath/ah_osdep.c Fri Feb 21 16:32:17 2020 (r358224) @@ -93,8 +93,9 @@ extern void DO_HALDEBUG(struct ath_hal *ah, u_int mask #endif /* AH_DEBUG */ /* NB: put this here instead of the driver to avoid circular references */ -SYSCTL_NODE(_hw, OID_AUTO, ath, CTLFLAG_RD, 0, "Atheros driver parameters"); -static SYSCTL_NODE(_hw_ath, OID_AUTO, hal, CTLFLAG_RD, 0, +SYSCTL_NODE(_hw, OID_AUTO, ath, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "Atheros driver parameters"); +static SYSCTL_NODE(_hw_ath, OID_AUTO, hal, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "Atheros HAL parameters"); #ifdef AH_DEBUG @@ -236,8 +237,10 @@ sysctl_hw_ath_hal_log(SYSCTL_HANDLER_ARGS) else return (ath_hal_setlogging(enable)); } -SYSCTL_PROC(_hw_ath_hal, OID_AUTO, alq, CTLTYPE_INT|CTLFLAG_RW, - 0, 0, sysctl_hw_ath_hal_log, "I", "Enable HAL register logging"); +SYSCTL_PROC(_hw_ath_hal, OID_AUTO, alq, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + 0, 0, sysctl_hw_ath_hal_log, "I", + "Enable HAL register logging"); SYSCTL_INT(_hw_ath_hal, OID_AUTO, alq_size, CTLFLAG_RW, &ath_hal_alq_qsize, 0, "In-memory log size (#records)"); SYSCTL_INT(_hw_ath_hal, OID_AUTO, alq_lost, CTLFLAG_RW, Modified: head/sys/dev/ath/ath_rate/sample/sample.c ============================================================================== --- head/sys/dev/ath/ath_rate/sample/sample.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/dev/ath/ath_rate/sample/sample.c Fri Feb 21 16:32:17 2020 (r358224) @@ -1364,17 +1364,17 @@ ath_rate_sysctlattach(struct ath_softc *sc, struct sam struct sysctl_oid *tree = device_get_sysctl_tree(sc->sc_dev); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "smoothing_rate", CTLTYPE_INT | CTLFLAG_RW, ssc, 0, - ath_rate_sysctl_smoothing_rate, "I", + "smoothing_rate", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + ssc, 0, ath_rate_sysctl_smoothing_rate, "I", "sample: smoothing rate for avg tx time (%%)"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "sample_rate", CTLTYPE_INT | CTLFLAG_RW, ssc, 0, - ath_rate_sysctl_sample_rate, "I", + "sample_rate", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + ssc, 0, ath_rate_sysctl_sample_rate, "I", "sample: percent air time devoted to sampling new rates (%%)"); /* XXX max_successive_failures, stale_failure_timeout, min_switch */ SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "sample_stats", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_rate_sysctl_stats, "I", "sample: print statistics"); + "sample_stats", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + sc, 0, ath_rate_sysctl_stats, "I", "sample: print statistics"); } struct ath_ratectrl * Modified: head/sys/dev/ath/if_ath_sysctl.c ============================================================================== --- head/sys/dev/ath/if_ath_sysctl.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/dev/ath/if_ath_sysctl.c Fri Feb 21 16:32:17 2020 (r358224) @@ -786,16 +786,17 @@ ath_sysctl_alq_attach(struct ath_softc *sc) struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(sc->sc_dev); struct sysctl_oid_list *child = SYSCTL_CHILDREN(tree); - tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "alq", CTLFLAG_RD, - NULL, "Atheros ALQ logging parameters"); + tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "alq", + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "Atheros ALQ logging parameters"); child = SYSCTL_CHILDREN(tree); SYSCTL_ADD_STRING(ctx, child, OID_AUTO, "filename", CTLFLAG_RW, sc->sc_alq.sc_alq_filename, 0, "ALQ filename"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "enable", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_alq_log, "I", ""); + "enable", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_alq_log, "I", ""); SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "debugmask", CTLFLAG_RW, &sc->sc_alq.sc_alq_debug, 0, @@ -831,21 +832,21 @@ ath_sysctlattach(struct ath_softc *sc) "control debugging KTR"); #endif /* ATH_DEBUG_ALQ */ SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "slottime", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_slottime, "I", "802.11 slot time (us)"); + "slottime", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_slottime, "I", "802.11 slot time (us)"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "acktimeout", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_acktimeout, "I", "802.11 ACK timeout (us)"); + "acktimeout", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_acktimeout, "I", "802.11 ACK timeout (us)"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "ctstimeout", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_ctstimeout, "I", "802.11 CTS timeout (us)"); + "ctstimeout", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_ctstimeout, "I", "802.11 CTS timeout (us)"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "softled", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_softled, "I", "enable/disable software LED support"); + "softled", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_softled, "I", "enable/disable software LED support"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "ledpin", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_ledpin, "I", "GPIO pin connected to LED"); + "ledpin", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_ledpin, "I", "GPIO pin connected to LED"); SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "ledon", CTLFLAG_RW, &sc->sc_ledon, 0, "setting to turn LED on"); @@ -854,8 +855,8 @@ ath_sysctlattach(struct ath_softc *sc) "idle time for inactivity LED (ticks)"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "hardled", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_hardled, "I", "enable/disable hardware LED support"); + "hardled", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_hardled, "I", "enable/disable hardware LED support"); /* XXX Laziness - configure pins, then flip hardled off/on */ SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "led_net_pin", CTLFLAG_RW, &sc->sc_led_net_pin, 0, @@ -865,61 +866,61 @@ ath_sysctlattach(struct ath_softc *sc) "MAC Power LED pin, or -1 to disable"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "txantenna", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_txantenna, "I", "antenna switch"); + "txantenna", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_txantenna, "I", "antenna switch"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "rxantenna", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_rxantenna, "I", "default/rx antenna"); + "rxantenna", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_rxantenna, "I", "default/rx antenna"); if (ath_hal_hasdiversity(ah)) SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "diversity", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_diversity, "I", "antenna diversity"); + "diversity", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + sc, 0, ath_sysctl_diversity, "I", "antenna diversity"); sc->sc_txintrperiod = ATH_TXINTR_PERIOD; SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "txintrperiod", CTLFLAG_RW, &sc->sc_txintrperiod, 0, "tx descriptor batching"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "diag", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_diag, "I", "h/w diagnostic control"); + "diag", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_diag, "I", "h/w diagnostic control"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "tpscale", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_tpscale, "I", "tx power scaling"); + "tpscale", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_tpscale, "I", "tx power scaling"); if (ath_hal_hastpc(ah)) { SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "tpc", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_tpc, "I", "enable/disable per-packet TPC"); + "tpc", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_tpc, "I", "enable/disable per-packet TPC"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "tpack", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_tpack, "I", "tx power for ack frames"); + "tpack", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + 0, ath_sysctl_tpack, "I", "tx power for ack frames"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "tpcts", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_tpcts, "I", "tx power for cts frames"); + "tpcts", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + 0, ath_sysctl_tpcts, "I", "tx power for cts frames"); } if (ath_hal_hasrfsilent(ah)) { SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "rfsilent", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_rfsilent, "I", "h/w RF silent config"); + "rfsilent", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + sc, 0, ath_sysctl_rfsilent, "I", "h/w RF silent config"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "rfkill", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_rfkill, "I", "enable/disable RF kill switch"); + "rfkill", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + 0, ath_sysctl_rfkill, "I", "enable/disable RF kill switch"); } SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "txagg", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_txagg, "I", ""); + "txagg", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_txagg, "I", ""); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "forcebstuck", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_forcebstuck, "I", ""); + "forcebstuck", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + 0, ath_sysctl_forcebstuck, "I", ""); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "hangcheck", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_hangcheck, "I", ""); + "hangcheck", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + ath_sysctl_hangcheck, "I", ""); if (ath_hal_hasintmit(ah)) { SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "intmit", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_intmit, "I", "interference mitigation"); + "intmit", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + 0, ath_sysctl_intmit, "I", "interference mitigation"); } sc->sc_monpass = HAL_RXERR_DECRYPT | HAL_RXERR_MIC; SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, @@ -989,8 +990,8 @@ ath_sysctlattach(struct ath_softc *sc) "superframe", CTLFLAG_RD, &sc->sc_tdmabintval, 0, "TDMA calculated super frame"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "setcca", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_setcca, "I", "enable CCA control"); + "setcca", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + sc, 0, ath_sysctl_setcca, "I", "enable CCA control"); } #endif @@ -1028,7 +1029,8 @@ ath_sysctl_stats_attach_rxphyerr(struct ath_softc *sc, int i; char sn[8]; - tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "rx_phy_err", CTLFLAG_RD, NULL, "Per-code RX PHY Errors"); + tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "rx_phy_err", + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Per-code RX PHY Errors"); child = SYSCTL_CHILDREN(tree); for (i = 0; i < 64; i++) { snprintf(sn, sizeof(sn), "%d", i); @@ -1047,7 +1049,7 @@ ath_sysctl_stats_attach_intr(struct ath_softc *sc, char sn[8]; tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "sync_intr", - CTLFLAG_RD, NULL, "Sync interrupt statistics"); + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Sync interrupt statistics"); child = SYSCTL_CHILDREN(tree); for (i = 0; i < 32; i++) { snprintf(sn, sizeof(sn), "%d", i); @@ -1065,12 +1067,12 @@ ath_sysctl_stats_attach(struct ath_softc *sc) /* Create "clear" node */ SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "clear_stats", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - ath_sysctl_clearstats, "I", "clear stats"); + "clear_stats", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + 0, ath_sysctl_clearstats, "I", "clear stats"); /* Create stats node */ - tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "stats", CTLFLAG_RD, - NULL, "Statistics"); + tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "stats", + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Statistics"); child = SYSCTL_CHILDREN(tree); /* This was generated from if_athioctl.h */ @@ -1315,8 +1317,8 @@ ath_sysctl_hal_attach(struct ath_softc *sc) struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(sc->sc_dev); struct sysctl_oid_list *child = SYSCTL_CHILDREN(tree); - tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "hal", CTLFLAG_RD, - NULL, "Atheros HAL parameters"); + tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "hal", + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Atheros HAL parameters"); child = SYSCTL_CHILDREN(tree); sc->sc_ah->ah_config.ah_debug = 0; Modified: head/sys/dev/otus/if_otus.c ============================================================================== --- head/sys/dev/otus/if_otus.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/dev/otus/if_otus.c Fri Feb 21 16:32:17 2020 (r358224) @@ -75,7 +75,8 @@ __FBSDID("$FreeBSD$"); #include "if_otusreg.h" static int otus_debug = 0; -static SYSCTL_NODE(_hw_usb, OID_AUTO, otus, CTLFLAG_RW, 0, "USB otus"); +static SYSCTL_NODE(_hw_usb, OID_AUTO, otus, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, + "USB otus"); SYSCTL_INT(_hw_usb_otus, OID_AUTO, debug, CTLFLAG_RWTUN, &otus_debug, 0, "Debug level"); #define OTUS_DEBUG_XMIT 0x00000001 Modified: head/sys/net80211/ieee80211_alq.c ============================================================================== --- head/sys/net80211/ieee80211_alq.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/net80211/ieee80211_alq.c Fri Feb 21 16:32:17 2020 (r358224) @@ -111,8 +111,10 @@ sysctl_ieee80211_alq_log(SYSCTL_HANDLER_ARGS) return (ieee80211_alq_setlogging(enable)); } -SYSCTL_PROC(_net_wlan, OID_AUTO, alq, CTLTYPE_INT|CTLFLAG_RW, - 0, 0, sysctl_ieee80211_alq_log, "I", "Enable net80211 alq logging"); +SYSCTL_PROC(_net_wlan, OID_AUTO, alq, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, 0, 0, + sysctl_ieee80211_alq_log, "I", + "Enable net80211 alq logging"); SYSCTL_INT(_net_wlan, OID_AUTO, alq_size, CTLFLAG_RW, &ieee80211_alq_qsize, 0, "In-memory log size (bytes)"); SYSCTL_INT(_net_wlan, OID_AUTO, alq_lost, CTLFLAG_RW, Modified: head/sys/net80211/ieee80211_amrr.c ============================================================================== --- head/sys/net80211/ieee80211_amrr.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/net80211/ieee80211_amrr.c Fri Feb 21 16:32:17 2020 (r358224) @@ -465,8 +465,8 @@ amrr_sysctlattach(struct ieee80211vap *vap, return; SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "amrr_rate_interval", CTLTYPE_INT | CTLFLAG_RW, vap, - 0, amrr_sysctl_interval, "I", "amrr operation interval (ms)"); + "amrr_rate_interval", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + vap, 0, amrr_sysctl_interval, "I", "amrr operation interval (ms)"); /* XXX bounds check values */ SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "amrr_max_sucess_threshold", CTLFLAG_RW, Modified: head/sys/net80211/ieee80211_freebsd.c ============================================================================== --- head/sys/net80211/ieee80211_freebsd.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/net80211/ieee80211_freebsd.c Fri Feb 21 16:32:17 2020 (r358224) @@ -60,7 +60,8 @@ __FBSDID("$FreeBSD$"); #include #include -SYSCTL_NODE(_net, OID_AUTO, wlan, CTLFLAG_RD, 0, "IEEE 80211 parameters"); +SYSCTL_NODE(_net, OID_AUTO, wlan, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "IEEE 80211 parameters"); #ifdef IEEE80211_DEBUG static int ieee80211_debug = 0; @@ -227,10 +228,10 @@ ieee80211_sysctl_vattach(struct ieee80211vap *vap) sysctl_ctx_init(ctx); snprintf(num, sizeof(num), "%u", ifp->if_dunit); oid = SYSCTL_ADD_NODE(ctx, &SYSCTL_NODE_CHILDREN(_net, wlan), - OID_AUTO, num, CTLFLAG_RD, NULL, ""); + OID_AUTO, num, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, ""); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, - "%parent", CTLTYPE_STRING | CTLFLAG_RD, vap->iv_ic, 0, - ieee80211_sysctl_parent, "A", "parent device"); + "%parent", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + vap->iv_ic, 0, ieee80211_sysctl_parent, "A", "parent device"); SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, "driver_caps", CTLFLAG_RW, &vap->iv_caps, 0, "driver capabilities"); @@ -245,21 +246,21 @@ ieee80211_sysctl_vattach(struct ieee80211vap *vap) "consecutive beacon misses before scanning"); /* XXX inherit from tunables */ SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, - "inact_run", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_run, 0, - ieee80211_sysctl_inact, "I", - "station inactivity timeout (sec)"); + "inact_run", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &vap->iv_inact_run, 0, ieee80211_sysctl_inact, "I", + "station inactivity timeout (sec)"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, - "inact_probe", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_probe, 0, - ieee80211_sysctl_inact, "I", - "station inactivity probe timeout (sec)"); + "inact_probe", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &vap->iv_inact_probe, 0, ieee80211_sysctl_inact, "I", + "station inactivity probe timeout (sec)"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, - "inact_auth", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_auth, 0, - ieee80211_sysctl_inact, "I", - "station authentication timeout (sec)"); + "inact_auth", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &vap->iv_inact_auth, 0, ieee80211_sysctl_inact, "I", + "station authentication timeout (sec)"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, - "inact_init", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_init, 0, - ieee80211_sysctl_inact, "I", - "station initial state timeout (sec)"); + "inact_init", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &vap->iv_inact_init, 0, ieee80211_sysctl_inact, "I", + "station initial state timeout (sec)"); if (vap->iv_htcaps & IEEE80211_HTC_HT) { SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, "ampdu_mintraffic_bk", CTLFLAG_RW, @@ -280,14 +281,14 @@ ieee80211_sysctl_vattach(struct ieee80211vap *vap) } SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, - "force_restart", CTLTYPE_INT | CTLFLAG_RW, vap, 0, - ieee80211_sysctl_vap_restart, "I", - "force a VAP restart"); + "force_restart", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + vap, 0, ieee80211_sysctl_vap_restart, "I", "force a VAP restart"); if (vap->iv_caps & IEEE80211_C_DFS) { SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, - "radar", CTLTYPE_INT | CTLFLAG_RW, vap->iv_ic, 0, - ieee80211_sysctl_radar, "I", "simulate radar event"); + "radar", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + vap->iv_ic, 0, ieee80211_sysctl_radar, "I", + "simulate radar event"); } vap->iv_sysctl = ctx; vap->iv_oid = oid; Modified: head/sys/net80211/ieee80211_ht.c ============================================================================== --- head/sys/net80211/ieee80211_ht.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/net80211/ieee80211_ht.c Fri Feb 21 16:32:17 2020 (r358224) @@ -139,22 +139,25 @@ const struct ieee80211_mcs_rates ieee80211_htrates[IEE }; static int ieee80211_ampdu_age = -1; /* threshold for ampdu reorder q (ms) */ -SYSCTL_PROC(_net_wlan, OID_AUTO, ampdu_age, CTLTYPE_INT | CTLFLAG_RW, - &ieee80211_ampdu_age, 0, ieee80211_sysctl_msecs_ticks, "I", - "AMPDU max reorder age (ms)"); +SYSCTL_PROC(_net_wlan, OID_AUTO, ampdu_age, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &ieee80211_ampdu_age, 0, ieee80211_sysctl_msecs_ticks, "I", + "AMPDU max reorder age (ms)"); static int ieee80211_recv_bar_ena = 1; SYSCTL_INT(_net_wlan, OID_AUTO, recv_bar, CTLFLAG_RW, &ieee80211_recv_bar_ena, 0, "BAR frame processing (ena/dis)"); static int ieee80211_addba_timeout = -1;/* timeout for ADDBA response */ -SYSCTL_PROC(_net_wlan, OID_AUTO, addba_timeout, CTLTYPE_INT | CTLFLAG_RW, - &ieee80211_addba_timeout, 0, ieee80211_sysctl_msecs_ticks, "I", - "ADDBA request timeout (ms)"); +SYSCTL_PROC(_net_wlan, OID_AUTO, addba_timeout, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &ieee80211_addba_timeout, 0, ieee80211_sysctl_msecs_ticks, "I", + "ADDBA request timeout (ms)"); static int ieee80211_addba_backoff = -1;/* backoff after max ADDBA requests */ -SYSCTL_PROC(_net_wlan, OID_AUTO, addba_backoff, CTLTYPE_INT | CTLFLAG_RW, - &ieee80211_addba_backoff, 0, ieee80211_sysctl_msecs_ticks, "I", - "ADDBA request backoff (ms)"); +SYSCTL_PROC(_net_wlan, OID_AUTO, addba_backoff, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &ieee80211_addba_backoff, 0, ieee80211_sysctl_msecs_ticks, "I", + "ADDBA request backoff (ms)"); static int ieee80211_addba_maxtries = 3;/* max ADDBA requests before backoff */ SYSCTL_INT(_net_wlan, OID_AUTO, addba_maxtries, CTLFLAG_RW, &ieee80211_addba_maxtries, 0, "max ADDBA requests sent before backoff"); Modified: head/sys/net80211/ieee80211_hwmp.c ============================================================================== --- head/sys/net80211/ieee80211_hwmp.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/net80211/ieee80211_hwmp.c Fri Feb 21 16:32:17 2020 (r358224) @@ -154,39 +154,46 @@ struct ieee80211_hwmp_state { uint8_t hs_maxhops; /* max hop count */ }; -static SYSCTL_NODE(_net_wlan, OID_AUTO, hwmp, CTLFLAG_RD, 0, +static SYSCTL_NODE(_net_wlan, OID_AUTO, hwmp, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "IEEE 802.11s HWMP parameters"); static int ieee80211_hwmp_targetonly = 0; SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, targetonly, CTLFLAG_RW, &ieee80211_hwmp_targetonly, 0, "Set TO bit on generated PREQs"); static int ieee80211_hwmp_pathtimeout = -1; -SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, pathlifetime, CTLTYPE_INT | CTLFLAG_RW, +SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, pathlifetime, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, &ieee80211_hwmp_pathtimeout, 0, ieee80211_sysctl_msecs_ticks, "I", "path entry lifetime (ms)"); static int ieee80211_hwmp_maxpreq_retries = -1; -SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, maxpreq_retries, CTLTYPE_INT | CTLFLAG_RW, +SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, maxpreq_retries, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, &ieee80211_hwmp_maxpreq_retries, 0, ieee80211_sysctl_msecs_ticks, "I", "maximum number of preq retries"); static int ieee80211_hwmp_net_diameter_traversaltime = -1; SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, net_diameter_traversal_time, - CTLTYPE_INT | CTLFLAG_RW, &ieee80211_hwmp_net_diameter_traversaltime, 0, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + &ieee80211_hwmp_net_diameter_traversaltime, 0, ieee80211_sysctl_msecs_ticks, "I", "estimate travelse time across the MBSS (ms)"); static int ieee80211_hwmp_roottimeout = -1; -SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, roottimeout, CTLTYPE_INT | CTLFLAG_RW, +SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, roottimeout, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, &ieee80211_hwmp_roottimeout, 0, ieee80211_sysctl_msecs_ticks, "I", "root PREQ timeout (ms)"); static int ieee80211_hwmp_rootint = -1; -SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootint, CTLTYPE_INT | CTLFLAG_RW, +SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootint, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, &ieee80211_hwmp_rootint, 0, ieee80211_sysctl_msecs_ticks, "I", "root interval (ms)"); static int ieee80211_hwmp_rannint = -1; -SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rannint, CTLTYPE_INT | CTLFLAG_RW, +SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rannint, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, &ieee80211_hwmp_rannint, 0, ieee80211_sysctl_msecs_ticks, "I", "root announcement interval (ms)"); static struct timeval ieee80211_hwmp_rootconfint = { 0, 0 }; static int ieee80211_hwmp_rootconfint_internal = -1; -SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootconfint, CTLTYPE_INT | CTLFLAG_RD, +SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootconfint, + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, &ieee80211_hwmp_rootconfint_internal, 0, ieee80211_sysctl_msecs_ticks, "I", "root confirmation interval (ms) (read-only)"); @@ -205,9 +212,10 @@ static struct ieee80211_mesh_proto_path mesh_proto_hwm .mpp_newstate = hwmp_newstate, .mpp_privlen = sizeof(struct ieee80211_hwmp_route), }; -SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, inact, CTLTYPE_INT | CTLFLAG_RW, - &mesh_proto_hwmp.mpp_inact, 0, ieee80211_sysctl_msecs_ticks, "I", - "mesh route inactivity timeout (ms)"); +SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, inact, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &mesh_proto_hwmp.mpp_inact, 0, ieee80211_sysctl_msecs_ticks, "I", + "mesh route inactivity timeout (ms)"); static void Modified: head/sys/net80211/ieee80211_mesh.c ============================================================================== --- head/sys/net80211/ieee80211_mesh.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/net80211/ieee80211_mesh.c Fri Feb 21 16:32:17 2020 (r358224) @@ -106,27 +106,32 @@ uint32_t mesh_airtime_calc(struct ieee80211_node *); /* * Timeout values come from the specification and are in milliseconds. */ -static SYSCTL_NODE(_net_wlan, OID_AUTO, mesh, CTLFLAG_RD, 0, +static SYSCTL_NODE(_net_wlan, OID_AUTO, mesh, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "IEEE 802.11s parameters"); static int ieee80211_mesh_gateint = -1; -SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, gateint, CTLTYPE_INT | CTLFLAG_RW, +SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, gateint, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &ieee80211_mesh_gateint, 0, ieee80211_sysctl_msecs_ticks, "I", "mesh gate interval (ms)"); static int ieee80211_mesh_retrytimeout = -1; -SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, retrytimeout, CTLTYPE_INT | CTLFLAG_RW, +SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, retrytimeout, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &ieee80211_mesh_retrytimeout, 0, ieee80211_sysctl_msecs_ticks, "I", "Retry timeout (msec)"); static int ieee80211_mesh_holdingtimeout = -1; -SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, holdingtimeout, CTLTYPE_INT | CTLFLAG_RW, +SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, holdingtimeout, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &ieee80211_mesh_holdingtimeout, 0, ieee80211_sysctl_msecs_ticks, "I", "Holding state timeout (msec)"); static int ieee80211_mesh_confirmtimeout = -1; -SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, confirmtimeout, CTLTYPE_INT | CTLFLAG_RW, +SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, confirmtimeout, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &ieee80211_mesh_confirmtimeout, 0, ieee80211_sysctl_msecs_ticks, "I", "Confirm state timeout (msec)"); static int ieee80211_mesh_backofftimeout = -1; -SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, backofftimeout, CTLTYPE_INT | CTLFLAG_RW, +SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, backofftimeout, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &ieee80211_mesh_backofftimeout, 0, ieee80211_sysctl_msecs_ticks, "I", "Backoff timeout (msec). This is to throutles peering forever when " "not receiving answer or is rejected by a neighbor"); Modified: head/sys/net80211/ieee80211_rssadapt.c ============================================================================== --- head/sys/net80211/ieee80211_rssadapt.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/net80211/ieee80211_rssadapt.c Fri Feb 21 16:32:17 2020 (r358224) @@ -381,6 +381,7 @@ rssadapt_sysctlattach(struct ieee80211vap *vap, { SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "rssadapt_rate_interval", CTLTYPE_INT | CTLFLAG_RW, vap, - 0, rssadapt_sysctl_interval, "I", "rssadapt operation interval (ms)"); + "rssadapt_rate_interval", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, vap, 0, + rssadapt_sysctl_interval, "I", "rssadapt operation interval (ms)"); } Modified: head/sys/net80211/ieee80211_superg.c ============================================================================== --- head/sys/net80211/ieee80211_superg.c Fri Feb 21 16:23:00 2020 (r358223) +++ head/sys/net80211/ieee80211_superg.c Fri Feb 21 16:32:17 2020 (r358224) @@ -92,9 +92,10 @@ static int ieee80211_ffppsmin = 2; /* pps threshold fo SYSCTL_INT(_net_wlan, OID_AUTO, ffppsmin, CTLFLAG_RW, &ieee80211_ffppsmin, 0, "min packet rate before fast-frame staging"); static int ieee80211_ffagemax = -1; /* max time frames held on stage q */ -SYSCTL_PROC(_net_wlan, OID_AUTO, ffagemax, CTLTYPE_INT | CTLFLAG_RW, - &ieee80211_ffagemax, 0, ieee80211_sysctl_msecs_ticks, "I", - "max hold time for fast-frame staging (ms)"); +SYSCTL_PROC(_net_wlan, OID_AUTO, ffagemax, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &ieee80211_ffagemax, 0, ieee80211_sysctl_msecs_ticks, "I", + "max hold time for fast-frame staging (ms)"); static void ff_age_all(void *arg, int npending) From owner-svn-src-all@freebsd.org Fri Feb 21 16:41:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DEA3223AEEF; Fri, 21 Feb 2020 16:41:17 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PHK95cfMz3NRZ; Fri, 21 Feb 2020 16:41:17 +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 BAEEFDAA5; Fri, 21 Feb 2020 16:41:17 +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 01LGfHhv004155; Fri, 21 Feb 2020 16:41:17 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LGfHu1004154; Fri, 21 Feb 2020 16:41:17 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002211641.01LGfHu1004154@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 21 Feb 2020 16:41:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358225 - head/sys/x86/x86 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/x86/x86 X-SVN-Commit-Revision: 358225 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 16:41:18 -0000 Author: kib Date: Fri Feb 21 16:41:17 2020 New Revision: 358225 URL: https://svnweb.freebsd.org/changeset/base/358225 Log: print_svm_info: decode a CPUID 0x8000000a.edx bit 20. This is SVM features word, the bit is defined in "PPR for AMD Family 17h Model 31h B0", document 55803 Rev 0.54. N.B. GuesSpecCtl (no 't') is the spelling from the document. Submitted by: Dmitry Luhtionov MFC after: 3 days Modified: head/sys/x86/x86/identcpu.c Modified: head/sys/x86/x86/identcpu.c ============================================================================== --- head/sys/x86/x86/identcpu.c Fri Feb 21 16:32:17 2020 (r358224) +++ head/sys/x86/x86/identcpu.c Fri Feb 21 16:41:17 2020 (r358225) @@ -2385,7 +2385,7 @@ print_svm_info(void) "\022GMET" /* Guest Mode Execute Trap */ "\023" "\024" - "\025" + "\025GuesSpecCtl" /* Guest Spec_ctl */ "\026" "\027" "\030" From owner-svn-src-all@freebsd.org Fri Feb 21 16:55:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3E97023C067; Fri, 21 Feb 2020 16:55:29 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PHdX70YSz4MM8; Fri, 21 Feb 2020 16:55:28 +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 AB97CDDDF; Fri, 21 Feb 2020 16:55:28 +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 01LGtSt9013382; Fri, 21 Feb 2020 16:55:28 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LGtSuE013381; Fri, 21 Feb 2020 16:55:28 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002211655.01LGtSuE013381@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 21 Feb 2020 16:55:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358226 - head/sys/x86/x86 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/x86/x86 X-SVN-Commit-Revision: 358226 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 16:55:29 -0000 Author: kib Date: Fri Feb 21 16:55:28 2020 New Revision: 358226 URL: https://svnweb.freebsd.org/changeset/base/358226 Log: x86/identcpu.c whitespace cleanup. Sponsored by: The FreeBSD Foundation MFC after: 3 days Modified: head/sys/x86/x86/identcpu.c Modified: head/sys/x86/x86/identcpu.c ============================================================================== --- head/sys/x86/x86/identcpu.c Fri Feb 21 16:41:17 2020 (r358225) +++ head/sys/x86/x86/identcpu.c Fri Feb 21 16:55:28 2020 (r358226) @@ -284,7 +284,7 @@ printcpuinfo(void) switch (cpu_id & 0xf00) { case 0x400: strcat(cpu_model, "i486 "); - /* Check the particular flavor of 486 */ + /* Check the particular flavor of 486 */ switch (cpu_id & 0xf0) { case 0x00: case 0x10: @@ -312,32 +312,32 @@ printcpuinfo(void) } break; case 0x500: - /* Check the particular flavor of 586 */ - strcat(cpu_model, "Pentium"); - switch (cpu_id & 0xf0) { + /* Check the particular flavor of 586 */ + strcat(cpu_model, "Pentium"); + switch (cpu_id & 0xf0) { case 0x00: - strcat(cpu_model, " A-step"); + strcat(cpu_model, " A-step"); break; case 0x10: - strcat(cpu_model, "/P5"); + strcat(cpu_model, "/P5"); break; case 0x20: - strcat(cpu_model, "/P54C"); + strcat(cpu_model, "/P54C"); break; case 0x30: - strcat(cpu_model, "/P24T"); + strcat(cpu_model, "/P24T"); break; case 0x40: - strcat(cpu_model, "/P55C"); + strcat(cpu_model, "/P55C"); break; case 0x70: - strcat(cpu_model, "/P54C"); + strcat(cpu_model, "/P54C"); break; case 0x80: - strcat(cpu_model, "/P55C (quarter-micron)"); + strcat(cpu_model, "/P55C (quarter-micron)"); break; default: - /* nothing */ + /* nothing */ break; } #if defined(I586_CPU) && !defined(NO_F00F_HACK) @@ -350,18 +350,18 @@ printcpuinfo(void) #endif break; case 0x600: - /* Check the particular flavor of 686 */ - switch (cpu_id & 0xf0) { + /* Check the particular flavor of 686 */ + switch (cpu_id & 0xf0) { case 0x00: - strcat(cpu_model, "Pentium Pro A-step"); + strcat(cpu_model, "Pentium Pro A-step"); break; case 0x10: - strcat(cpu_model, "Pentium Pro"); + strcat(cpu_model, "Pentium Pro"); break; case 0x30: case 0x50: case 0x60: - strcat(cpu_model, + strcat(cpu_model, "Pentium II/Pentium II Xeon/Celeron"); cpu = CPU_PII; break; @@ -369,12 +369,12 @@ printcpuinfo(void) case 0x80: case 0xa0: case 0xb0: - strcat(cpu_model, + strcat(cpu_model, "Pentium III/Pentium III Xeon/Celeron"); cpu = CPU_PIII; break; default: - strcat(cpu_model, "Unknown 80686"); + strcat(cpu_model, "Unknown 80686"); break; } break; @@ -1411,7 +1411,7 @@ identify_hypervisor_cpuid_base(void) if (regs[0] == 0 && regs[1] == 0x4b4d564b && regs[2] == 0x564b4d56 && regs[3] == 0x0000004d) regs[0] = leaf + 1; - + if (regs[0] >= leaf) { for (i = 0; i < nitems(vm_cpuids); i++) if (strncmp((const char *)®s[1], @@ -1471,7 +1471,7 @@ identify_hypervisor(void) if (strncmp(p, "VMware-", 7) == 0 || strncmp(p, "VMW", 3) == 0) { vmware_hvcall(VMW_HVCMD_GETVERSION, regs); if (regs[1] == VMW_HVMAGIC) { - vm_guest = VM_GUEST_VMWARE; + vm_guest = VM_GUEST_VMWARE; freeenv(p); return; } @@ -2341,23 +2341,23 @@ print_svm_info(void) comma = 0; if (features & (1 << 0)) { printf("%sNP", comma ? "," : ""); - comma = 1; + comma = 1; } if (features & (1 << 3)) { printf("%sNRIP", comma ? "," : ""); - comma = 1; + comma = 1; } if (features & (1 << 5)) { printf("%sVClean", comma ? "," : ""); - comma = 1; + comma = 1; } if (features & (1 << 6)) { printf("%sAFlush", comma ? "," : ""); - comma = 1; + comma = 1; } if (features & (1 << 7)) { printf("%sDAssist", comma ? "," : ""); - comma = 1; + comma = 1; } printf("%sNAsids=%d", comma ? "," : "", regs[1]); return; @@ -2375,7 +2375,7 @@ print_svm_info(void) "\010DecodeAssist" /* Decode assist */ "\011" "\012" - "\013PauseFilter" /* PAUSE intercept filter */ + "\013PauseFilter" /* PAUSE intercept filter */ "\014EncryptedMcodePatch" "\015PauseFilterThreshold" /* PAUSE filter threshold */ "\016AVIC" /* virtual interrupt controller */ @@ -2397,7 +2397,7 @@ print_svm_info(void) "\036" "\037" "\040" - ); + ); printf("\nRevision=%d, ASIDs=%d", regs[0] & 0xff, regs[1]); } From owner-svn-src-all@freebsd.org Fri Feb 21 18:21:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 114B023E0CA; Fri, 21 Feb 2020 18:21:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PKYK6Vycz3HJZ; Fri, 21 Feb 2020 18:21:57 +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 D702FEE2E; Fri, 21 Feb 2020 18:21:57 +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 01LILvZl065105; Fri, 21 Feb 2020 18:21:57 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LILvRV065104; Fri, 21 Feb 2020 18:21:57 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002211821.01LILvRV065104@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 21 Feb 2020 18:21:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358227 - head/lib/libfetch X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/lib/libfetch X-SVN-Commit-Revision: 358227 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 18:21:58 -0000 Author: kevans Date: Fri Feb 21 18:21:57 2020 New Revision: 358227 URL: https://svnweb.freebsd.org/changeset/base/358227 Log: fetch(3): plug some leaks In the successful case, sockshost is not freed prior to return. The failure case can now be hit after fetch_reopen(), which was not true before. Thus, we need to make sure to clean up all of the conn resources which will also close sd. For all of the points prior to fetch_reopen(), we continue to just close sd. CID: 1419598, 1419616 Modified: head/lib/libfetch/common.c Modified: head/lib/libfetch/common.c ============================================================================== --- head/lib/libfetch/common.c Fri Feb 21 16:55:28 2020 (r358226) +++ head/lib/libfetch/common.c Fri Feb 21 18:21:57 2020 (r358227) @@ -677,6 +677,7 @@ fetch_connect(const char *host, int port, int af, int if (sockshost) if (!fetch_socks5_init(conn, host, port, verbose)) goto fail; + free(sockshost); if (cais != NULL) freeaddrinfo(cais); if (sais != NULL) @@ -686,7 +687,10 @@ syserr: fetch_syserr(); fail: free(sockshost); - if (sd >= 0) + /* Fully close if it was opened; otherwise just don't leak the fd. */ + if (conn != NULL) + fetch_close(conn); + else if (sd >= 0) close(sd); if (cais != NULL) freeaddrinfo(cais); From owner-svn-src-all@freebsd.org Fri Feb 21 20:57:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6977E242ECB; Fri, 21 Feb 2020 20:57:33 +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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PP0s18QMz3JsL; Fri, 21 Feb 2020 20:57:33 +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 0DE1418A48; Fri, 21 Feb 2020 20:57:33 +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 01LKvWrp066617; Fri, 21 Feb 2020 20:57:32 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LKvWnx066616; Fri, 21 Feb 2020 20:57:32 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <202002212057.01LKvWnx066616@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Fri, 21 Feb 2020 20:57:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358228 - head/usr.sbin/iostat X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: head/usr.sbin/iostat X-SVN-Commit-Revision: 358228 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 20:57:33 -0000 Author: trasz Date: Fri Feb 21 20:57:32 2020 New Revision: 358228 URL: https://svnweb.freebsd.org/changeset/base/358228 Log: Fix formatting for tps values between 99.95 and 99.99; previously it would display as "100.0", breaking vertical alignment. MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D23538 Modified: head/usr.sbin/iostat/iostat.c Modified: head/usr.sbin/iostat/iostat.c ============================================================================== --- head/usr.sbin/iostat/iostat.c Fri Feb 21 18:21:57 2020 (r358227) +++ head/usr.sbin/iostat/iostat.c Fri Feb 21 20:57:32 2020 (r358228) @@ -929,7 +929,7 @@ devstats(int perf_select, long double etime, int havel } free(devicename); } else if (oflag > 0) { - int msdig = (ms_per_transaction < 100.0) ? 1 : 0; + int msdig = (ms_per_transaction < 99.94) ? 1 : 0; if (Iflag == 0) printf("%4.0Lf%4.0Lf%5.*Lf ", From owner-svn-src-all@freebsd.org Fri Feb 21 20:58:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4B0242430E5; Fri, 21 Feb 2020 20:58:48 +0000 (UTC) (envelope-from antoine.brodin.freebsd@gmail.com) Received: from mail-qv1-f65.google.com (mail-qv1-f65.google.com [209.85.219.65]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PP2G4F66z3MCZ; Fri, 21 Feb 2020 20:58:46 +0000 (UTC) (envelope-from antoine.brodin.freebsd@gmail.com) Received: by mail-qv1-f65.google.com with SMTP id n8so1577449qvg.11; Fri, 21 Feb 2020 12:58:46 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hwlfpptZf92f0ecdUrrIO45+QDFBBg8v6cJPmGt17wE=; b=edErqhEYZR7D5EJoRWGeSxL3MUj2OeEHfieQbeunNPbOesQ9luDREIWWxS7kO3JUgf OHNLN+FTucvBgUeWq7gHbRT+nfy55n+9QAMLkUATOsFmbTdlYek+ejCbRvkdsbfFZ4ZE mU9+58JSWRjo5UVeaFKKmhZik7KyM+spd7egPzrD3i/bFpLy2k1B+LcKLBBW4be1ujma NbFAloo4ovYxbKUrv1ArWbFrDC++jI1NnGLKQFmqfHMuNvuHlOZ8sWoyxuhRldHazykq PzQ1+edj18hBvwOZTPWkuJyEq5x3v+zPrFbGUSI6NqQKne3E4XjHBqYPR7by+j/svkJF 6NNQ== X-Gm-Message-State: APjAAAW2H0oGtwc1rA3Y+bMELtcCDI9uelPw/LIRzyQ1UhfAVr1Go+r3 0qTeZh2FDcTrTi2qT5AXh2GpSdUcvXdoZyltckaymOI6 X-Google-Smtp-Source: APXvYqwtJHgPKjAz3E0P7VKzo3l4h2m0pKRhl85OT5U3MCeCridBcVsaKC4AV6Rq+ycImpAnbPbc7zx1MzuxZUWrZtA= X-Received: by 2002:ad4:52eb:: with SMTP id p11mr30038438qvu.211.1582318724833; Fri, 21 Feb 2020 12:58:44 -0800 (PST) MIME-Version: 1.0 References: <202002200301.01K31RTk043426@repo.freebsd.org> In-Reply-To: <202002200301.01K31RTk043426@repo.freebsd.org> From: Antoine Brodin Date: Fri, 21 Feb 2020 21:58:33 +0100 Message-ID: Subject: Re: svn commit: r358152 - head/bin/sh To: Hiroki Sato Cc: src-committers , svn-src-all , svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48PP2G4F66z3MCZ X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of antoinebrodinfreebsd@gmail.com designates 209.85.219.65 as permitted sender) smtp.mailfrom=antoinebrodinfreebsd@gmail.com X-Spamd-Result: default: False [-2.94 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE(-0.94)[ipnet: 209.85.128.0/17(-2.99), asn: 15169(-1.67), country: US(-0.05)]; RCVD_IN_DNSWL_NONE(0.00)[65.219.85.209.list.dnswl.org : 127.0.5.0]; FORGED_SENDER(0.30)[antoine@freebsd.org,antoinebrodinfreebsd@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[65.219.85.209.rep.mailspike.net : 127.0.0.17]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[]; FROM_NEQ_ENVFROM(0.00)[antoine@freebsd.org,antoinebrodinfreebsd@gmail.com]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 20:58:48 -0000 On Thu, Feb 20, 2020 at 4:01 AM Hiroki Sato wrote: > > Author: hrs > Date: Thu Feb 20 03:01:27 2020 > New Revision: 358152 > URL: https://svnweb.freebsd.org/changeset/base/358152 > > Log: > Improve performance of "read" built-in command when using a seekable > fd. > > The read built-in command calls read(2) with a 1-byte buffer because > newline characters need to be detected even on a byte stream which > comes from a non-seekable file descriptor. Because of this, the > following script calls >6,000 read(2) to show a 6KiB file: > > while read IN; do echo "$IN"; done < /COPYRIGHT > > When the input byte stream is seekable, it is possible to read a data > block and then reposition the file pointer to where a newline > character found. This change adds a small buffer to do this and > reduces the number of read(2) calls. > > Theoretically, multiple built-in commands reading the same seekable > byte stream in a single pipe chain can share the buffer. However, > this change just makes a single invocation of the read built-in > allocate a buffer and deallocate it every time for simplicity. > Although this causes read(2) to read the same regions multiple times, > the performance penalty should be small compared to the reduction of > read(2) calls. > > Reviewed by: jilles > MFC after: 1 week > Differential Revision: https://reviews.freebsd.org/D23747 This seems to be broken on at least i386. Please either fix or revert. Antoine (with hat: portmgr) From owner-svn-src-all@freebsd.org Fri Feb 21 21:53:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 29F31244A13; Fri, 21 Feb 2020 21:53:27 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: from mail-yw1-f66.google.com (mail-yw1-f66.google.com [209.85.161.66]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PQFL67H8z4b2Z; Fri, 21 Feb 2020 21:53:26 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: by mail-yw1-f66.google.com with SMTP id i190so1799520ywc.2; Fri, 21 Feb 2020 13:53:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=sw8aM+bI4mchLyENi+lXWY9j98K82mYqpGJRS8ZEDiE=; b=j5lSw4tB47BzZw78sCQ02Nrg8YLWFPEjbtpkn5sA3VG58MZhB/8QdLTj/cu9dydFxH R9Y+x41cpV/65QX7sPFlTlz4RonYwmN6pgI3ZLAFC74n7VcgWJEpbrL7beOMHlDl68qk VTC72OkKObhbTmw04NWaw+O6AgkQL26ZrxmqLM8FoAH4oXkSVTXAtHJfcg71Z4I5eGMG NT2E40lFduswQL0yJcdporiwhnHwSFBzAOYDEuj8jwc8WKcjdaze7HS7p6ymmnY/bDrp 3xiM80mkPaP2OBfx1RzF0SRAjG0u/+xEyX+bC/+yobrJQl28O3MnNMd0ZC37ifxRFehW 6gtQ== X-Gm-Message-State: APjAAAXA8nqqEc8TCPX5aOGNTfMN2zE0HiZVQ1Eo4fZMdmsC/fZZ76O7 TTCIf54L/57Iz/zxSyBOY9yg6BKYahAlNHci6Gkd6w== X-Google-Smtp-Source: APXvYqx4/pePTIUaIfs+eFL98XOWR/IQtRTxxDDMOC4Wf8IxyBPFndvAEVeOmsI7NZk+qJeKWDuz31xVXyPmBB0Z8/Y= X-Received: by 2002:a0d:ce02:: with SMTP id q2mr31657135ywd.400.1582322004737; Fri, 21 Feb 2020 13:53:24 -0800 (PST) MIME-Version: 1.0 References: <202002200301.01K31RTk043426@repo.freebsd.org> In-Reply-To: From: Li-Wen Hsu Date: Sat, 22 Feb 2020 05:53:12 +0800 Message-ID: Subject: Re: svn commit: r358152 - head/bin/sh To: Antoine Brodin Cc: Hiroki Sato , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48PQFL67H8z4b2Z X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 21:53:27 -0000 On Sat, Feb 22, 2020 at 4:58 AM Antoine Brodin wrote: > > On Thu, Feb 20, 2020 at 4:01 AM Hiroki Sato wrote: > > > > Author: hrs > > Date: Thu Feb 20 03:01:27 2020 > > New Revision: 358152 > > URL: https://svnweb.freebsd.org/changeset/base/358152 > > > > Log: > > Improve performance of "read" built-in command when using a seekable > > fd. > > > > The read built-in command calls read(2) with a 1-byte buffer because > > newline characters need to be detected even on a byte stream which > > comes from a non-seekable file descriptor. Because of this, the > > following script calls >6,000 read(2) to show a 6KiB file: > > > > while read IN; do echo "$IN"; done < /COPYRIGHT > > > > When the input byte stream is seekable, it is possible to read a data > > block and then reposition the file pointer to where a newline > > character found. This change adds a small buffer to do this and > > reduces the number of read(2) calls. > > > > Theoretically, multiple built-in commands reading the same seekable > > byte stream in a single pipe chain can share the buffer. However, > > this change just makes a single invocation of the read built-in > > allocate a buffer and deallocate it every time for simplicity. > > Although this causes read(2) to read the same regions multiple times, > > the performance penalty should be small compared to the reduction of > > read(2) calls. > > > > Reviewed by: jilles > > MFC after: 1 week > > Differential Revision: https://reviews.freebsd.org/D23747 > > This seems to be broken on at least i386. > Please either fix or revert. > > Antoine (with hat: portmgr) Could you provide more detail? I'm worried because I didn't see related regression from the recent test results. We may need to add more test against the breakage you mentioned. Thanks, Li-Wen From owner-svn-src-all@freebsd.org Fri Feb 21 21:54:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CE2F9244AA8; Fri, 21 Feb 2020 21:54:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PQG43HFnz4bld; Fri, 21 Feb 2020 21:54:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6455E1953F; Fri, 21 Feb 2020 21:54:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01LLs4Aa003174; Fri, 21 Feb 2020 21:54:04 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LLs4p0003173; Fri, 21 Feb 2020 21:54:04 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002212154.01LLs4p0003173@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 21 Feb 2020 21:54:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358229 - in stable: 11/sys/powerpc/conf/dpaa 12/sys/powerpc/conf/dpaa X-SVN-Group: stable-11 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/sys/powerpc/conf/dpaa 12/sys/powerpc/conf/dpaa X-SVN-Commit-Revision: 358229 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 21:54:05 -0000 Author: dim Date: Fri Feb 21 21:54:03 2020 New Revision: 358229 URL: https://svnweb.freebsd.org/changeset/base/358229 Log: MFC r358045: Merge r358034 from the clang1000-import branch: Disable new clang 10.0.0 warnings about misleading indentation in sys/contrib/ncsw/Peripherals/FM/fman_ncsw.c. This is horribly formatted contributed code, and fixing it is not worth the effort. Modified: stable/11/sys/powerpc/conf/dpaa/files.dpaa Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/powerpc/conf/dpaa/files.dpaa Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/powerpc/conf/dpaa/files.dpaa ============================================================================== --- stable/11/sys/powerpc/conf/dpaa/files.dpaa Fri Feb 21 20:57:32 2020 (r358228) +++ stable/11/sys/powerpc/conf/dpaa/files.dpaa Fri Feb 21 21:54:03 2020 (r358229) @@ -56,7 +56,7 @@ contrib/ncsw/Peripherals/FM/fm_muram.c optional dpaa contrib/ncsw/Peripherals/FM/fm_guest.c optional dpaa \ no-depend compile-with "${DPAA_COMPILE_CMD}" contrib/ncsw/Peripherals/FM/fm.c optional dpaa \ - no-depend compile-with "${DPAA_COMPILE_CMD}" + no-depend compile-with "${DPAA_COMPILE_CMD} ${NO_WMISLEADING_INDENTATION}" contrib/ncsw/Peripherals/QM/qm.c optional dpaa \ no-depend compile-with "${DPAA_COMPILE_CMD}" contrib/ncsw/Peripherals/QM/qm_portal_fqr.c optional dpaa \ From owner-svn-src-all@freebsd.org Fri Feb 21 21:54:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5FD2C244AA0; Fri, 21 Feb 2020 21:54:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PQG41gTzz4bl2; Fri, 21 Feb 2020 21:54:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2554B1953E; Fri, 21 Feb 2020 21:54:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01LLs3be003168; Fri, 21 Feb 2020 21:54:03 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LLs3Qf003167; Fri, 21 Feb 2020 21:54:03 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002212154.01LLs3Qf003167@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 21 Feb 2020 21:54:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358229 - in stable: 11/sys/powerpc/conf/dpaa 12/sys/powerpc/conf/dpaa X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/sys/powerpc/conf/dpaa 12/sys/powerpc/conf/dpaa X-SVN-Commit-Revision: 358229 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 21:54:04 -0000 Author: dim Date: Fri Feb 21 21:54:03 2020 New Revision: 358229 URL: https://svnweb.freebsd.org/changeset/base/358229 Log: MFC r358045: Merge r358034 from the clang1000-import branch: Disable new clang 10.0.0 warnings about misleading indentation in sys/contrib/ncsw/Peripherals/FM/fman_ncsw.c. This is horribly formatted contributed code, and fixing it is not worth the effort. Modified: stable/12/sys/powerpc/conf/dpaa/files.dpaa Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/powerpc/conf/dpaa/files.dpaa Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/powerpc/conf/dpaa/files.dpaa ============================================================================== --- stable/12/sys/powerpc/conf/dpaa/files.dpaa Fri Feb 21 20:57:32 2020 (r358228) +++ stable/12/sys/powerpc/conf/dpaa/files.dpaa Fri Feb 21 21:54:03 2020 (r358229) @@ -74,7 +74,7 @@ contrib/ncsw/Peripherals/FM/fm_muram.c optional dpaa contrib/ncsw/Peripherals/FM/fm_ncsw.c optional dpaa \ no-depend compile-with "${DPAA_COMPILE_CMD}" contrib/ncsw/Peripherals/FM/fman_ncsw.c optional dpaa \ - no-depend compile-with "${DPAA_COMPILE_CMD}" + no-depend compile-with "${DPAA_COMPILE_CMD} ${NO_WMISLEADING_INDENTATION}" contrib/ncsw/Peripherals/QM/qm.c optional dpaa \ no-depend compile-with "${DPAA_COMPILE_CMD}" contrib/ncsw/Peripherals/QM/qm_portal_fqr.c optional dpaa \ From owner-svn-src-all@freebsd.org Fri Feb 21 21:57:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4EE56244E27; Fri, 21 Feb 2020 21:57:27 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PQKz18LKz4h24; Fri, 21 Feb 2020 21:57:26 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D1A5319545; Fri, 21 Feb 2020 21:57:26 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01LLvQJd003431; Fri, 21 Feb 2020 21:57:26 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LLvOI5003422; Fri, 21 Feb 2020 21:57:24 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002212157.01LLvOI5003422@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 21 Feb 2020 21:57:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358230 - in stable: 11/lib/libc/quad 12/lib/libc/quad X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/lib/libc/quad 12/lib/libc/quad X-SVN-Commit-Revision: 358230 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 21:57:27 -0000 Author: dim Date: Fri Feb 21 21:57:24 2020 New Revision: 358230 URL: https://svnweb.freebsd.org/changeset/base/358230 Log: MFC r358046: Merge r358042 from the clang1000-import branch: Add casts and L suffixes to libc quad support, to work around various -Werror warnings from clang 10.0.0, such as: lib/libc/quad/fixdfdi.c:57:12: error: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Werror,-Wimplicit-int-float-conversion] if (x >= QUAD_MAX) ~~ ^~~~~~~~ /usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/sys/limits.h:89:19: note: expanded from macro 'QUAD_MAX' #define QUAD_MAX (__QUAD_MAX) /* max value for a quad_t */ ^~~~~~~~~~ /usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/machine/_limits.h:91:20: note: expanded from macro '__QUAD_MAX' #define __QUAD_MAX __LLONG_MAX /* max value for a quad_t */ ^~~~~~~~~~~ /usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/machine/_limits.h:75:21: note: expanded from macro '__LLONG_MAX' #define __LLONG_MAX 0x7fffffffffffffffLL /* max value for a long long */ ^~~~~~~~~~~~~~~~~~~~ and many instances of: lib/libc/quad/fixunsdfdi.c:73:17: error: shift count >= width of type [-Werror,-Wshift-count-overflow] toppart = (x - ONE_HALF) / ONE; ^~~~~~~~ lib/libc/quad/fixunsdfdi.c:45:19: note: expanded from macro 'ONE_HALF' #define ONE_HALF (ONE_FOURTH * 2.0) ^~~~~~~~~~ lib/libc/quad/fixunsdfdi.c:44:23: note: expanded from macro 'ONE_FOURTH' #define ONE_FOURTH (1 << (LONG_BITS - 2)) ^ ~~~~~~~~~~~~~~~ lib/libc/quad/fixunsdfdi.c:73:29: error: shift count >= width of type [-Werror,-Wshift-count-overflow] toppart = (x - ONE_HALF) / ONE; ^~~ lib/libc/quad/fixunsdfdi.c:46:15: note: expanded from macro 'ONE' #define ONE (ONE_FOURTH * 4.0) ^~~~~~~~~~ lib/libc/quad/fixunsdfdi.c:44:23: note: expanded from macro 'ONE_FOURTH' #define ONE_FOURTH (1 << (LONG_BITS - 2)) ^ ~~~~~~~~~~~~~~~ Modified: stable/12/lib/libc/quad/fixdfdi.c stable/12/lib/libc/quad/fixsfdi.c stable/12/lib/libc/quad/fixunsdfdi.c stable/12/lib/libc/quad/fixunssfdi.c stable/12/lib/libc/quad/floatdidf.c stable/12/lib/libc/quad/floatdisf.c stable/12/lib/libc/quad/floatunsdidf.c stable/12/lib/libc/quad/qdivrem.c stable/12/lib/libc/quad/quad.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libc/quad/fixdfdi.c stable/11/lib/libc/quad/fixsfdi.c stable/11/lib/libc/quad/fixunsdfdi.c stable/11/lib/libc/quad/fixunssfdi.c stable/11/lib/libc/quad/floatdidf.c stable/11/lib/libc/quad/floatdisf.c stable/11/lib/libc/quad/floatunsdidf.c stable/11/lib/libc/quad/qdivrem.c stable/11/lib/libc/quad/quad.h Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libc/quad/fixdfdi.c ============================================================================== --- stable/12/lib/libc/quad/fixdfdi.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/12/lib/libc/quad/fixdfdi.c Fri Feb 21 21:57:24 2020 (r358230) @@ -50,12 +50,12 @@ __fixdfdi(x) double x; { if (x < 0) - if (x <= QUAD_MIN) + if (x <= (double)QUAD_MIN) return (QUAD_MIN); else return ((quad_t)-(u_quad_t)-x); else - if (x >= QUAD_MAX) + if (x >= (double)QUAD_MAX) return (QUAD_MAX); else return ((quad_t)(u_quad_t)x); Modified: stable/12/lib/libc/quad/fixsfdi.c ============================================================================== --- stable/12/lib/libc/quad/fixsfdi.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/12/lib/libc/quad/fixsfdi.c Fri Feb 21 21:57:24 2020 (r358230) @@ -51,12 +51,12 @@ long long __fixsfdi(float x) { if (x < 0) - if (x <= QUAD_MIN) + if (x <= (float)QUAD_MIN) return (QUAD_MIN); else return ((quad_t)-(u_quad_t)-x); else - if (x >= QUAD_MAX) + if (x >= (float)QUAD_MAX) return (QUAD_MAX); else return ((quad_t)(u_quad_t)x); Modified: stable/12/lib/libc/quad/fixunsdfdi.c ============================================================================== --- stable/12/lib/libc/quad/fixunsdfdi.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/12/lib/libc/quad/fixunsdfdi.c Fri Feb 21 21:57:24 2020 (r358230) @@ -41,7 +41,7 @@ __FBSDID("$FreeBSD$"); #include "quad.h" -#define ONE_FOURTH (1 << (LONG_BITS - 2)) +#define ONE_FOURTH (1L << (LONG_BITS - 2)) #define ONE_HALF (ONE_FOURTH * 2.0) #define ONE (ONE_FOURTH * 4.0) @@ -85,11 +85,11 @@ __fixunsdfdi(x) x -= (double)t.uq; if (x < 0) { t.ul[H]--; - x += ULONG_MAX; + x += (double)ULONG_MAX; } - if (x > ULONG_MAX) { + if (x > (double)ULONG_MAX) { t.ul[H]++; - x -= ULONG_MAX; + x -= (double)ULONG_MAX; } t.ul[L] = (u_long)x; return (t.uq); Modified: stable/12/lib/libc/quad/fixunssfdi.c ============================================================================== --- stable/12/lib/libc/quad/fixunssfdi.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/12/lib/libc/quad/fixunssfdi.c Fri Feb 21 21:57:24 2020 (r358230) @@ -41,7 +41,7 @@ __FBSDID("$FreeBSD$"); #include "quad.h" -#define ONE_FOURTH (1 << (LONG_BITS - 2)) +#define ONE_FOURTH (1L << (LONG_BITS - 2)) #define ONE_HALF (ONE_FOURTH * 2.0) #define ONE (ONE_FOURTH * 4.0) @@ -89,11 +89,11 @@ __fixunssfdi(float f) x -= (double)t.uq; if (x < 0) { t.ul[H]--; - x += ULONG_MAX; + x += (double)ULONG_MAX; } - if (x > ULONG_MAX) { + if (x > (double)ULONG_MAX) { t.ul[H]++; - x -= ULONG_MAX; + x -= (double)ULONG_MAX; } t.ul[L] = (u_long)x; return (t.uq); Modified: stable/12/lib/libc/quad/floatdidf.c ============================================================================== --- stable/12/lib/libc/quad/floatdidf.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/12/lib/libc/quad/floatdidf.c Fri Feb 21 21:57:24 2020 (r358230) @@ -67,7 +67,7 @@ __floatdidf(x) * code and does not know how to get at an exponent. Machine- * specific code may be able to do this more efficiently. */ - d = (double)u.ul[H] * ((1 << (LONG_BITS - 2)) * 4.0); + d = (double)u.ul[H] * ((1L << (LONG_BITS - 2)) * 4.0); d += u.ul[L]; return (neg ? -d : d); Modified: stable/12/lib/libc/quad/floatdisf.c ============================================================================== --- stable/12/lib/libc/quad/floatdisf.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/12/lib/libc/quad/floatdisf.c Fri Feb 21 21:57:24 2020 (r358230) @@ -69,7 +69,7 @@ __floatdisf(x) * * Using double here may be excessive paranoia. */ - f = (double)u.ul[H] * ((1 << (LONG_BITS - 2)) * 4.0); + f = (double)u.ul[H] * ((1L << (LONG_BITS - 2)) * 4.0); f += u.ul[L]; return (neg ? -f : f); Modified: stable/12/lib/libc/quad/floatunsdidf.c ============================================================================== --- stable/12/lib/libc/quad/floatunsdidf.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/12/lib/libc/quad/floatunsdidf.c Fri Feb 21 21:57:24 2020 (r358230) @@ -53,7 +53,7 @@ __floatunsdidf(x) union uu u; u.uq = x; - d = (double)u.ul[H] * ((1 << (LONG_BITS - 2)) * 4.0); + d = (double)u.ul[H] * ((1L << (LONG_BITS - 2)) * 4.0); d += u.ul[L]; return (d); } Modified: stable/12/lib/libc/quad/qdivrem.c ============================================================================== --- stable/12/lib/libc/quad/qdivrem.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/12/lib/libc/quad/qdivrem.c Fri Feb 21 21:57:24 2020 (r358230) @@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$"); #include "quad.h" -#define B (1 << HALF_BITS) /* digit base */ +#define B (1L << HALF_BITS) /* digit base */ /* Combine two `digits' to make a single two-digit number. */ #define COMBINE(a, b) (((u_long)(a) << HALF_BITS) | (b)) Modified: stable/12/lib/libc/quad/quad.h ============================================================================== --- stable/12/lib/libc/quad/quad.h Fri Feb 21 21:54:03 2020 (r358229) +++ stable/12/lib/libc/quad/quad.h Fri Feb 21 21:57:24 2020 (r358230) @@ -91,7 +91,7 @@ union uu { * (sizeof(long)*CHAR_BIT/2). */ #define HHALF(x) ((x) >> HALF_BITS) -#define LHALF(x) ((x) & ((1 << HALF_BITS) - 1)) +#define LHALF(x) ((x) & ((1L << HALF_BITS) - 1)) #define LHUP(x) ((x) << HALF_BITS) int __cmpdi2(quad_t a, quad_t b); From owner-svn-src-all@freebsd.org Fri Feb 21 21:57:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EAE98244E4C; Fri, 21 Feb 2020 21:57:29 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PQL06LNZz4h3l; Fri, 21 Feb 2020 21:57:28 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BC70619546; Fri, 21 Feb 2020 21:57:28 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01LLvS8V003446; Fri, 21 Feb 2020 21:57:28 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LLvQVu003436; Fri, 21 Feb 2020 21:57:26 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002212157.01LLvQVu003436@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 21 Feb 2020 21:57:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358230 - in stable: 11/lib/libc/quad 12/lib/libc/quad X-SVN-Group: stable-11 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable: 11/lib/libc/quad 12/lib/libc/quad X-SVN-Commit-Revision: 358230 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 21:57:30 -0000 Author: dim Date: Fri Feb 21 21:57:24 2020 New Revision: 358230 URL: https://svnweb.freebsd.org/changeset/base/358230 Log: MFC r358046: Merge r358042 from the clang1000-import branch: Add casts and L suffixes to libc quad support, to work around various -Werror warnings from clang 10.0.0, such as: lib/libc/quad/fixdfdi.c:57:12: error: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Werror,-Wimplicit-int-float-conversion] if (x >= QUAD_MAX) ~~ ^~~~~~~~ /usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/sys/limits.h:89:19: note: expanded from macro 'QUAD_MAX' #define QUAD_MAX (__QUAD_MAX) /* max value for a quad_t */ ^~~~~~~~~~ /usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/machine/_limits.h:91:20: note: expanded from macro '__QUAD_MAX' #define __QUAD_MAX __LLONG_MAX /* max value for a quad_t */ ^~~~~~~~~~~ /usr/obj/usr/src/powerpc.powerpc/tmp/usr/include/machine/_limits.h:75:21: note: expanded from macro '__LLONG_MAX' #define __LLONG_MAX 0x7fffffffffffffffLL /* max value for a long long */ ^~~~~~~~~~~~~~~~~~~~ and many instances of: lib/libc/quad/fixunsdfdi.c:73:17: error: shift count >= width of type [-Werror,-Wshift-count-overflow] toppart = (x - ONE_HALF) / ONE; ^~~~~~~~ lib/libc/quad/fixunsdfdi.c:45:19: note: expanded from macro 'ONE_HALF' #define ONE_HALF (ONE_FOURTH * 2.0) ^~~~~~~~~~ lib/libc/quad/fixunsdfdi.c:44:23: note: expanded from macro 'ONE_FOURTH' #define ONE_FOURTH (1 << (LONG_BITS - 2)) ^ ~~~~~~~~~~~~~~~ lib/libc/quad/fixunsdfdi.c:73:29: error: shift count >= width of type [-Werror,-Wshift-count-overflow] toppart = (x - ONE_HALF) / ONE; ^~~ lib/libc/quad/fixunsdfdi.c:46:15: note: expanded from macro 'ONE' #define ONE (ONE_FOURTH * 4.0) ^~~~~~~~~~ lib/libc/quad/fixunsdfdi.c:44:23: note: expanded from macro 'ONE_FOURTH' #define ONE_FOURTH (1 << (LONG_BITS - 2)) ^ ~~~~~~~~~~~~~~~ Modified: stable/11/lib/libc/quad/fixdfdi.c stable/11/lib/libc/quad/fixsfdi.c stable/11/lib/libc/quad/fixunsdfdi.c stable/11/lib/libc/quad/fixunssfdi.c stable/11/lib/libc/quad/floatdidf.c stable/11/lib/libc/quad/floatdisf.c stable/11/lib/libc/quad/floatunsdidf.c stable/11/lib/libc/quad/qdivrem.c stable/11/lib/libc/quad/quad.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/lib/libc/quad/fixdfdi.c stable/12/lib/libc/quad/fixsfdi.c stable/12/lib/libc/quad/fixunsdfdi.c stable/12/lib/libc/quad/fixunssfdi.c stable/12/lib/libc/quad/floatdidf.c stable/12/lib/libc/quad/floatdisf.c stable/12/lib/libc/quad/floatunsdidf.c stable/12/lib/libc/quad/qdivrem.c stable/12/lib/libc/quad/quad.h Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/libc/quad/fixdfdi.c ============================================================================== --- stable/11/lib/libc/quad/fixdfdi.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/11/lib/libc/quad/fixdfdi.c Fri Feb 21 21:57:24 2020 (r358230) @@ -48,12 +48,12 @@ __fixdfdi(x) double x; { if (x < 0) - if (x <= QUAD_MIN) + if (x <= (double)QUAD_MIN) return (QUAD_MIN); else return ((quad_t)-(u_quad_t)-x); else - if (x >= QUAD_MAX) + if (x >= (double)QUAD_MAX) return (QUAD_MAX); else return ((quad_t)(u_quad_t)x); Modified: stable/11/lib/libc/quad/fixsfdi.c ============================================================================== --- stable/11/lib/libc/quad/fixsfdi.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/11/lib/libc/quad/fixsfdi.c Fri Feb 21 21:57:24 2020 (r358230) @@ -49,12 +49,12 @@ long long __fixsfdi(float x) { if (x < 0) - if (x <= QUAD_MIN) + if (x <= (float)QUAD_MIN) return (QUAD_MIN); else return ((quad_t)-(u_quad_t)-x); else - if (x >= QUAD_MAX) + if (x >= (float)QUAD_MAX) return (QUAD_MAX); else return ((quad_t)(u_quad_t)x); Modified: stable/11/lib/libc/quad/fixunsdfdi.c ============================================================================== --- stable/11/lib/libc/quad/fixunsdfdi.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/11/lib/libc/quad/fixunsdfdi.c Fri Feb 21 21:57:24 2020 (r358230) @@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$"); #include "quad.h" -#define ONE_FOURTH (1 << (LONG_BITS - 2)) +#define ONE_FOURTH (1L << (LONG_BITS - 2)) #define ONE_HALF (ONE_FOURTH * 2.0) #define ONE (ONE_FOURTH * 4.0) @@ -83,11 +83,11 @@ __fixunsdfdi(x) x -= (double)t.uq; if (x < 0) { t.ul[H]--; - x += ULONG_MAX; + x += (double)ULONG_MAX; } - if (x > ULONG_MAX) { + if (x > (double)ULONG_MAX) { t.ul[H]++; - x -= ULONG_MAX; + x -= (double)ULONG_MAX; } t.ul[L] = (u_long)x; return (t.uq); Modified: stable/11/lib/libc/quad/fixunssfdi.c ============================================================================== --- stable/11/lib/libc/quad/fixunssfdi.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/11/lib/libc/quad/fixunssfdi.c Fri Feb 21 21:57:24 2020 (r358230) @@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$"); #include "quad.h" -#define ONE_FOURTH (1 << (LONG_BITS - 2)) +#define ONE_FOURTH (1L << (LONG_BITS - 2)) #define ONE_HALF (ONE_FOURTH * 2.0) #define ONE (ONE_FOURTH * 4.0) @@ -87,11 +87,11 @@ __fixunssfdi(float f) x -= (double)t.uq; if (x < 0) { t.ul[H]--; - x += ULONG_MAX; + x += (double)ULONG_MAX; } - if (x > ULONG_MAX) { + if (x > (double)ULONG_MAX) { t.ul[H]++; - x -= ULONG_MAX; + x -= (double)ULONG_MAX; } t.ul[L] = (u_long)x; return (t.uq); Modified: stable/11/lib/libc/quad/floatdidf.c ============================================================================== --- stable/11/lib/libc/quad/floatdidf.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/11/lib/libc/quad/floatdidf.c Fri Feb 21 21:57:24 2020 (r358230) @@ -65,7 +65,7 @@ __floatdidf(x) * code and does not know how to get at an exponent. Machine- * specific code may be able to do this more efficiently. */ - d = (double)u.ul[H] * ((1 << (LONG_BITS - 2)) * 4.0); + d = (double)u.ul[H] * ((1L << (LONG_BITS - 2)) * 4.0); d += u.ul[L]; return (neg ? -d : d); Modified: stable/11/lib/libc/quad/floatdisf.c ============================================================================== --- stable/11/lib/libc/quad/floatdisf.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/11/lib/libc/quad/floatdisf.c Fri Feb 21 21:57:24 2020 (r358230) @@ -67,7 +67,7 @@ __floatdisf(x) * * Using double here may be excessive paranoia. */ - f = (double)u.ul[H] * ((1 << (LONG_BITS - 2)) * 4.0); + f = (double)u.ul[H] * ((1L << (LONG_BITS - 2)) * 4.0); f += u.ul[L]; return (neg ? -f : f); Modified: stable/11/lib/libc/quad/floatunsdidf.c ============================================================================== --- stable/11/lib/libc/quad/floatunsdidf.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/11/lib/libc/quad/floatunsdidf.c Fri Feb 21 21:57:24 2020 (r358230) @@ -51,7 +51,7 @@ __floatunsdidf(x) union uu u; u.uq = x; - d = (double)u.ul[H] * ((1 << (LONG_BITS - 2)) * 4.0); + d = (double)u.ul[H] * ((1L << (LONG_BITS - 2)) * 4.0); d += u.ul[L]; return (d); } Modified: stable/11/lib/libc/quad/qdivrem.c ============================================================================== --- stable/11/lib/libc/quad/qdivrem.c Fri Feb 21 21:54:03 2020 (r358229) +++ stable/11/lib/libc/quad/qdivrem.c Fri Feb 21 21:57:24 2020 (r358230) @@ -44,7 +44,7 @@ __FBSDID("$FreeBSD$"); #include "quad.h" -#define B (1 << HALF_BITS) /* digit base */ +#define B (1L << HALF_BITS) /* digit base */ /* Combine two `digits' to make a single two-digit number. */ #define COMBINE(a, b) (((u_long)(a) << HALF_BITS) | (b)) Modified: stable/11/lib/libc/quad/quad.h ============================================================================== --- stable/11/lib/libc/quad/quad.h Fri Feb 21 21:54:03 2020 (r358229) +++ stable/11/lib/libc/quad/quad.h Fri Feb 21 21:57:24 2020 (r358230) @@ -89,7 +89,7 @@ union uu { * (sizeof(long)*CHAR_BIT/2). */ #define HHALF(x) ((x) >> HALF_BITS) -#define LHALF(x) ((x) & ((1 << HALF_BITS) - 1)) +#define LHALF(x) ((x) & ((1L << HALF_BITS) - 1)) #define LHUP(x) ((x) << HALF_BITS) int __cmpdi2(quad_t a, quad_t b); From owner-svn-src-all@freebsd.org Fri Feb 21 22:07:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EE7E3245475; Fri, 21 Feb 2020 22:07:19 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-ot1-f43.google.com (mail-ot1-f43.google.com [209.85.210.43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PQYM62qcz4q9s; Fri, 21 Feb 2020 22:07:19 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-ot1-f43.google.com with SMTP id i6so3427819otr.7; Fri, 21 Feb 2020 14:07:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=RGvMfszjYcK1S12S6oW+Qlnd340osGw1XhRC5zD4Pxc=; b=aGPdM4LhLU4QZ1KAxSq1NFSZFhhOoO/m7XVyqUhaq/Dy2gGzvhoXZAJWLME6e9DD5O ndc0oQgcDMbQfUNRIk1ZOHs/w27R27SlT0rLAWI3cQIMjutO10bCjTe9mlMrr45g973O 4hLk+8IBUTKUam/XIFwKRH+rclWePcp9ZShR6Sjg0S2AgfcYGTS/lg46vo6LDQvS0mv4 VqNsKz2QpnN/incPMVYXduon3GZYUPpNGSE3G4yAAW0VQtT94U5zkOy12P5UUToWl0OP ZyYQYMy0/0nJpfL2pd77KeJ7bMIvyIXclDDE1GU5lsTE82iyz9It+BJfD6eXlIGk+OcC nkkA== X-Gm-Message-State: APjAAAVd7+IHKznnkkIhOZemn64MQahVHiwzUqkVYCXH9RZQiuj1YLqg WnPXOix2IqZjscOO2Ll4ciHGZvPQ X-Google-Smtp-Source: APXvYqzBSEcJOfjE4yqv8V5iRnFU49ekXQu/Wx0Xty2TriLcz5fDckhAkltXSKDYXqm99sDQ0PIHcQ== X-Received: by 2002:a9d:1c96:: with SMTP id l22mr30641975ota.322.1582322837309; Fri, 21 Feb 2020 14:07:17 -0800 (PST) Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com. [209.85.167.169]) by smtp.gmail.com with ESMTPSA id l207sm1371898oih.25.2020.02.21.14.07.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 21 Feb 2020 14:07:17 -0800 (PST) Received: by mail-oi1-f169.google.com with SMTP id b18so3141554oie.2; Fri, 21 Feb 2020 14:07:16 -0800 (PST) X-Received: by 2002:aca:cf12:: with SMTP id f18mr3896392oig.81.1582322836417; Fri, 21 Feb 2020 14:07:16 -0800 (PST) MIME-Version: 1.0 References: <202002200301.01K31RTk043426@repo.freebsd.org> In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Fri, 21 Feb 2020 14:07:05 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r358152 - head/bin/sh To: Li-Wen Hsu Cc: Antoine Brodin , Hiroki Sato , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48PQYM62qcz4q9s X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 22:07:20 -0000 Given the report and looking at the change, I suspect the problem is the promotion of '-residue' from size_t (unsigned 32-bit on i386) to off_t (signed 64-bit). Something like '-(off_t)residue' or even 'off_t residue;' should fix it. Repro: static void myoff(off_t foo) { printf("%jd\n", (intmax_t)foo); } void main(int argc, char **argv) { uint32_t sz = 1023; myoff(-sz); } Prints: "4294966273" (not: "-1023"). Either proposed fix above produces the expected -1023. Best, Conrad On Fri, Feb 21, 2020 at 1:53 PM Li-Wen Hsu wrote: > > On Sat, Feb 22, 2020 at 4:58 AM Antoine Brodin wrote: > > > > On Thu, Feb 20, 2020 at 4:01 AM Hiroki Sato wrote: > > > > > > Author: hrs > > > Date: Thu Feb 20 03:01:27 2020 > > > New Revision: 358152 > > > URL: https://svnweb.freebsd.org/changeset/base/358152 > > > > > > Log: > > > Improve performance of "read" built-in command when using a seekable > > > fd. > > > > > > The read built-in command calls read(2) with a 1-byte buffer because > > > newline characters need to be detected even on a byte stream which > > > comes from a non-seekable file descriptor. Because of this, the > > > following script calls >6,000 read(2) to show a 6KiB file: > > > > > > while read IN; do echo "$IN"; done < /COPYRIGHT > > > > > > When the input byte stream is seekable, it is possible to read a data > > > block and then reposition the file pointer to where a newline > > > character found. This change adds a small buffer to do this and > > > reduces the number of read(2) calls. > > > > > > Theoretically, multiple built-in commands reading the same seekable > > > byte stream in a single pipe chain can share the buffer. However, > > > this change just makes a single invocation of the read built-in > > > allocate a buffer and deallocate it every time for simplicity. > > > Although this causes read(2) to read the same regions multiple times, > > > the performance penalty should be small compared to the reduction of > > > read(2) calls. > > > > > > Reviewed by: jilles > > > MFC after: 1 week > > > Differential Revision: https://reviews.freebsd.org/D23747 > > > > This seems to be broken on at least i386. > > Please either fix or revert. > > > > Antoine (with hat: portmgr) > > Could you provide more detail? I'm worried because I didn't see > related regression from the recent test results. We may need to add > more test against the breakage you mentioned. > > Thanks, > Li-Wen From owner-svn-src-all@freebsd.org Fri Feb 21 22:08:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D17A124554E; Fri, 21 Feb 2020 22:08:46 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PQb23r6Pz4swn; Fri, 21 Feb 2020 22:08:46 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6E96519719; Fri, 21 Feb 2020 22:08:46 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01LM8k5m009737; Fri, 21 Feb 2020 22:08:46 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LM8k48009736; Fri, 21 Feb 2020 22:08:46 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002212208.01LM8k48009736@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 21 Feb 2020 22:08:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358231 - stable/12/sys/arm/allwinner X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: stable/12/sys/arm/allwinner X-SVN-Commit-Revision: 358231 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 22:08:46 -0000 Author: dim Date: Fri Feb 21 22:08:45 2020 New Revision: 358231 URL: https://svnweb.freebsd.org/changeset/base/358231 Log: MFC r358044: Merge r358030 from the clang1000-import branch: Work around new clang 10.0.0 -Werror warning: sys/arm/allwinner/aw_cir.c:208:41: error: converting the result of '<<' to a boolean; did you mean '((1 & 255) << 23) != 0'? [-Werror,-Wint-in-bool-context] active_delay = (AW_IR_ACTIVE_T + 1) * (AW_IR_ACTIVE_T_C ? 128 : 1); ^ sys/arm/allwinner/aw_cir.c:130:39: note: expanded from macro 'AW_IR_ACTIVE_T_C' #define AW_IR_ACTIVE_T_C ((1 & 0xff) << 23) ^ Add the != 0 part to indicate that we indeed want to compare against zero. Modified: stable/12/sys/arm/allwinner/aw_cir.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/arm/allwinner/aw_cir.c ============================================================================== --- stable/12/sys/arm/allwinner/aw_cir.c Fri Feb 21 21:57:24 2020 (r358230) +++ stable/12/sys/arm/allwinner/aw_cir.c Fri Feb 21 22:08:45 2020 (r358231) @@ -205,7 +205,7 @@ aw_ir_decode_packets(struct aw_ir_softc *sc) device_printf(sc->dev, "sc->dcnt = %d\n", sc->dcnt); /* Find Lead 1 (bit separator) */ - active_delay = (AW_IR_ACTIVE_T + 1) * (AW_IR_ACTIVE_T_C ? 128 : 1); + active_delay = (AW_IR_ACTIVE_T + 1) * (AW_IR_ACTIVE_T_C != 0 ? 128 : 1); len = 0; len += (active_delay >> 1); if (bootverbose) From owner-svn-src-all@freebsd.org Fri Feb 21 22:11:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3DB4624578B; Fri, 21 Feb 2020 22:11:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PQdv0C4gz3Fhy; Fri, 21 Feb 2020 22:11:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E9B8D19769; Fri, 21 Feb 2020 22:11:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01LMBEgK011553; Fri, 21 Feb 2020 22:11:14 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LMBEGT011552; Fri, 21 Feb 2020 22:11:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202002212211.01LMBEGT011552@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 21 Feb 2020 22:11:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358232 - stable/12/sys/arm/allwinner/clkng X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: stable/12/sys/arm/allwinner/clkng X-SVN-Commit-Revision: 358232 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 22:11:15 -0000 Author: dim Date: Fri Feb 21 22:11:14 2020 New Revision: 358232 URL: https://svnweb.freebsd.org/changeset/base/358232 Log: MFC r358074: Fix the following -Werror warning from clang 10.0.0: sys/arm/allwinner/clkng/aw_clk_mipi.c:144:6: error: misleading indentation; statement is not part of the previous 'if' [-Werror,-Wmisleading-indentation] m++; ^ sys/arm/allwinner/clkng/aw_clk_mipi.c:142:5: note: previous statement is here if (best == *fout) ^ Move the increment operations into the for loop headers instead. Discussed with: manu Modified: stable/12/sys/arm/allwinner/clkng/aw_clk_mipi.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/arm/allwinner/clkng/aw_clk_mipi.c ============================================================================== --- stable/12/sys/arm/allwinner/clkng/aw_clk_mipi.c Fri Feb 21 22:08:45 2020 (r358231) +++ stable/12/sys/arm/allwinner/clkng/aw_clk_mipi.c Fri Feb 21 22:11:14 2020 (r358232) @@ -129,9 +129,9 @@ aw_clk_mipi_find_best(struct aw_clk_mipi_sc *sc, uint6 *factor_k = 0; *factor_m = 0; - for (n = aw_clk_factor_get_min(&sc->n); n <= aw_clk_factor_get_max(&sc->n); ) { - for (k = aw_clk_factor_get_min(&sc->k); k <= aw_clk_factor_get_max(&sc->k); ) { - for (m = aw_clk_factor_get_min(&sc->m); m <= aw_clk_factor_get_max(&sc->m); ) { + for (n = aw_clk_factor_get_min(&sc->n); n <= aw_clk_factor_get_max(&sc->n); n++) { + for (k = aw_clk_factor_get_min(&sc->k); k <= aw_clk_factor_get_max(&sc->k); k++) { + for (m = aw_clk_factor_get_min(&sc->m); m <= aw_clk_factor_get_max(&sc->m); m++) { cur = (fparent * n * k) / m; if ((*fout - cur) < (*fout - best)) { best = cur; @@ -141,11 +141,8 @@ aw_clk_mipi_find_best(struct aw_clk_mipi_sc *sc, uint6 } if (best == *fout) return (best); - m++; } - k++; } - n++; } return best; From owner-svn-src-all@freebsd.org Fri Feb 21 22:44:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1243A2460B4; Fri, 21 Feb 2020 22:44:24 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PRN73PK7z3x9p; Fri, 21 Feb 2020 22:44:23 +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 56A8C19E52; Fri, 21 Feb 2020 22:44:23 +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 01LMiNXD033794; Fri, 21 Feb 2020 22:44:23 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01LMiN0t033793; Fri, 21 Feb 2020 22:44:23 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202002212244.01LMiN0t033793@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 21 Feb 2020 22:44:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358233 - head/sys/cam/scsi X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/cam/scsi X-SVN-Commit-Revision: 358233 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2020 22:44:24 -0000 Author: imp Date: Fri Feb 21 22:44:22 2020 New Revision: 358233 URL: https://svnweb.freebsd.org/changeset/base/358233 Log: We pass a pointer to the flags to dabitsysctl, not an integer. Adjust the handler to accept a poitner to a u_int. To make the type of the softc flags stable and defined, make it a u_int. Cast the enum types to u_int for arg2 so when passing to dabitsysctl it's a u_int. Noticed by: emax@ Differential Revision: https://reviews.freebsd.org/D23785 Modified: head/sys/cam/scsi/scsi_da.c Modified: head/sys/cam/scsi/scsi_da.c ============================================================================== --- head/sys/cam/scsi/scsi_da.c Fri Feb 21 22:11:14 2020 (r358232) +++ head/sys/cam/scsi/scsi_da.c Fri Feb 21 22:44:22 2020 (r358233) @@ -342,7 +342,7 @@ struct da_softc { LIST_HEAD(, ccb_hdr) pending_ccbs; int refcount; /* Active xpt_action() calls */ da_state state; - da_flags flags; + u_int flags; da_quirks quirks; int minimum_cmd_size; int error_inject; @@ -2335,11 +2335,11 @@ dasysctlinit(void *context, int pending) "Flags for drive"); SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, "rotating", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, - &softc->flags, DA_FLAG_ROTATING, dabitsysctl, "I", + &softc->flags, (u_int)DA_FLAG_ROTATING, dabitsysctl, "I", "Rotating media *DEPRECATED* gone in FreeBSD 14"); SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, "unmapped_io", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, - &softc->flags, DA_FLAG_UNMAPPEDIO, dabitsysctl, "I", + &softc->flags, (u_int)DA_FLAG_UNMAPPEDIO, dabitsysctl, "I", "Unmapped I/O support *DEPRECATED* gone in FreeBSD 14"); #ifdef CAM_TEST_FAILURE @@ -2619,11 +2619,11 @@ dadeletemethodchoose(struct da_softc *softc, da_delete static int dabitsysctl(SYSCTL_HANDLER_ARGS) { - int flags = (intptr_t)arg1; - int test = arg2; + u_int *flags = arg1; + u_int test = arg2; int tmpout, error; - tmpout = !!(flags & test); + tmpout = !!(*flags & test); error = SYSCTL_OUT(req, &tmpout, sizeof(tmpout)); if (error || !req->newptr) return (error); From owner-svn-src-all@freebsd.org Sat Feb 22 01:31:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B946C24A925; Sat, 22 Feb 2020 01:31:07 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PW4W2zmBz4PMq; Sat, 22 Feb 2020 01:31:07 +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 38E3F1BBE6; Sat, 22 Feb 2020 01:31:07 +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 01M1V6Oo031842; Sat, 22 Feb 2020 01:31:06 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01M1V6pv031841; Sat, 22 Feb 2020 01:31:06 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202002220131.01M1V6pv031841@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 22 Feb 2020 01:31:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358234 - head/sys/powerpc/booke X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/booke X-SVN-Commit-Revision: 358234 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 01:31:07 -0000 Author: jhibbits Date: Sat Feb 22 01:31:06 2020 New Revision: 358234 URL: https://svnweb.freebsd.org/changeset/base/358234 Log: powerpc/booke: Fix handling of pvh_global_lock and pmap lock ptbl_alloc() is expected to return with the pvh_global_lock and pmap lock held. However, it will return with them unlocked if nosleep is specified. Along with this, fix lock ordering of pvh_global_lock with respect to the pmap lock in other places. Differential Revision: https://reviews.freebsd.org/D23692 Modified: head/sys/powerpc/booke/pmap.c Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Fri Feb 21 22:44:22 2020 (r358233) +++ head/sys/powerpc/booke/pmap.c Sat Feb 22 01:31:06 2020 (r358234) @@ -705,11 +705,10 @@ ptbl_alloc(mmu_t mmu, pmap_t pmap, pte_t ** pdir, unsi req = VM_ALLOC_NOOBJ | VM_ALLOC_WIRED; while ((m = vm_page_alloc(NULL, pdir_idx, req)) == NULL) { + if (nosleep) + return (NULL); PMAP_UNLOCK(pmap); rw_wunlock(&pvh_global_lock); - if (nosleep) { - return (NULL); - } vm_wait(NULL); rw_wlock(&pvh_global_lock); PMAP_LOCK(pmap); @@ -905,8 +904,6 @@ ptbl_alloc(mmu_t mmu, pmap_t pmap, unsigned int pdir_i pidx = (PTBL_PAGES * pdir_idx) + i; while ((m = vm_page_alloc(NULL, pidx, VM_ALLOC_NOOBJ | VM_ALLOC_WIRED)) == NULL) { - PMAP_UNLOCK(pmap); - rw_wunlock(&pvh_global_lock); if (nosleep) { ptbl_free_pmap_ptbl(pmap, ptbl); for (j = 0; j < i; j++) @@ -914,6 +911,8 @@ ptbl_alloc(mmu_t mmu, pmap_t pmap, unsigned int pdir_i vm_wire_sub(i); return (NULL); } + PMAP_UNLOCK(pmap); + rw_wunlock(&pvh_global_lock); vm_wait(NULL); rw_wlock(&pvh_global_lock); PMAP_LOCK(pmap); @@ -2481,8 +2480,8 @@ mmu_booke_enter_object(mmu_t mmu, pmap_t pmap, vm_offs PMAP_ENTER_NOSLEEP | PMAP_ENTER_QUICK_LOCKED, 0); m = TAILQ_NEXT(m, listq); } - rw_wunlock(&pvh_global_lock); PMAP_UNLOCK(pmap); + rw_wunlock(&pvh_global_lock); } static void @@ -2495,8 +2494,8 @@ mmu_booke_enter_quick(mmu_t mmu, pmap_t pmap, vm_offse mmu_booke_enter_locked(mmu, pmap, va, m, prot & (VM_PROT_READ | VM_PROT_EXECUTE), PMAP_ENTER_NOSLEEP | PMAP_ENTER_QUICK_LOCKED, 0); - rw_wunlock(&pvh_global_lock); PMAP_UNLOCK(pmap); + rw_wunlock(&pvh_global_lock); } /* From owner-svn-src-all@freebsd.org Sat Feb 22 03:14:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1BABF24DAEC; Sat, 22 Feb 2020 03:14:06 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PYMK6WG2z4LGW; Sat, 22 Feb 2020 03:14:05 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D37861D0A9; Sat, 22 Feb 2020 03:14:05 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01M3E5Zq096136; Sat, 22 Feb 2020 03:14:05 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01M3E5xJ096135; Sat, 22 Feb 2020 03:14:05 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002220314.01M3E5xJ096135@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 22 Feb 2020 03:14:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358235 - head/bin/sh X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/bin/sh X-SVN-Commit-Revision: 358235 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 03:14:06 -0000 Author: kevans Date: Sat Feb 22 03:14:05 2020 New Revision: 358235 URL: https://svnweb.freebsd.org/changeset/base/358235 Log: sh: fix read builtin on 32-bit systems Specifically, any system with a 32-bit size_t; -residue is calculated as a 32-bit *then* promoted to the 64-bit off_t and the result is ultimately wrong. This resulted in what would appear to be truncated output, as only the first line would be read. Correct it by just making residue an off_t to begin with, since this is what lseek will take anyways. Reported by: antoine, dim Triaged by: cem Tested by: kevans X-MFC-With: r358152 Modified: head/bin/sh/miscbltin.c Modified: head/bin/sh/miscbltin.c ============================================================================== --- head/bin/sh/miscbltin.c Sat Feb 22 01:31:06 2020 (r358234) +++ head/bin/sh/miscbltin.c Sat Feb 22 03:14:05 2020 (r358235) @@ -117,7 +117,7 @@ fdgetc(struct fdctx *fdc, char *c) static void fdctx_destroy(struct fdctx *fdc) { - size_t residue; + off_t residue; if (fdc->buflen > 1) { /* From owner-svn-src-all@freebsd.org Sat Feb 22 03:32:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3F6DB24E541; Sat, 22 Feb 2020 03:32:06 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PYm60THCz4tqm; Sat, 22 Feb 2020 03:32:06 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id DD67F1F8CD; Sat, 22 Feb 2020 03:32:05 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qk1-f173.google.com with SMTP id f3so895976qkh.3; Fri, 21 Feb 2020 19:32:05 -0800 (PST) X-Gm-Message-State: APjAAAXUghvDDTp5jpL0OmR2Ybh2HxywSqBacCtnbSfOKVb1x1mdzy68 BgZAcC7bsl0S2j0Oi+jFTtJfpzIdK0xx2pnh998= X-Google-Smtp-Source: APXvYqwveQAHQSn0Thg8zghHMq79FHW6G19b7Beq84CX3INEX78jDNLEqd1N7b2t7Zvl9FNKXHvwA05bEja/z3IUrtU= X-Received: by 2002:a37:a488:: with SMTP id n130mr36896918qke.120.1582342325292; Fri, 21 Feb 2020 19:32:05 -0800 (PST) MIME-Version: 1.0 References: <202002200301.01K31RTk043426@repo.freebsd.org> In-Reply-To: From: Kyle Evans Date: Fri, 21 Feb 2020 21:31:53 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r358152 - head/bin/sh To: Li-Wen Hsu Cc: Antoine Brodin , Hiroki Sato , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 03:32:06 -0000 On Fri, Feb 21, 2020 at 3:53 PM Li-Wen Hsu wrote: > > On Sat, Feb 22, 2020 at 4:58 AM Antoine Brodin wrote: > > > > On Thu, Feb 20, 2020 at 4:01 AM Hiroki Sato wrote: > > > > > > Author: hrs > > > Date: Thu Feb 20 03:01:27 2020 > > > New Revision: 358152 > > > URL: https://svnweb.freebsd.org/changeset/base/358152 > > > > > > Log: > > > Improve performance of "read" built-in command when using a seekable > > > fd. > > > > > > The read built-in command calls read(2) with a 1-byte buffer because > > > newline characters need to be detected even on a byte stream which > > > comes from a non-seekable file descriptor. Because of this, the > > > following script calls >6,000 read(2) to show a 6KiB file: > > > > > > while read IN; do echo "$IN"; done < /COPYRIGHT > > > > > > When the input byte stream is seekable, it is possible to read a data > > > block and then reposition the file pointer to where a newline > > > character found. This change adds a small buffer to do this and > > > reduces the number of read(2) calls. > > > > > > Theoretically, multiple built-in commands reading the same seekable > > > byte stream in a single pipe chain can share the buffer. However, > > > this change just makes a single invocation of the read built-in > > > allocate a buffer and deallocate it every time for simplicity. > > > Although this causes read(2) to read the same regions multiple times, > > > the performance penalty should be small compared to the reduction of > > > read(2) calls. > > > > > > Reviewed by: jilles > > > MFC after: 1 week > > > Differential Revision: https://reviews.freebsd.org/D23747 > > > > This seems to be broken on at least i386. > > Please either fix or revert. > > > > Antoine (with hat: portmgr) > > Could you provide more detail? I'm worried because I didn't see > related regression from the recent test results. We may need to add > more test against the breakage you mentioned. > This trivially failed with the example in the commit message; only the first line would be output. It also triggered a failure of functional_test:read2 in /usr/tests/bin/sh/builtins on i386 (and all of the other platforms with a 32-bit size_t), which would exit with a non-zero status code. I tested and deployed the fix suggested by cem@ as r358235 by just making residue an off_t, Thanks, Kyle Evans From owner-svn-src-all@freebsd.org Sat Feb 22 03:44:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9C5B424E90A; Sat, 22 Feb 2020 03:44:11 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PZ234RJkz45b8; Sat, 22 Feb 2020 03:44:11 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 929691D656; Sat, 22 Feb 2020 03:44:11 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01M3iBRR013981; Sat, 22 Feb 2020 03:44:11 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01M3iAqI013978; Sat, 22 Feb 2020 03:44:10 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202002220344.01M3iAqI013978@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Sat, 22 Feb 2020 03:44:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358236 - in head/sys: kern sys vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in head/sys: kern sys vm X-SVN-Commit-Revision: 358236 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 03:44:11 -0000 Author: jeff Date: Sat Feb 22 03:44:10 2020 New Revision: 358236 URL: https://svnweb.freebsd.org/changeset/base/358236 Log: Add an atomic-free tick moderated lazy update variant of SMR. This enables very cheap read sections with free-to-use latencies and memory overhead similar to epoch. On a recent AMD platform a read section cost 1ns vs 5ns for the default SMR. On Xeon the numbers should be more like 1 ns vs 11. The memory consumption should be proportional to the product of the free rate and 2*1/hz while normal SMR consumption is proportional to the product of free rate and maximum read section time. While here refactor the code to make future additions more straightforward. Name the overall technique Global Unbound Sequences (GUS) and adjust some comments accordingly. This helps distinguish discussions of the general technique (SMR) vs this specific implementation (GUS). Discussed with: rlibby, markj Modified: head/sys/kern/subr_smr.c head/sys/sys/_smr.h head/sys/sys/smr.h head/sys/vm/uma_core.c Modified: head/sys/kern/subr_smr.c ============================================================================== --- head/sys/kern/subr_smr.c Sat Feb 22 03:14:05 2020 (r358235) +++ head/sys/kern/subr_smr.c Sat Feb 22 03:44:10 2020 (r358236) @@ -41,6 +41,8 @@ __FBSDID("$FreeBSD$"); #include /* + * Global Unbounded Sequences (GUS) + * * This is a novel safe memory reclamation technique inspired by * epoch based reclamation from Samy Al Bahra's concurrency kit which * in turn was based on work described in: @@ -53,7 +55,8 @@ __FBSDID("$FreeBSD$"); * This is not an implementation of hazard pointers or related * techniques. The term safe memory reclamation is used as a * generic descriptor for algorithms that defer frees to avoid - * use-after-free errors with lockless datastructures. + * use-after-free errors with lockless datastructures or as + * a mechanism to detect quiescence for writer synchronization. * * The basic approach is to maintain a monotonic write sequence * number that is updated on some application defined granularity. @@ -67,7 +70,7 @@ __FBSDID("$FreeBSD$"); * a global write clock that is used to mark memory on free. * * The write and read sequence numbers can be thought of as a two - * handed clock with readers always advancing towards writers. SMR + * handed clock with readers always advancing towards writers. GUS * maintains the invariant that all readers can safely access memory * that was visible at the time they loaded their copy of the sequence * number. Periodically the read sequence or hand is polled and @@ -80,9 +83,12 @@ __FBSDID("$FreeBSD$"); * A stored sequence number that falls outside of this range has expired * and needs no scan to reclaim. * - * A notable distinction between this SMR and Epoch, qsbr, rcu, etc. is + * A notable distinction between GUS and Epoch, qsbr, rcu, etc. is * that advancing the sequence number is decoupled from detecting its - * observation. This results in a more granular assignment of sequence + * observation. That is to say, the delta between read and write + * sequence numbers is not bound. This can be thought of as a more + * generalized form of epoch which requires them at most one step + * apart. This results in a more granular assignment of sequence * numbers even as read latencies prohibit all or some expiration. * It also allows writers to advance the sequence number and save the * poll for expiration until a later time when it is likely to @@ -164,60 +170,145 @@ static uma_zone_t smr_zone; #define SMR_SEQ_MAX_ADVANCE SMR_SEQ_MAX_DELTA / 2 #endif +/* + * The grace period for lazy (tick based) SMR. + * + * Hardclock is responsible for advancing ticks on a single CPU while every + * CPU receives a regular clock interrupt. The clock interrupts are flushing + * the store buffers and any speculative loads that may violate our invariants. + * Because these interrupts are not synchronized we must wait one additional + * tick in the future to be certain that all processors have had their state + * synchronized by an interrupt. + * + * This assumes that the clock interrupt will only be delayed by other causes + * that will flush the store buffer or prevent access to the section protected + * data. For example, an idle processor, or an system management interrupt, + * or a vm exit. + * + * We must wait one additional tick if we are around the wrap condition + * because the write seq will move forward by two with one interrupt. + */ +#define SMR_LAZY_GRACE 2 +#define SMR_LAZY_GRACE_MAX (SMR_LAZY_GRACE + 1) + +/* + * The maximum sequence number ahead of wr_seq that may still be valid. The + * sequence may not be advanced on write for lazy or deferred SMRs. In this + * case poll needs to attempt to forward the sequence number if the goal is + * within wr_seq + SMR_SEQ_ADVANCE. + */ +#define SMR_SEQ_ADVANCE MAX(SMR_SEQ_INCR, SMR_LAZY_GRACE_MAX) + static SYSCTL_NODE(_debug, OID_AUTO, smr, CTLFLAG_RW, NULL, "SMR Stats"); static counter_u64_t advance = EARLY_COUNTER; -SYSCTL_COUNTER_U64(_debug_smr, OID_AUTO, advance, CTLFLAG_RD, &advance, ""); +SYSCTL_COUNTER_U64(_debug_smr, OID_AUTO, advance, CTLFLAG_RW, &advance, ""); static counter_u64_t advance_wait = EARLY_COUNTER; -SYSCTL_COUNTER_U64(_debug_smr, OID_AUTO, advance_wait, CTLFLAG_RD, &advance_wait, ""); +SYSCTL_COUNTER_U64(_debug_smr, OID_AUTO, advance_wait, CTLFLAG_RW, &advance_wait, ""); static counter_u64_t poll = EARLY_COUNTER; -SYSCTL_COUNTER_U64(_debug_smr, OID_AUTO, poll, CTLFLAG_RD, &poll, ""); +SYSCTL_COUNTER_U64(_debug_smr, OID_AUTO, poll, CTLFLAG_RW, &poll, ""); static counter_u64_t poll_scan = EARLY_COUNTER; -SYSCTL_COUNTER_U64(_debug_smr, OID_AUTO, poll_scan, CTLFLAG_RD, &poll_scan, ""); +SYSCTL_COUNTER_U64(_debug_smr, OID_AUTO, poll_scan, CTLFLAG_RW, &poll_scan, ""); +static counter_u64_t poll_fail = EARLY_COUNTER; +SYSCTL_COUNTER_U64(_debug_smr, OID_AUTO, poll_fail, CTLFLAG_RW, &poll_fail, ""); - /* - * Advance the write sequence and return the new value for use as the - * wait goal. This guarantees that any changes made by the calling - * thread prior to this call will be visible to all threads after - * rd_seq meets or exceeds the return value. + * Advance a lazy write sequence number. These move forward at the rate of + * ticks. Grace is two ticks in the future. lazy write sequence numbers can + * be even but not SMR_SEQ_INVALID so we pause time for a tick when we wrap. * - * This function may busy loop if the readers are roughly 1 billion - * sequence numbers behind the writers. + * This returns the _current_ write sequence number. The lazy goal sequence + * number is SMR_LAZY_GRACE ticks ahead. */ -smr_seq_t -smr_advance(smr_t smr) +static smr_seq_t +smr_lazy_advance(smr_t smr, smr_shared_t s) { - smr_shared_t s; - smr_seq_t goal, s_rd_seq; + smr_seq_t s_rd_seq, s_wr_seq, goal; + int t; + CRITICAL_ASSERT(curthread); + /* - * It is illegal to enter while in an smr section. + * Load s_wr_seq prior to ticks to ensure that the thread that + * observes the largest value wins. */ - SMR_ASSERT_NOT_ENTERED(smr); + s_wr_seq = atomic_load_acq_int(&s->s_wr_seq); /* - * Modifications not done in a smr section need to be visible - * before advancing the seq. + * We must not allow a zero tick value. We go back in time one tick + * and advance the grace period forward one tick around zero. */ - atomic_thread_fence_rel(); + t = ticks; + if (t == SMR_SEQ_INVALID) + t--; /* - * Load the current read seq before incrementing the goal so - * we are guaranteed it is always < goal. + * The most probable condition that the update already took place. */ - s = zpcpu_get(smr)->c_shared; - s_rd_seq = atomic_load_acq_int(&s->s_rd_seq); + if (__predict_true(t == s_wr_seq)) + goto out; /* - * Increment the shared write sequence by 2. Since it is - * initialized to 1 this means the only valid values are - * odd and an observed value of 0 in a particular CPU means - * it is not currently in a read section. + * After long idle periods the read sequence may fall too far + * behind write. Prevent poll from ever seeing this condition + * by updating the stale rd_seq. This assumes that there can + * be no valid section 2bn ticks old. The rd_seq update must + * be visible before wr_seq to avoid races with other advance + * callers. */ - goal = atomic_fetchadd_int(&s->s_wr_seq, SMR_SEQ_INCR) + SMR_SEQ_INCR; + s_rd_seq = atomic_load_int(&s->s_rd_seq); + if (SMR_SEQ_GT(s_rd_seq, t)) + atomic_cmpset_rel_int(&s->s_rd_seq, s_rd_seq, t); + + /* + * Release to synchronize with the wr_seq load above. Ignore + * cmpset failures from simultaneous updates. + */ + atomic_cmpset_rel_int(&s->s_wr_seq, s_wr_seq, t); counter_u64_add(advance, 1); + /* If we lost either update race another thread did it. */ + s_wr_seq = t; +out: + goal = s_wr_seq + SMR_LAZY_GRACE; + /* Skip over the SMR_SEQ_INVALID tick. */ + if (goal < SMR_LAZY_GRACE) + goal++; + return (goal); +} +/* + * Increment the shared write sequence by 2. Since it is initialized + * to 1 this means the only valid values are odd and an observed value + * of 0 in a particular CPU means it is not currently in a read section. + */ +static smr_seq_t +smr_shared_advance(smr_shared_t s) +{ + + return (atomic_fetchadd_int(&s->s_wr_seq, SMR_SEQ_INCR) + SMR_SEQ_INCR); +} + +/* + * Advance the write sequence number for a normal smr section. If the + * write sequence is too far behind the read sequence we have to poll + * to advance rd_seq and prevent undetectable wraps. + */ +static smr_seq_t +smr_default_advance(smr_t smr, smr_shared_t s) +{ + smr_seq_t goal, s_rd_seq; + + CRITICAL_ASSERT(curthread); + KASSERT((zpcpu_get(smr)->c_flags & SMR_LAZY) == 0, + ("smr_default_advance: called with lazy smr.")); + /* + * Load the current read seq before incrementing the goal so + * we are guaranteed it is always < goal. + */ + s_rd_seq = atomic_load_acq_int(&s->s_rd_seq); + goal = smr_shared_advance(s); + + /* * Force a synchronization here if the goal is getting too * far ahead of the read sequence number. This keeps the * wrap detecting arithmetic working in pathological cases. @@ -226,33 +317,175 @@ smr_advance(smr_t smr) counter_u64_add(advance_wait, 1); smr_wait(smr, goal - SMR_SEQ_MAX_ADVANCE); } + counter_u64_add(advance, 1); return (goal); } +/* + * Deferred SMRs conditionally update s_wr_seq based on an + * cpu local interval count. + */ +static smr_seq_t +smr_deferred_advance(smr_t smr, smr_shared_t s, smr_t self) +{ + + if (++self->c_deferred < self->c_limit) + return (smr_shared_current(s) + SMR_SEQ_INCR); + self->c_deferred = 0; + return (smr_default_advance(smr, s)); +} + +/* + * Advance the write sequence and return the value for use as the + * wait goal. This guarantees that any changes made by the calling + * thread prior to this call will be visible to all threads after + * rd_seq meets or exceeds the return value. + * + * This function may busy loop if the readers are roughly 1 billion + * sequence numbers behind the writers. + * + * Lazy SMRs will not busy loop and the wrap happens every 49.6 days + * at 1khz and 119 hours at 10khz. Readers can block for no longer + * than half of this for SMR_SEQ_ macros to continue working. + */ smr_seq_t -smr_advance_deferred(smr_t smr, int limit) +smr_advance(smr_t smr) { + smr_t self; + smr_shared_t s; smr_seq_t goal; - smr_t csmr; + int flags; + /* + * It is illegal to enter while in an smr section. + */ SMR_ASSERT_NOT_ENTERED(smr); + /* + * Modifications not done in a smr section need to be visible + * before advancing the seq. + */ + atomic_thread_fence_rel(); + critical_enter(); - csmr = zpcpu_get(smr); - if (++csmr->c_deferred >= limit) { - goal = SMR_SEQ_INVALID; - csmr->c_deferred = 0; - } else - goal = smr_shared_current(csmr->c_shared) + SMR_SEQ_INCR; + /* Try to touch the line once. */ + self = zpcpu_get(smr); + s = self->c_shared; + flags = self->c_flags; + goal = SMR_SEQ_INVALID; + if ((flags & (SMR_LAZY | SMR_DEFERRED)) == 0) + goal = smr_default_advance(smr, s); + else if ((flags & SMR_LAZY) != 0) + goal = smr_lazy_advance(smr, s); + else if ((flags & SMR_DEFERRED) != 0) + goal = smr_deferred_advance(smr, s, self); critical_exit(); - if (goal != SMR_SEQ_INVALID) - return (goal); - return (smr_advance(smr)); + return (goal); } /* + * Poll to determine the currently observed sequence number on a cpu + * and spinwait if the 'wait' argument is true. + */ +static smr_seq_t +smr_poll_cpu(smr_t c, smr_seq_t s_rd_seq, smr_seq_t goal, bool wait) +{ + smr_seq_t c_seq; + + c_seq = SMR_SEQ_INVALID; + for (;;) { + c_seq = atomic_load_int(&c->c_seq); + if (c_seq == SMR_SEQ_INVALID) + break; + + /* + * There is a race described in smr.h:smr_enter that + * can lead to a stale seq value but not stale data + * access. If we find a value out of range here we + * pin it to the current min to prevent it from + * advancing until that stale section has expired. + * + * The race is created when a cpu loads the s_wr_seq + * value in a local register and then another thread + * advances s_wr_seq and calls smr_poll() which will + * oberve no value yet in c_seq and advance s_rd_seq + * up to s_wr_seq which is beyond the register + * cached value. This is only likely to happen on + * hypervisor or with a system management interrupt. + */ + if (SMR_SEQ_LT(c_seq, s_rd_seq)) + c_seq = s_rd_seq; + + /* + * If the sequence number meets the goal we are done + * with this cpu. + */ + if (SMR_SEQ_LEQ(goal, c_seq)) + break; + + if (!wait) + break; + cpu_spinwait(); + } + + return (c_seq); +} + +/* + * Loop until all cores have observed the goal sequence or have + * gone inactive. Returns the oldest sequence currently active; + * + * This function assumes a snapshot of sequence values has + * been obtained and validated by smr_poll(). + */ +static smr_seq_t +smr_poll_scan(smr_t smr, smr_shared_t s, smr_seq_t s_rd_seq, + smr_seq_t s_wr_seq, smr_seq_t goal, bool wait) +{ + smr_seq_t rd_seq, c_seq; + int i; + + CRITICAL_ASSERT(curthread); + counter_u64_add_protected(poll_scan, 1); + + /* + * The read sequence can be no larger than the write sequence at + * the start of the poll. + */ + rd_seq = s_wr_seq; + CPU_FOREACH(i) { + /* + * Query the active sequence on this cpu. If we're not + * waiting and we don't meet the goal we will still scan + * the rest of the cpus to update s_rd_seq before returning + * failure. + */ + c_seq = smr_poll_cpu(zpcpu_get_cpu(smr, i), s_rd_seq, goal, + wait); + + /* + * Limit the minimum observed rd_seq whether we met the goal + * or not. + */ + if (c_seq != SMR_SEQ_INVALID) + rd_seq = SMR_SEQ_MIN(rd_seq, c_seq); + } + + /* + * Advance the rd_seq as long as we observed a more recent value. + */ + s_rd_seq = atomic_load_int(&s->s_rd_seq); + if (SMR_SEQ_GEQ(rd_seq, s_rd_seq)) { + atomic_cmpset_int(&s->s_rd_seq, s_rd_seq, rd_seq); + s_rd_seq = rd_seq; + } + + return (s_rd_seq); +} + +/* * Poll to determine whether all readers have observed the 'goal' write * sequence number. * @@ -268,9 +501,10 @@ bool smr_poll(smr_t smr, smr_seq_t goal, bool wait) { smr_shared_t s; - smr_t c; - smr_seq_t s_wr_seq, s_rd_seq, rd_seq, c_seq; - int i; + smr_t self; + smr_seq_t s_wr_seq, s_rd_seq; + smr_delta_t delta; + int flags; bool success; /* @@ -278,6 +512,8 @@ smr_poll(smr_t smr, smr_seq_t goal, bool wait) */ KASSERT(!wait || !SMR_ENTERED(smr), ("smr_poll: Blocking not allowed in a SMR section.")); + KASSERT(!wait || (zpcpu_get(smr)->c_flags & SMR_LAZY) == 0, + ("smr_poll: Blocking not allowed on lazy smrs.")); /* * Use a critical section so that we can avoid ABA races @@ -285,116 +521,79 @@ smr_poll(smr_t smr, smr_seq_t goal, bool wait) */ success = true; critical_enter(); - s = zpcpu_get(smr)->c_shared; + /* Attempt to load from self only once. */ + self = zpcpu_get(smr); + s = self->c_shared; + flags = self->c_flags; counter_u64_add_protected(poll, 1); /* + * Conditionally advance the lazy write clock on any writer + * activity. This may reset s_rd_seq. + */ + if ((flags & SMR_LAZY) != 0) + smr_lazy_advance(smr, s); + + /* * Acquire barrier loads s_wr_seq after s_rd_seq so that we can not * observe an updated read sequence that is larger than write. */ s_rd_seq = atomic_load_acq_int(&s->s_rd_seq); /* - * wr_seq must be loaded prior to any c_seq value so that a stale - * c_seq can only reference time after this wr_seq. + * If we have already observed the sequence number we can immediately + * return success. Most polls should meet this criterion. */ + if (SMR_SEQ_LEQ(goal, s_rd_seq)) + goto out; + + /* + * wr_seq must be loaded prior to any c_seq value so that a + * stale c_seq can only reference time after this wr_seq. + */ s_wr_seq = atomic_load_acq_int(&s->s_wr_seq); /* - * This may have come from a deferred advance. Consider one - * increment past the current wr_seq valid and make sure we - * have advanced far enough to succeed. We simply add to avoid - * an additional fence. + * This is the distance from s_wr_seq to goal. Positive values + * are in the future. */ - if (goal == s_wr_seq + SMR_SEQ_INCR) { - atomic_add_int(&s->s_wr_seq, SMR_SEQ_INCR); - s_wr_seq = goal; + delta = SMR_SEQ_DELTA(goal, s_wr_seq); + + /* + * Detect a stale wr_seq. + * + * This goal may have come from a deferred advance or a lazy + * smr. If we are not blocking we can not succeed but the + * sequence number is valid. + */ + if (delta > 0 && delta <= SMR_SEQ_MAX_ADVANCE && + (flags & (SMR_LAZY | SMR_DEFERRED)) != 0) { + if (!wait) { + success = false; + goto out; + } + /* LAZY is always !wait. */ + s_wr_seq = smr_shared_advance(s); + delta = 0; } /* - * Detect whether the goal is valid and has already been observed. + * Detect an invalid goal. * * The goal must be in the range of s_wr_seq >= goal >= s_rd_seq for * it to be valid. If it is not then the caller held on to it and * the integer wrapped. If we wrapped back within range the caller * will harmlessly scan. - * - * A valid goal must be greater than s_rd_seq or we have not verified - * that it has been observed and must fall through to polling. */ - if (SMR_SEQ_GEQ(s_rd_seq, goal) || SMR_SEQ_LT(s_wr_seq, goal)) + if (delta > 0) goto out; - /* - * Loop until all cores have observed the goal sequence or have - * gone inactive. Keep track of the oldest sequence currently - * active as rd_seq. - */ - counter_u64_add_protected(poll_scan, 1); - rd_seq = s_wr_seq; - CPU_FOREACH(i) { - c = zpcpu_get_cpu(smr, i); - c_seq = SMR_SEQ_INVALID; - for (;;) { - c_seq = atomic_load_int(&c->c_seq); - if (c_seq == SMR_SEQ_INVALID) - break; - - /* - * There is a race described in smr.h:smr_enter that - * can lead to a stale seq value but not stale data - * access. If we find a value out of range here we - * pin it to the current min to prevent it from - * advancing until that stale section has expired. - * - * The race is created when a cpu loads the s_wr_seq - * value in a local register and then another thread - * advances s_wr_seq and calls smr_poll() which will - * oberve no value yet in c_seq and advance s_rd_seq - * up to s_wr_seq which is beyond the register - * cached value. This is only likely to happen on - * hypervisor or with a system management interrupt. - */ - if (SMR_SEQ_LT(c_seq, s_rd_seq)) - c_seq = s_rd_seq; - - /* - * If the sequence number meets the goal we are - * done with this cpu. - */ - if (SMR_SEQ_GEQ(c_seq, goal)) - break; - - /* - * If we're not waiting we will still scan the rest - * of the cpus and update s_rd_seq before returning - * an error. - */ - if (!wait) { - success = false; - break; - } - cpu_spinwait(); - } - - /* - * Limit the minimum observed rd_seq whether we met the goal - * or not. - */ - if (c_seq != SMR_SEQ_INVALID && SMR_SEQ_GT(rd_seq, c_seq)) - rd_seq = c_seq; - } - - /* - * Advance the rd_seq as long as we observed the most recent one. - */ - s_rd_seq = atomic_load_int(&s->s_rd_seq); - do { - if (SMR_SEQ_LEQ(rd_seq, s_rd_seq)) - goto out; - } while (atomic_fcmpset_int(&s->s_rd_seq, &s_rd_seq, rd_seq) == 0); - + /* Determine the lowest visible sequence number. */ + s_rd_seq = smr_poll_scan(smr, s, s_rd_seq, s_wr_seq, goal, wait); + success = SMR_SEQ_LEQ(goal, s_rd_seq); out: + if (!success) + counter_u64_add_protected(poll_fail, 1); critical_exit(); /* @@ -407,7 +606,7 @@ out: } smr_t -smr_create(const char *name) +smr_create(const char *name, int limit, int flags) { smr_t smr, c; smr_shared_t s; @@ -417,13 +616,19 @@ smr_create(const char *name) smr = uma_zalloc_pcpu(smr_zone, M_WAITOK); s->s_name = name; - s->s_rd_seq = s->s_wr_seq = SMR_SEQ_INIT; + if ((flags & SMR_LAZY) == 0) + s->s_rd_seq = s->s_wr_seq = SMR_SEQ_INIT; + else + s->s_rd_seq = s->s_wr_seq = ticks; /* Initialize all CPUS, not just those running. */ for (i = 0; i <= mp_maxid; i++) { c = zpcpu_get_cpu(smr, i); c->c_seq = SMR_SEQ_INVALID; c->c_shared = s; + c->c_deferred = 0; + c->c_limit = limit; + c->c_flags = flags; } atomic_thread_fence_seq_cst(); @@ -460,5 +665,6 @@ smr_init_counters(void *unused) advance_wait = counter_u64_alloc(M_WAITOK); poll = counter_u64_alloc(M_WAITOK); poll_scan = counter_u64_alloc(M_WAITOK); + poll_fail = counter_u64_alloc(M_WAITOK); } SYSINIT(smr_counters, SI_SUB_CPU, SI_ORDER_ANY, smr_init_counters, NULL); Modified: head/sys/sys/_smr.h ============================================================================== --- head/sys/sys/_smr.h Sat Feb 22 03:14:05 2020 (r358235) +++ head/sys/sys/_smr.h Sat Feb 22 03:44:10 2020 (r358236) @@ -32,6 +32,7 @@ #define _SYS__SMR_H_ typedef uint32_t smr_seq_t; +typedef int32_t smr_delta_t; typedef struct smr *smr_t; #endif /* __SYS_SMR_H_ */ Modified: head/sys/sys/smr.h ============================================================================== --- head/sys/sys/smr.h Sat Feb 22 03:14:05 2020 (r358235) +++ head/sys/sys/smr.h Sat Feb 22 03:44:10 2020 (r358236) @@ -45,11 +45,13 @@ * Modular arithmetic for comparing sequence numbers that have * potentially wrapped. Copied from tcp_seq.h. */ -#define SMR_SEQ_LT(a, b) ((int32_t)((a)-(b)) < 0) -#define SMR_SEQ_LEQ(a, b) ((int32_t)((a)-(b)) <= 0) -#define SMR_SEQ_GT(a, b) ((int32_t)((a)-(b)) > 0) -#define SMR_SEQ_GEQ(a, b) ((int32_t)((a)-(b)) >= 0) -#define SMR_SEQ_DELTA(a, b) ((int32_t)((a)-(b))) +#define SMR_SEQ_LT(a, b) ((smr_delta_t)((a)-(b)) < 0) +#define SMR_SEQ_LEQ(a, b) ((smr_delta_t)((a)-(b)) <= 0) +#define SMR_SEQ_GT(a, b) ((smr_delta_t)((a)-(b)) > 0) +#define SMR_SEQ_GEQ(a, b) ((smr_delta_t)((a)-(b)) >= 0) +#define SMR_SEQ_DELTA(a, b) ((smr_delta_t)((a)-(b))) +#define SMR_SEQ_MIN(a, b) (SMR_SEQ_LT((a), (b)) ? (a) : (b)) +#define SMR_SEQ_MAX(a, b) (SMR_SEQ_GT((a), (b)) ? (a) : (b)) #define SMR_SEQ_INVALID 0 @@ -66,8 +68,13 @@ struct smr { smr_seq_t c_seq; /* Current observed sequence. */ smr_shared_t c_shared; /* Shared SMR state. */ int c_deferred; /* Deferred advance counter. */ + int c_limit; /* Deferred advance limit. */ + int c_flags; /* SMR Configuration */ }; +#define SMR_LAZY 0x0001 /* Higher latency write, fast read. */ +#define SMR_DEFERRED 0x0002 /* Aggregate updates to wr_seq. */ + #define SMR_ENTERED(smr) \ (curthread->td_critnest != 0 && zpcpu_get((smr))->c_seq != SMR_SEQ_INVALID) @@ -94,7 +101,7 @@ struct smr { * All acceses include a parameter for an assert to verify the required * synchronization. For example, a writer might use: * - * smr_serilized_store(pointer, value, mtx_owned(&writelock)); + * smr_serialized_store(pointer, value, mtx_owned(&writelock)); * * These are only enabled in INVARIANTS kernels. */ @@ -127,6 +134,9 @@ typedef struct { \ * Store 'v' to an SMR protected pointer while serialized by an * external mechanism. 'ex' should contain an assert that the * external mechanism is held. i.e. mtx_owned() + * + * Writers that are serialized with mutual exclusion or on a single + * thread should use smr_serialized_store() rather than swap. */ #define smr_serialized_store(p, v, ex) do { \ SMR_ASSERT(ex, "smr_serialized_store"); \ @@ -138,6 +148,8 @@ typedef struct { \ * swap 'v' with an SMR protected pointer and return the old value * while serialized by an external mechanism. 'ex' should contain * an assert that the external mechanism is provided. i.e. mtx_owned() + * + * Swap permits multiple writers to update a pointer concurrently. */ #define smr_serialized_swap(p, v, ex) ({ \ SMR_ASSERT(ex, "smr_serialized_swap"); \ @@ -170,7 +182,8 @@ typedef struct { \ } while (0) /* - * Return the current write sequence number. + * Return the current write sequence number. This is not the same as the + * current goal which may be in the future. */ static inline smr_seq_t smr_shared_current(smr_shared_t s) @@ -195,6 +208,8 @@ smr_enter(smr_t smr) critical_enter(); smr = zpcpu_get(smr); + KASSERT((smr->c_flags & SMR_LAZY) == 0, + ("smr_enter(%s) lazy smr.", smr->c_shared->s_name)); KASSERT(smr->c_seq == 0, ("smr_enter(%s) does not support recursion.", smr->c_shared->s_name)); @@ -228,6 +243,8 @@ smr_exit(smr_t smr) smr = zpcpu_get(smr); CRITICAL_ASSERT(curthread); + KASSERT((smr->c_flags & SMR_LAZY) == 0, + ("smr_exit(%s) lazy smr.", smr->c_shared->s_name)); KASSERT(smr->c_seq != SMR_SEQ_INVALID, ("smr_exit(%s) not in a smr section.", smr->c_shared->s_name)); @@ -243,26 +260,72 @@ smr_exit(smr_t smr) } /* - * Advances the write sequence number. Returns the sequence number - * required to ensure that all modifications are visible to readers. + * Enter a lazy smr section. This is used for read-mostly state that + * can tolerate a high free latency. */ -smr_seq_t smr_advance(smr_t smr); +static inline void +smr_lazy_enter(smr_t smr) +{ + critical_enter(); + smr = zpcpu_get(smr); + KASSERT((smr->c_flags & SMR_LAZY) != 0, + ("smr_lazy_enter(%s) non-lazy smr.", smr->c_shared->s_name)); + KASSERT(smr->c_seq == 0, + ("smr_lazy_enter(%s) does not support recursion.", + smr->c_shared->s_name)); + + /* + * This needs no serialization. If an interrupt occurs before we + * assign sr_seq to c_seq any speculative loads will be discarded. + * If we assign a stale wr_seq value due to interrupt we use the + * same algorithm that renders smr_enter() safe. + */ + smr->c_seq = smr_shared_current(smr->c_shared); +} + /* - * Advances the write sequence number only after N calls. Returns - * the correct goal for a wr_seq that has not yet occurred. Used to - * minimize shared cacheline invalidations for frequent writers. + * Exit a lazy smr section. This is used for read-mostly state that + * can tolerate a high free latency. */ -smr_seq_t smr_advance_deferred(smr_t smr, int limit); +static inline void +smr_lazy_exit(smr_t smr) +{ + smr = zpcpu_get(smr); + CRITICAL_ASSERT(curthread); + KASSERT((smr->c_flags & SMR_LAZY) != 0, + ("smr_lazy_enter(%s) non-lazy smr.", smr->c_shared->s_name)); + KASSERT(smr->c_seq != SMR_SEQ_INVALID, + ("smr_lazy_exit(%s) not in a smr section.", smr->c_shared->s_name)); + + /* + * All loads/stores must be retired before the sequence becomes + * visible. The fence compiles away on amd64. Another + * alternative would be to omit the fence but store the exit + * time and wait 1 tick longer. + */ + atomic_thread_fence_rel(); + smr->c_seq = SMR_SEQ_INVALID; + critical_exit(); +} + /* + * Advances the write sequence number. Returns the sequence number + * required to ensure that all modifications are visible to readers. + */ +smr_seq_t smr_advance(smr_t smr); + +/* * Returns true if a goal sequence has been reached. If * wait is true this will busy loop until success. */ bool smr_poll(smr_t smr, smr_seq_t goal, bool wait); /* Create a new SMR context. */ -smr_t smr_create(const char *name); +smr_t smr_create(const char *name, int limit, int flags); + +/* Destroy the context. */ void smr_destroy(smr_t smr); /* Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Sat Feb 22 03:14:05 2020 (r358235) +++ head/sys/vm/uma_core.c Sat Feb 22 03:44:10 2020 (r358236) @@ -1140,7 +1140,6 @@ hash_free(struct uma_hash *hash) * Returns: * Nothing */ - static void bucket_drain(uma_zone_t zone, uma_bucket_t bucket) { @@ -1200,7 +1199,7 @@ cache_drain(uma_zone_t zone) */ seq = SMR_SEQ_INVALID; if ((zone->uz_flags & UMA_ZONE_SMR) != 0) - seq = smr_current(zone->uz_smr); + seq = smr_advance(zone->uz_smr); CPU_FOREACH(cpu) { cache = &zone->uz_cpu[cpu]; bucket = cache_bucket_unload_alloc(cache); @@ -1329,7 +1328,7 @@ bucket_cache_reclaim(uma_zone_t zone, bool drain) * the item count. Reclaim it individually here. */ zdom = ZDOM_GET(zone, i); - if ((zone->uz_flags & UMA_ZONE_SMR) == 0) { + if ((zone->uz_flags & UMA_ZONE_SMR) == 0 || drain) { ZONE_CROSS_LOCK(zone); bucket = zdom->uzd_cross; zdom->uzd_cross = NULL; @@ -2679,7 +2678,7 @@ out: /* Caller requests a private SMR context. */ if ((zone->uz_flags & UMA_ZONE_SMR) != 0) - zone->uz_smr = smr_create(zone->uz_name); + zone->uz_smr = smr_create(zone->uz_name, 0, 0); KASSERT((arg->flags & (UMA_ZONE_MAXBUCKET | UMA_ZONE_NOBUCKET)) != (UMA_ZONE_MAXBUCKET | UMA_ZONE_NOBUCKET), @@ -4137,22 +4136,21 @@ zone_free_cross(uma_zone_t zone, uma_bucket_t bucket, "uma_zfree: zone %s(%p) draining cross bucket %p", zone->uz_name, zone, bucket); - STAILQ_INIT(&fullbuckets); + /* + * It is possible for buckets to arrive here out of order so we fetch + * the current smr seq rather than accepting the bucket's. + */ + seq = SMR_SEQ_INVALID; + if ((zone->uz_flags & UMA_ZONE_SMR) != 0) + seq = smr_advance(zone->uz_smr); /* * To avoid having ndomain * ndomain buckets for sorting we have a * lock on the current crossfree bucket. A full matrix with * per-domain locking could be used if necessary. */ + STAILQ_INIT(&fullbuckets); ZONE_CROSS_LOCK(zone); - - /* - * It is possible for buckets to arrive here out of order so we fetch - * the current smr seq rather than accepting the bucket's. - */ - seq = SMR_SEQ_INVALID; - if ((zone->uz_flags & UMA_ZONE_SMR) != 0) - seq = smr_current(zone->uz_smr); while (bucket->ub_cnt > 0) { item = bucket->ub_bucket[bucket->ub_cnt - 1]; domain = _vm_phys_domain(pmap_kextract((vm_offset_t)item)); From owner-svn-src-all@freebsd.org Sat Feb 22 04:02:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 491A424EE1B; Sat, 22 Feb 2020 04:02:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PZQm1Hvqz4fTY; Sat, 22 Feb 2020 04:02:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 27C2D1D9CC; Sat, 22 Feb 2020 04:02:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01M428Hq025152; Sat, 22 Feb 2020 04:02:08 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01M42807025151; Sat, 22 Feb 2020 04:02:08 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002220402.01M42807025151@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 22 Feb 2020 04:02:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358237 - head/tools/bsdbox X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/tools/bsdbox X-SVN-Commit-Revision: 358237 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 04:02:08 -0000 Author: kevans Date: Sat Feb 22 04:02:07 2020 New Revision: 358237 URL: https://svnweb.freebsd.org/changeset/base/358237 Log: bsdbox: fix build We've grown to also require libthr and libprivatestd to be explicitly linked in here, so do this now to fix freebsd-wifi-build. Submitted by: Pavel Timofeev Modified: head/tools/bsdbox/Makefile.base Modified: head/tools/bsdbox/Makefile.base ============================================================================== --- head/tools/bsdbox/Makefile.base Sat Feb 22 03:44:10 2020 (r358236) +++ head/tools/bsdbox/Makefile.base Sat Feb 22 04:02:07 2020 (r358237) @@ -20,6 +20,7 @@ CRUNCH_LIBS+= -ldevstat -lncursesw -lncurses -lmemsta CRUNCH_PROGS_usr.bin+= cpio # XXX SSL ? CRUNCH_LIBS+= -larchive -lbz2 -lz -llzma -lbsdxml -lssl -lcrypto +CRUNCH_LIBS+= -lprivatezstd -lthr # Clear requires tput, and it's a shell script so it won't be crunched CRUNCH_PROGS_usr.bin+= tput From owner-svn-src-all@freebsd.org Sat Feb 22 04:49:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A926624FE89; Sat, 22 Feb 2020 04:49:33 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PbTT3mbjz4fDk; Sat, 22 Feb 2020 04:49:33 +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 742DA1E1F4; Sat, 22 Feb 2020 04:49:33 +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 01M4nXcu050766; Sat, 22 Feb 2020 04:49:33 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01M4nXc5050764; Sat, 22 Feb 2020 04:49:33 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202002220449.01M4nXc5050764@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 22 Feb 2020 04:49:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358238 - stable/12/sys/cam/ctl X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/cam/ctl X-SVN-Commit-Revision: 358238 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 04:49:33 -0000 Author: mav Date: Sat Feb 22 04:49:32 2020 New Revision: 358238 URL: https://svnweb.freebsd.org/changeset/base/358238 Log: MFC r357685: Bind CTL backends taskqueues to the CTL process. Modified: stable/12/sys/cam/ctl/ctl_backend_block.c stable/12/sys/cam/ctl/ctl_backend_ramdisk.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cam/ctl/ctl_backend_block.c ============================================================================== --- stable/12/sys/cam/ctl/ctl_backend_block.c Sat Feb 22 04:02:07 2020 (r358237) +++ stable/12/sys/cam/ctl/ctl_backend_block.c Sat Feb 22 04:49:32 2020 (r358238) @@ -2379,9 +2379,10 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, * device, he can specify that when the LUN is created, or change * the tunable/sysctl to alter the default number of threads. */ - retval = taskqueue_start_threads(&be_lun->io_taskqueue, + retval = taskqueue_start_threads_in_proc(&be_lun->io_taskqueue, /*num threads*/num_threads, /*priority*/PUSER, + /*proc*/control_softc->ctl_proc, /*thread name*/ "%s taskq", be_lun->lunname); Modified: stable/12/sys/cam/ctl/ctl_backend_ramdisk.c ============================================================================== --- stable/12/sys/cam/ctl/ctl_backend_ramdisk.c Sat Feb 22 04:02:07 2020 (r358237) +++ stable/12/sys/cam/ctl/ctl_backend_ramdisk.c Sat Feb 22 04:49:32 2020 (r358238) @@ -1147,9 +1147,10 @@ ctl_backend_ramdisk_create(struct ctl_be_ramdisk_softc goto bailout_error; } - retval = taskqueue_start_threads(&be_lun->io_taskqueue, + retval = taskqueue_start_threads_in_proc(&be_lun->io_taskqueue, /*num threads*/1, /*priority*/PUSER, + /*proc*/control_softc->ctl_proc, /*thread name*/ "%s taskq", be_lun->lunname); if (retval != 0) From owner-svn-src-all@freebsd.org Sat Feb 22 10:48:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 03024257CEE; Sat, 22 Feb 2020 10:48:43 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PlRt4Qdfz3ybR; Sat, 22 Feb 2020 10:48:42 +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 819B92247C; Sat, 22 Feb 2020 10:48:42 +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 01MAmgLa065861; Sat, 22 Feb 2020 10:48:42 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MAmgEk065860; Sat, 22 Feb 2020 10:48:42 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002221048.01MAmgEk065860@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 22 Feb 2020 10:48:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358240 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 358240 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 10:48:43 -0000 Author: kib Date: Sat Feb 22 10:48:42 2020 New Revision: 358240 URL: https://svnweb.freebsd.org/changeset/base/358240 Log: MFC r357982: Use designated initializers for seminfo. Modified: stable/12/sys/kern/sysv_sem.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/sysv_sem.c ============================================================================== --- stable/12/sys/kern/sysv_sem.c Sat Feb 22 09:58:11 2020 (r358239) +++ stable/12/sys/kern/sysv_sem.c Sat Feb 22 10:48:42 2020 (r358240) @@ -198,15 +198,15 @@ struct sem_undo { * semaphore info struct */ struct seminfo seminfo = { - SEMMNI, /* # of semaphore identifiers */ - SEMMNS, /* # of semaphores in system */ - SEMMNU, /* # of undo structures in system */ - SEMMSL, /* max # of semaphores per id */ - SEMOPM, /* max # of operations per semop call */ - SEMUME, /* max # of undo entries per process */ - SEMUSZ, /* size in bytes of undo structure */ - SEMVMX, /* semaphore maximum value */ - SEMAEM /* adjust on exit max value */ + .semmni = SEMMNI, /* # of semaphore identifiers */ + .semmns = SEMMNS, /* # of semaphores in system */ + .semmnu = SEMMNU, /* # of undo structures in system */ + .semmsl = SEMMSL, /* max # of semaphores per id */ + .semopm = SEMOPM, /* max # of operations per semop call */ + .semume = SEMUME, /* max # of undo entries per process */ + .semusz = SEMUSZ, /* size in bytes of undo structure */ + .semvmx = SEMVMX, /* semaphore maximum value */ + .semaem = SEMAEM, /* adjust on exit max value */ }; SYSCTL_INT(_kern_ipc, OID_AUTO, semmni, CTLFLAG_RDTUN, &seminfo.semmni, 0, From owner-svn-src-all@freebsd.org Sat Feb 22 10:54:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4B3CC23807F; Sat, 22 Feb 2020 10:54:12 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PlZD0h06z49fj; Sat, 22 Feb 2020 10:54:12 +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 DD70E2265C; Sat, 22 Feb 2020 10:54:11 +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 01MAsBE5071700; Sat, 22 Feb 2020 10:54:11 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MAsBvs071699; Sat, 22 Feb 2020 10:54:11 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002221054.01MAsBvs071699@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 22 Feb 2020 10:54:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358241 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 358241 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 10:54:12 -0000 Author: kib Date: Sat Feb 22 10:54:11 2020 New Revision: 358241 URL: https://svnweb.freebsd.org/changeset/base/358241 Log: MFC r357983: sem_remove(): add some asserts. Modified: stable/12/sys/kern/sysv_sem.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/sysv_sem.c ============================================================================== --- stable/12/sys/kern/sysv_sem.c Sat Feb 22 10:48:42 2020 (r358240) +++ stable/12/sys/kern/sysv_sem.c Sat Feb 22 10:54:11 2020 (r358241) @@ -558,8 +558,14 @@ sem_remove(int semidx, struct ucred *cred) int i; KASSERT(semidx >= 0 && semidx < seminfo.semmni, - ("semidx out of bounds")); + ("semidx out of bounds")); + mtx_assert(&sem_mtx, MA_OWNED); semakptr = &sema[semidx]; + KASSERT(semakptr->u.__sem_base - sem + semakptr->u.sem_nsems <= semtot, + ("sem_remove: sema %d corrupted sem pointer %p %p %d %d", + semidx, semakptr->u.__sem_base, sem, semakptr->u.sem_nsems, + semtot)); + semakptr->u.sem_perm.cuid = cred ? cred->cr_uid : 0; semakptr->u.sem_perm.uid = cred ? cred->cr_uid : 0; semakptr->u.sem_perm.mode = 0; From owner-svn-src-all@freebsd.org Sat Feb 22 10:55:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7A1B723814A; Sat, 22 Feb 2020 10:55:50 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Plc62hCVz4DtN; Sat, 22 Feb 2020 10:55: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 5722D2265E; Sat, 22 Feb 2020 10:55: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 01MAtoBh071860; Sat, 22 Feb 2020 10:55:50 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MAtoI4071859; Sat, 22 Feb 2020 10:55:50 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002221055.01MAtoI4071859@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 22 Feb 2020 10:55:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358242 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 358242 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 10:55:50 -0000 Author: kib Date: Sat Feb 22 10:55:49 2020 New Revision: 358242 URL: https://svnweb.freebsd.org/changeset/base/358242 Log: MFC r357984: sem_remove(): fix the loop that compacts sem array on semaphores removal. Modified: stable/12/sys/kern/sysv_sem.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/sysv_sem.c ============================================================================== --- stable/12/sys/kern/sysv_sem.c Sat Feb 22 10:54:11 2020 (r358241) +++ stable/12/sys/kern/sysv_sem.c Sat Feb 22 10:55:49 2020 (r358242) @@ -584,8 +584,9 @@ sem_remove(int semidx, struct ucred *cred) sema[i].u.__sem_base > semakptr->u.__sem_base) mtx_lock_flags(&sema_mtx[i], LOP_DUPOK); } - for (i = semakptr->u.__sem_base - sem; i < semtot; i++) - sem[i] = sem[i + semakptr->u.sem_nsems]; + for (i = semakptr->u.__sem_base - sem + semakptr->u.sem_nsems; + i < semtot; i++) + sem[i - semakptr->u.sem_nsems] = sem[i]; for (i = 0; i < seminfo.semmni; i++) { if ((sema[i].u.sem_perm.mode & SEM_ALLOC) && sema[i].u.__sem_base > semakptr->u.__sem_base) { From owner-svn-src-all@freebsd.org Sat Feb 22 11:04:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 425332384E3; Sat, 22 Feb 2020 11:04: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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Plp06t2Yz4PkX; Sat, 22 Feb 2020 11:04:24 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A14A12282A; Sat, 22 Feb 2020 11:04:24 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01MB4OhM077694; Sat, 22 Feb 2020 11:04:24 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MB4OU9077693; Sat, 22 Feb 2020 11:04:24 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002221104.01MB4OU9077693@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 22 Feb 2020 11:04:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358243 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 358243 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 11:04:25 -0000 Author: kib Date: Sat Feb 22 11:04:24 2020 New Revision: 358243 URL: https://svnweb.freebsd.org/changeset/base/358243 Log: MFC r357982: Use designated initializers for seminfo. Modified: stable/11/sys/kern/sysv_sem.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/sysv_sem.c ============================================================================== --- stable/11/sys/kern/sysv_sem.c Sat Feb 22 10:55:49 2020 (r358242) +++ stable/11/sys/kern/sysv_sem.c Sat Feb 22 11:04:24 2020 (r358243) @@ -190,15 +190,15 @@ struct sem_undo { * semaphore info struct */ struct seminfo seminfo = { - SEMMNI, /* # of semaphore identifiers */ - SEMMNS, /* # of semaphores in system */ - SEMMNU, /* # of undo structures in system */ - SEMMSL, /* max # of semaphores per id */ - SEMOPM, /* max # of operations per semop call */ - SEMUME, /* max # of undo entries per process */ - SEMUSZ, /* size in bytes of undo structure */ - SEMVMX, /* semaphore maximum value */ - SEMAEM /* adjust on exit max value */ + .semmni = SEMMNI, /* # of semaphore identifiers */ + .semmns = SEMMNS, /* # of semaphores in system */ + .semmnu = SEMMNU, /* # of undo structures in system */ + .semmsl = SEMMSL, /* max # of semaphores per id */ + .semopm = SEMOPM, /* max # of operations per semop call */ + .semume = SEMUME, /* max # of undo entries per process */ + .semusz = SEMUSZ, /* size in bytes of undo structure */ + .semvmx = SEMVMX, /* semaphore maximum value */ + .semaem = SEMAEM, /* adjust on exit max value */ }; SYSCTL_INT(_kern_ipc, OID_AUTO, semmni, CTLFLAG_RDTUN, &seminfo.semmni, 0, From owner-svn-src-all@freebsd.org Sat Feb 22 11:05:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 229CA2385A5; Sat, 22 Feb 2020 11:05:28 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PlqC6WzNz4QFG; Sat, 22 Feb 2020 11:05:27 +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 DACA32282C; Sat, 22 Feb 2020 11:05:27 +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 01MB5RF5077809; Sat, 22 Feb 2020 11:05:27 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MB5Rp3077808; Sat, 22 Feb 2020 11:05:27 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002221105.01MB5Rp3077808@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 22 Feb 2020 11:05:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358244 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 358244 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 11:05:28 -0000 Author: kib Date: Sat Feb 22 11:05:27 2020 New Revision: 358244 URL: https://svnweb.freebsd.org/changeset/base/358244 Log: MFC r357983: sem_remove(): add some asserts. Modified: stable/11/sys/kern/sysv_sem.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/sysv_sem.c ============================================================================== --- stable/11/sys/kern/sysv_sem.c Sat Feb 22 11:04:24 2020 (r358243) +++ stable/11/sys/kern/sysv_sem.c Sat Feb 22 11:05:27 2020 (r358244) @@ -550,8 +550,14 @@ sem_remove(int semidx, struct ucred *cred) int i; KASSERT(semidx >= 0 && semidx < seminfo.semmni, - ("semidx out of bounds")); + ("semidx out of bounds")); + mtx_assert(&sem_mtx, MA_OWNED); semakptr = &sema[semidx]; + KASSERT(semakptr->u.__sem_base - sem + semakptr->u.sem_nsems <= semtot, + ("sem_remove: sema %d corrupted sem pointer %p %p %d %d", + semidx, semakptr->u.__sem_base, sem, semakptr->u.sem_nsems, + semtot)); + semakptr->u.sem_perm.cuid = cred ? cred->cr_uid : 0; semakptr->u.sem_perm.uid = cred ? cred->cr_uid : 0; semakptr->u.sem_perm.mode = 0; From owner-svn-src-all@freebsd.org Sat Feb 22 11:08:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BE88B238706; Sat, 22 Feb 2020 11:08:02 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PltB14DSz4VH0; Sat, 22 Feb 2020 11:08:02 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 183EF22831; Sat, 22 Feb 2020 11:08:02 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01MB817B077982; Sat, 22 Feb 2020 11:08:01 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MB81cs077981; Sat, 22 Feb 2020 11:08:01 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002221108.01MB81cs077981@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 22 Feb 2020 11:08:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358245 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 358245 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 11:08:02 -0000 Author: kib Date: Sat Feb 22 11:08:01 2020 New Revision: 358245 URL: https://svnweb.freebsd.org/changeset/base/358245 Log: MFC r357984: sem_remove(): fix the loop that compacts sem array on semaphores removal. Modified: stable/11/sys/kern/sysv_sem.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/sysv_sem.c ============================================================================== --- stable/11/sys/kern/sysv_sem.c Sat Feb 22 11:05:27 2020 (r358244) +++ stable/11/sys/kern/sysv_sem.c Sat Feb 22 11:08:01 2020 (r358245) @@ -576,8 +576,9 @@ sem_remove(int semidx, struct ucred *cred) sema[i].u.sem_base > semakptr->u.sem_base) mtx_lock_flags(&sema_mtx[i], LOP_DUPOK); } - for (i = semakptr->u.sem_base - sem; i < semtot; i++) - sem[i] = sem[i + semakptr->u.sem_nsems]; + for (i = semakptr->u.sem_base - sem + semakptr->u.sem_nsems; + i < semtot; i++) + sem[i - semakptr->u.sem_nsems] = sem[i]; for (i = 0; i < seminfo.semmni; i++) { if ((sema[i].u.sem_perm.mode & SEM_ALLOC) && sema[i].u.sem_base > semakptr->u.sem_base) { From owner-svn-src-all@freebsd.org Sat Feb 22 12:10:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 85A3E23B3CD; Sat, 22 Feb 2020 12:10:43 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PnGV1DPGz4PHH; Sat, 22 Feb 2020 12:10:42 +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 EA98B23355; Sat, 22 Feb 2020 12:10: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 01MCAfFq014761; Sat, 22 Feb 2020 12:10:41 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MCAfJt014760; Sat, 22 Feb 2020 12:10:41 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002221210.01MCAfJt014760@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 22 Feb 2020 12:10:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358246 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 358246 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 12:10:43 -0000 Author: kib Date: Sat Feb 22 12:10:41 2020 New Revision: 358246 URL: https://svnweb.freebsd.org/changeset/base/358246 Log: Fix build with INVARIANTS turned on. This is a direct commit to stable/11. Modified: stable/11/sys/kern/sysv_sem.c Modified: stable/11/sys/kern/sysv_sem.c ============================================================================== --- stable/11/sys/kern/sysv_sem.c Sat Feb 22 11:08:01 2020 (r358245) +++ stable/11/sys/kern/sysv_sem.c Sat Feb 22 12:10:41 2020 (r358246) @@ -553,9 +553,9 @@ sem_remove(int semidx, struct ucred *cred) ("semidx out of bounds")); mtx_assert(&sem_mtx, MA_OWNED); semakptr = &sema[semidx]; - KASSERT(semakptr->u.__sem_base - sem + semakptr->u.sem_nsems <= semtot, + KASSERT(semakptr->u.sem_base - sem + semakptr->u.sem_nsems <= semtot, ("sem_remove: sema %d corrupted sem pointer %p %p %d %d", - semidx, semakptr->u.__sem_base, sem, semakptr->u.sem_nsems, + semidx, semakptr->u.sem_base, sem, semakptr->u.sem_nsems, semtot)); semakptr->u.sem_perm.cuid = cred ? cred->cr_uid : 0; From owner-svn-src-all@freebsd.org Sat Feb 22 13:23:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DBA4C23D8BC; Sat, 22 Feb 2020 13:23:28 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PptS4wyfz4SPT; Sat, 22 Feb 2020 13:23:28 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C08F24256; Sat, 22 Feb 2020 13:23:28 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01MDNSnf063379; Sat, 22 Feb 2020 13:23:28 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MDNSX9063377; Sat, 22 Feb 2020 13:23:28 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202002221323.01MDNSX9063377@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Sat, 22 Feb 2020 13:23:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358247 - in head/sys: conf riscv/include X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: in head/sys: conf riscv/include X-SVN-Commit-Revision: 358247 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 13:23:29 -0000 Author: kp Date: Sat Feb 22 13:23:27 2020 New Revision: 358247 URL: https://svnweb.freebsd.org/changeset/base/358247 Log: riscv: Set MACHINE_ARCH correctly MACHINE_ARCH sets the hw.machine_arch sysctl in the kernel. In userspace it sets MACHINE_ARCH in bmake, which bsd.cpu.mk uses to configure the target ABI for ports. For riscv64sf builds (i.e. soft-float) that needs to be riscv64sf, but the sysctl didn't reflect that. It is static. Set the define from the riscv makefile so that we correctly reflect our actual build (i.e. riscv64 or riscv64sf), depending on what TARGET_ARCH we were built with. That still doesn't satisfy userspace builds (e.g. bmake), so check if we're building with a software-floating point toolchain there. That check doesn't work in the kernel, because it never uses floating point. Reviewed by: philip (previous version), mhorne Sponsored by: Axiado Differential Revision: https://reviews.freebsd.org/D23741 Modified: head/sys/conf/Makefile.riscv head/sys/riscv/include/param.h Modified: head/sys/conf/Makefile.riscv ============================================================================== --- head/sys/conf/Makefile.riscv Sat Feb 22 12:10:41 2020 (r358246) +++ head/sys/conf/Makefile.riscv Sat Feb 22 13:23:27 2020 (r358247) @@ -46,6 +46,8 @@ SYSTEM_LD= @${LD} -N -m ${LD_EMULATION} -Bdynamic -T $ CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls .endif +CFLAGS += -DMACHINE_ARCH=\"${TARGET_ARCH}\" + # hack because genassym.c includes sys/bus.h which includes these. genassym.o: bus_if.h device_if.h Modified: head/sys/riscv/include/param.h ============================================================================== --- head/sys/riscv/include/param.h Sat Feb 22 12:10:41 2020 (r358246) +++ head/sys/riscv/include/param.h Sat Feb 22 13:23:27 2020 (r358247) @@ -46,7 +46,11 @@ #define MACHINE "riscv" #endif #ifndef MACHINE_ARCH +#ifdef __riscv_float_abi_soft +#define MACHINE_ARCH "riscv64sf" +#else #define MACHINE_ARCH "riscv64" +#endif #endif #ifdef SMP From owner-svn-src-all@freebsd.org Sat Feb 22 14:51:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 27A8924009D for ; Sat, 22 Feb 2020 14:51:24 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qv1-xf36.google.com (mail-qv1-xf36.google.com [IPv6:2607:f8b0:4864:20::f36]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Prqv1J2Xz46pj for ; Sat, 22 Feb 2020 14:51:22 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qv1-xf36.google.com with SMTP id q9so2293562qvu.7 for ; Sat, 22 Feb 2020 06:51:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OlEJyDIQmnGGTbAMLyus5teHHnY0GMfDcFyUEMrNi7A=; b=c7oWNaJYhgPXOHQdMqw5eksOPRDuZPcDQgllxI3Y8BqNy68JVfOBcqtmEj1v/hsqQZ PDBjxxUYv7p6gUq8QuAwr9bdm/Oi4Sg8PlTEuXoGZQy9M3LcWLqjGvfAMn3Or7ru26IM ZSmiKnizwhYt0kfD4Ox4wQtNHzOhDP10COJG3mVmqWv88OcBwucGhLAhNpvIBhyjjJ2N YkV8KmuV+Izrei/WGwuLwGPinkFOTsgYGOmygo3Z0y5ktcDWdJIj1Yt//2N38GftB2Gw RjSWVWf2uVXdd1AM06zSRCukAYhOIJjePuk5BVjblwylqim0iGhGxI/+nJs1ifoeHm3a 50Rg== 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=OlEJyDIQmnGGTbAMLyus5teHHnY0GMfDcFyUEMrNi7A=; b=RGEQafbeycvNqV020ThaDdi10w4YZ9JGu2r0vPOGLI6i/X9MELb+yTiYiOkb7cAa2d yXS6YmHC/sTtYIBUyPz3mrRpfstlS7WBKXhGmKaVXgR2n7Oy9tYh8AGFTE2aZvveLb2W LiKNbq3YQprIAaLoE1bVyFdzs0NTiwcxyHYnaNUyPdWzdWV+RYt6//VCQ8d1usroqTvd PJJ+rxh9pwyiY1cO2PrYeL+2xWjDouXNphvDdjgnPhzUx4duN9ow6YQooWMKmQVEIple QXIJe6AMuyoDbUso+okymFFnA92HBLch/aT0ZnlGPaTUz5bF5c5FrWjon72uLO6oH7BF AsGQ== X-Gm-Message-State: APjAAAW8Xko4Dn4P8v322QQMXUQICdb5MqxU6X1xbab7/bWaqPEmmC2+ NahoSZ4PV2ysm9cDGaIgvZfUe5sdRz6K2wLCKgv0fA== X-Google-Smtp-Source: APXvYqwIcm7OaAuGKKtBXy50WExS6v0S6ft/WRpHV+pUA8btcwzuKAj2MD2PjplqxjJme0+xq4MUHBsBnBjPE5l5+GA= X-Received: by 2002:a05:6214:1433:: with SMTP id o19mr36250986qvx.87.1582383080952; Sat, 22 Feb 2020 06:51:20 -0800 (PST) MIME-Version: 1.0 References: <202002221323.01MDNSX9063377@repo.freebsd.org> In-Reply-To: <202002221323.01MDNSX9063377@repo.freebsd.org> From: Warner Losh Date: Sat, 22 Feb 2020 07:51:09 -0700 Message-ID: Subject: Re: svn commit: r358247 - in head/sys: conf riscv/include To: Kristof Provost Cc: src-committers , svn-src-all , svn-src-head@freebsd.org X-Rspamd-Queue-Id: 48Prqv1J2Xz46pj X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=c7oWNaJY; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::f36) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-3.76 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-1.76)[ip: (-5.21), ipnet: 2607:f8b0::/32(-1.88), asn: 15169(-1.67), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 14:51:24 -0000 On Sat, Feb 22, 2020, 6:23 AM Kristof Provost wrote: > Author: kp > Date: Sat Feb 22 13:23:27 2020 > New Revision: 358247 > URL: https://svnweb.freebsd.org/changeset/base/358247 > > Log: > riscv: Set MACHINE_ARCH correctly > > MACHINE_ARCH sets the hw.machine_arch sysctl in the kernel. In userspace > it sets MACHINE_ARCH in bmake, which bsd.cpu.mk uses to configure the > target ABI for ports. > > For riscv64sf builds (i.e. soft-float) that needs to be riscv64sf, but > the sysctl didn't reflect that. It is static. > > Set the define from the riscv makefile so that we correctly reflect our > actual build (i.e. riscv64 or riscv64sf), depending on what TARGET_ARCH > we were built with. > > That still doesn't satisfy userspace builds (e.g. bmake), so check if > we're building with a software-floating point toolchain there. That > check doesn't work in the kernel, because it never uses floating point. > > Reviewed by: philip (previous version), mhorne > Sponsored by: Axiado > Differential Revision: https://reviews.freebsd.org/D23741 > > Modified: > head/sys/conf/Makefile.riscv > head/sys/riscv/include/param.h > > Modified: head/sys/conf/Makefile.riscv > > ============================================================================== > --- head/sys/conf/Makefile.riscv Sat Feb 22 12:10:41 2020 > (r358246) > +++ head/sys/conf/Makefile.riscv Sat Feb 22 13:23:27 2020 > (r358247) > @@ -46,6 +46,8 @@ SYSTEM_LD= @${LD} -N -m ${LD_EMULATION} -Bdynamic -T $ > CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls > .endif > > +CFLAGS += -DMACHINE_ARCH=\"${TARGET_ARCH}\" > This is bogus. It should be removed. TARGET_ARCH may not be defined here and Makefile.inc1 should already set it for cross builds. Please remove it. Warnet + > # hack because genassym.c includes sys/bus.h which includes these. > genassym.o: bus_if.h device_if.h > > > Modified: head/sys/riscv/include/param.h > > ============================================================================== > --- head/sys/riscv/include/param.h Sat Feb 22 12:10:41 2020 > (r358246) > +++ head/sys/riscv/include/param.h Sat Feb 22 13:23:27 2020 > (r358247) > @@ -46,7 +46,11 @@ > #define MACHINE "riscv" > #endif > #ifndef MACHINE_ARCH > +#ifdef __riscv_float_abi_soft > +#define MACHINE_ARCH "riscv64sf" > +#else > #define MACHINE_ARCH "riscv64" > +#endif > #endif > > #ifdef SMP > From owner-svn-src-all@freebsd.org Sat Feb 22 15:26:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CF68C2412AC for ; Sat, 22 Feb 2020 15:26:53 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x744.google.com (mail-qk1-x744.google.com [IPv6:2607:f8b0:4864:20::744]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Pscr4R1Pz49VP for ; Sat, 22 Feb 2020 15:26:52 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x744.google.com with SMTP id o28so4761418qkj.9 for ; Sat, 22 Feb 2020 07:26:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=qFmoFNCJe4+L41G2o/Qmb87gMjtpkaoApm2sb9Ly0Ec=; b=QN69bFPwxHWuVfoEfDenxjkO50/E0rQjQaZSe1oJ+5HLhvO4B2slGROGRDCEv2kMRu oAGAxHnWnZydMxb1m/QyMCk2wMuMBeyriI/L+jic3B93+jxIMKwzUq2Z99kcUHO25shS viV4SYvwTy08s02XLPa4cC/uZFfIZZhKY1+gBN6/AghLtOc/2K5iGsSGDD/v8uq8dUsw tKmWPqwrpB60ydqqeIRfYQ0gFg4hhX+uaRZCbM1m4oWg85mfqg6ysnjOvCqIvF0OXW40 7AKPJn/SBleqj8JqDo/ZHpQX80FE4ea9Qio+OBKuAiKYT0tgrQGFeuky+Kj4/jjgdHzT Lc+A== 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=qFmoFNCJe4+L41G2o/Qmb87gMjtpkaoApm2sb9Ly0Ec=; b=WdPq8TCE1htvSX4gPyIzLh5NSs3tIklMKyy951M+z/ZmVPc5XUSo7PvBFQ/xUxS2aR 0rNM/I494YWrxUOaNcU0lxvrvbjCeFEpAi6LmBjydWbl6MgtEYtQfCalVwE/xyMoab2a 7RAD24YiFJQw2vMyL/wbY0Mk0bMfeF3k4HOlojTow/Pnq+8prMWZi4UyFxlbMQl2ojqV Rpt2UoHHeIiLQH4Jc2cQc9jf5OyXq+FTgNMBcLLZIqdh9gltBDdcvX1cCFlippZKiPgm wqXmMyeKLDlADP2ue2b9NCPiCm1XZe7qR6kSfq2hmX6Vfq+ACxFJaQIxV+L/7r2a4h61 FTmQ== X-Gm-Message-State: APjAAAWFc4nL0G8XwVwcU27KTl/AUfHLCFzK6DK414yXzHt8DYiT40iF tA+m4b5L3s1Gcpm2Eu45kVK6VZaBgZwMZZBm5EL7bw== X-Google-Smtp-Source: APXvYqxLDs4s315lkkw2s1z7OxDtDFW9JKnfgz55n/Yj+ltOjtCRLXa5j4wH+K3S0bVxAoaOwual1zCoTWUOaOyF/hc= X-Received: by 2002:a37:6785:: with SMTP id b127mr36509066qkc.240.1582385211528; Sat, 22 Feb 2020 07:26:51 -0800 (PST) MIME-Version: 1.0 References: <202002221323.01MDNSX9063377@repo.freebsd.org> In-Reply-To: From: Warner Losh Date: Sat, 22 Feb 2020 08:26:40 -0700 Message-ID: Subject: Re: svn commit: r358247 - in head/sys: conf riscv/include To: Kristof Provost Cc: src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 48Pscr4R1Pz49VP X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=QN69bFPw; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::744) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-2.39 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[4.4.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-0.39)[ip: (1.66), ipnet: 2607:f8b0::/32(-1.88), asn: 15169(-1.67), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 15:26:53 -0000 On Sat, Feb 22, 2020 at 7:51 AM Warner Losh wrote: > > > On Sat, Feb 22, 2020, 6:23 AM Kristof Provost wrote: > >> Author: kp >> Date: Sat Feb 22 13:23:27 2020 >> New Revision: 358247 >> URL: https://svnweb.freebsd.org/changeset/base/358247 >> >> Log: >> riscv: Set MACHINE_ARCH correctly >> >> MACHINE_ARCH sets the hw.machine_arch sysctl in the kernel. In userspace >> it sets MACHINE_ARCH in bmake, which bsd.cpu.mk uses to configure the >> target ABI for ports. >> >> For riscv64sf builds (i.e. soft-float) that needs to be riscv64sf, but >> the sysctl didn't reflect that. It is static. >> >> Set the define from the riscv makefile so that we correctly reflect our >> actual build (i.e. riscv64 or riscv64sf), depending on what TARGET_ARCH >> we were built with. >> >> That still doesn't satisfy userspace builds (e.g. bmake), so check if >> we're building with a software-floating point toolchain there. That >> check doesn't work in the kernel, because it never uses floating point. >> >> Reviewed by: philip (previous version), mhorne >> Sponsored by: Axiado >> Differential Revision: https://reviews.freebsd.org/D23741 >> >> Modified: >> head/sys/conf/Makefile.riscv >> head/sys/riscv/include/param.h >> >> Modified: head/sys/conf/Makefile.riscv >> >> ============================================================================== >> --- head/sys/conf/Makefile.riscv Sat Feb 22 12:10:41 2020 >> (r358246) >> +++ head/sys/conf/Makefile.riscv Sat Feb 22 13:23:27 2020 >> (r358247) >> @@ -46,6 +46,8 @@ SYSTEM_LD= @${LD} -N -m ${LD_EMULATION} -Bdynamic -T $ >> CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls >> .endif >> >> +CFLAGS += -DMACHINE_ARCH=\"${TARGET_ARCH}\" >> > > This is bogus. It should be removed. TARGET_ARCH may not be defined here > and Makefile.inc1 should already set it for cross builds. Please remove it. > Err, I mean use MACHINE_ARCH. I suspect the real right answer here is to get the arch right so that the test you use in param.h is right. But if not, then you gotta use MACHINE_ARCH here. Warner > > Warnet > > > + >> # hack because genassym.c includes sys/bus.h which includes these. >> genassym.o: bus_if.h device_if.h >> >> >> Modified: head/sys/riscv/include/param.h >> >> ============================================================================== >> --- head/sys/riscv/include/param.h Sat Feb 22 12:10:41 2020 >> (r358246) >> +++ head/sys/riscv/include/param.h Sat Feb 22 13:23:27 2020 >> (r358247) >> @@ -46,7 +46,11 @@ >> #define MACHINE "riscv" >> #endif >> #ifndef MACHINE_ARCH >> +#ifdef __riscv_float_abi_soft >> +#define MACHINE_ARCH "riscv64sf" >> +#else >> #define MACHINE_ARCH "riscv64" >> +#endif >> #endif >> >> #ifdef SMP >> > From owner-svn-src-all@freebsd.org Sat Feb 22 16:19:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E8D4A243654; Sat, 22 Feb 2020 16:19:04 +0000 (UTC) (envelope-from flo@smeets.xyz) Received: from mail-out.smeets.xyz (mail-out.smeets.xyz [IPv6:2a01:4f8:10a:3543::25:11]) by mx1.freebsd.org (Postfix) with ESMTP id 48Ptn34Ys7z4ZJs; Sat, 22 Feb 2020 16:19:03 +0000 (UTC) (envelope-from flo@smeets.xyz) Received: from mail.smeets.xyz (mail.smeets.xyz [IPv6:2a01:4f8:10a:3543::25:3]) by mail-out.smeets.xyz (Postfix) with ESMTP id 1BE7151A55; Sat, 22 Feb 2020 17:18:56 +0100 (CET) Received: from amavis.smeets.xyz (amavis.smeets.xyz [IPv6:2a01:4f8:10a:3543::aa:4]) by mail.smeets.xyz (Postfix) with ESMTP id 1512DB059B; Sat, 22 Feb 2020 17:18:56 +0100 (CET) X-Virus-Scanned: amavisd-new at smeets.xyz Received: from mail.smeets.xyz ([IPv6:2a01:4f8:10a:3543::25:3]) by amavis.smeets.xyz (amavis.smeets.xyz [IPv6:2a01:4f8:10a:3543::aa:4]) (amavisd-new, port 10025) with ESMTP id 1nDLuF6GJ3vq; Sat, 22 Feb 2020 17:18:55 +0100 (CET) Received: from [IPv6:2003:cf:df36:4f56:51f5:2223:8fa9:a30b] (p20030006339ECC5651F522238FA9A30B.dip0.t-ipconnect.de [IPv6:2003:6:339e:cc56:51f5:2223:8fa9:a30b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) by mail.smeets.xyz (Postfix) with ESMTPSA id D3059B05E6; Sat, 22 Feb 2020 17:18:54 +0100 (CET) Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb To: "Pedro F. Giffuni" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202002200354.01K3s8ib077553@repo.freebsd.org> From: Florian Smeets Autocrypt: addr=flo@smeets.xyz; keydata= mQINBFpyBwsBEADLq0c46orEtbMn4SptX+VJxR1wB4YwaErZme1bqF4nZHIhlRNET22HsHdQ doagaB4uACq0Rj5kHcu614ZnnNkLPyCxWQATx+cbdiFO4/hfT8tAvKnBtiy3awKJ5uGCNO2E zJwXW6KwdDA8XPRySqN8m1yPl+dW0Cls+/vO/QL/6+YLMupmEpSvFxRzAZTQuKyX4+xl+dYI d24JiPd1yfCuDNOY3+OZ3QBMT00u/699N8lUWRtiTwaQMwAOww8r/26YM6/SgcgFuLH2E/CV plY0sDvfoISlAj8agxdomNXfPjCMQ6w5yGZmA+huFpPCVBTi3on/SWgbQO7dLVpN4BNPuScP osCb/dsOg0S74zCClsIU3gdUGh9rwJY00/Ebid6V0R3c1Czwbg8LQedzlGDuXYXmzp6W2ujg r1cqbUD6lUWikUv2IMdCbb8MxYhHLi3GYUs5Xpi+W7vM6T45KbuMr7O/1SjtcGOlNeDvGNgj cDk20fOgPPZ+M6i9vX5Q2oI9HoYaeTiYNwILkBLVP/L40kTo5EkiQOt4OW6BMbylqXPOaQMW uGVbmhCJQpbx8Vo80s2yiBBVWkLkWQIcIm3KZlLldJqKEFpQBWLBE1eFFqboYgAWzFn73CaV 5tihobijMmmOV3a8cI1fI4kREyl3g+8bW+O0u3m3tuzVOpDpjwARAQABtB9GbG9yaWFuIFNt ZWV0cyA8ZmxvQHNtZWV0cy54eXo+iQJXBBMBCgBBAhsDBQkHhh+ABQsJCAcDBRUKCQgLBRYD AgEAAh4BAheAFiEE7LNouHkIv7aRTXJp71uk3NWp88AFAlpyB1gCGQEACgkQ71uk3NWp88DB 8RAAuwXf65kTtVwDAJEFnXQmRx8q/bfV5WWMVVZMM9zMOmLM006PlJlns9vDEwfXkUsTOKpC 9GEREdCVxsqQ/WqYrO0O8yLYRMY0IQ6w2B5cVzvf1DwY6Foc7zOpEgvAt5mCR9BoJ1eHf90K rHYUxf8AaWjJ/CE4EdN4wDvEY23tQ1ov0ReiNZokKfKKRF8rRbBhpwRcRyzV4eah3WvKKyOy PIGKquXG0GWhgty3rfNtion8AomFoQlK0lCq57okQj0HLS3vLTzXexvfWsLc+nLXT8eo87cl MQaYz7h5EjqM0r4FPRmGJ18nQ5wArt5vOf5oRv90RSH3QJLaxVdvt0BCDr2s1J5tTG7gZP/r Kyz9BrPtVvBwiHEW8jhw4lDbV3xIUEVkj4UEsM9XkHrHqd8JiFNZZOPE25VkuAeoeyB3j9km fZczF/f41cHp5v5RyTavta9QWA6Q07ARPu2JCBMMN+lJ9G/Ok8JlUgSGOwHZ+3R7jjvDMEFh 4DJhF2B77DdLxpLVJS0h5cS8WM6a/jm1Sk6DAi4bgksetvdyE/N/yxQmHokdKYW2LGDgd7cw dM2X660avFRe4ogZ0PeLRimPbyJuSN2+hZC/fy5jEv5PvZ+6spuwYMYDClefRpvBDqmCCxtf M1LNFRiXjdYvUdHvQ3facDzNpOkPLp0VexjJJ2G5Ag0EWnIHCwEQANHrOm5vydK/ij1zkDyL Zzbogk5zjMh6oAr3cH4oGbJHPLlyFZTCVBYUwD4kh6NV1sKuZOeX/aygyVg1RyLulnzsc6Yj XOIxlqhqQwGI8k8ssAIpMSf029781CNF2HC42CrJeHtXNONDNOjsMuoxzga9zLQCh4jLTlE/ TUJo6KVABWBVRtTVh2Z77pKtN7j2NPFBHvp7K0WHfV+TYnlsgjhUA0ACZnUdHS2YRzBhCzzQ eludxBz54S9xbUq1mfZfVx8AbAGXF2zxo68nvvAAJn48HiBS3dMhCGYJDdZdja6QdUFPiemi nOxwkUzCqmKxm+Aj7USue1SbZZqJxmMI1eF4Ork/BJJI74Z/FnJgYR4UkEiD3J/KUocQCIH3 daB1+/CXlh99Ib7AP+QGuKk3vnNHh7VBq3E+VAiM5LU0BmgW+cdRPHkiwM7sDa2VnV3VqvV7 QmoMKnHFzUB6Nn8uE+iakp5J81Pr68kDOq7kLW3UnGmg1PUqbsnCaTimJb3JAYWzOW/9CYcP lbAdIqi+wH7MOoeL+PA99A3kW/881rGmeOYFzzrsNVLtea+AJfXtp4LN5gOVIPIpovCNSVXX EKgl7a4vjUGzVBzrH7PzT+k4XUEQwNCACfGZxEExtny19bjvumZ0rv+AEAHvsWSKXHUVJzIN jqd9UioaEbKGAPlPABEBAAGJAjwEGAEKACYWIQTss2i4eQi/tpFNcmnvW6Tc1anzwAUCWnIH CwIbDAUJB4YfgAAKCRDvW6Tc1anzwM/8D/9IbDzMvsz4O+Gcz1oUx4IMxbQDw99qgJexR5cj W207GkRnKVJ0zqx7Xc+U3AytniuwqHEXeV4qIqP6h14pEuCqdRJ+fSm65rB4+ZdeM2Y5YYvU BByOM78Mbs6SZy2k5X0EL5FXjNVIMOv2ImblyeRWhWK6gCfc/l7kV1EYVx9LV3umsc7K+ceZ lfE1U8hWbie8r7tl3V9ggF2g1cyc9ru0qW3sg8D4vNTS1uwdqeccKRc3osrVw4WrW1nGxTmT TCqVYGHjF2sANF9o1JB93hoXz8lydmDdhJ/62/XHapeT1FB8m7gulinM33VeOCCjN+dUgLQk 5tAGg+iHQWhC4Q/o4m0OqfdcSYdhCJ7h2I4GwOoGaxzoXqEL47Guxz+zE4osAFP5JLxCTbi2 x5sduCvxx3WbO95kZJKp7D0BIKpbKcfkyWse53YBI9wSrkIil+InnqvSDzU9nMvIyKSjv4ui wvZi1HY7tPiir/P2naZaiQ1SAM0KLP3g123WcnhRKo++ZRHhay5/70SKGdxEmKf3nld8xNCs 9EIWOTpRaqc9+zOcD1zVTZwnwgBrnPqzfPW9+d7FwAP1MdJbrROuC2bfzNZyoR4uHAnDOyNW wGSmShv7hhdettO8dJblneTY8vhzxo36pWmojEdgghXNw9Ji7kyInAmWq9kwV5Vou3ZNFw== Message-ID: <03606e17-08fc-f575-95f5-c3c5128bff4f@smeets.xyz> Date: Sat, 22 Feb 2020 17:18:53 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <202002200354.01K3s8ib077553@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="n4nxz0wra5VKkDL8DOcotaLJ26bJWiAlM" X-Rspamd-Queue-Id: 48Ptn34Ys7z4ZJs X-Spamd-Bar: ----- X-Spamd-Result: default: False [-5.62 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+mx]; TO_MATCH_ENVRCPT_ALL(0.00)[]; HAS_ATTACHMENT(0.00)[]; MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; IP_SCORE(-0.82)[ipnet: 2a01:4f8::/29(-2.54), asn: 24940(-1.55), country: DE(-0.02)]; DMARC_POLICY_ALLOW(-0.50)[smeets.xyz,reject]; SIGNED_PGP(-2.00)[]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 16:19:05 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --n4nxz0wra5VKkDL8DOcotaLJ26bJWiAlM Content-Type: multipart/mixed; boundary="ClVgKxDP0BwxZwDH7iQvcoLodn7yOuTk7" --ClVgKxDP0BwxZwDH7iQvcoLodn7yOuTk7 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 20.02.20 04:54, Pedro F. Giffuni wrote: > Author: pfg > Date: Thu Feb 20 03:54:07 2020 > New Revision: 358153 > URL: https://svnweb.freebsd.org/changeset/base/358153 >=20 > Log: > /etc/services: attempt bring the database to this century. > =20 > -smtps 465/tcp #smtp protocol over TLS/SSL (was ssmtp) > -smtps 465/udp #smtp protocol over TLS/SSL (was ssmtp) I'm not sure how removals of services have been handled in the past. This change broke loading of my pf rule set, as I had smtps in there. I'm not saying that this change is wrong, but I think removing entries from services can break all kinds of stuff. Not just firewall rule sets, also scripts and thinking more about it, it will most certainly also break postfix as it also uses smtps as an alias for port 465 in its master.cnf I guess this needs to be at least mentioned in the release notes, and maybe smtps kept as an alias, and check all the others that were removed?= Florian --ClVgKxDP0BwxZwDH7iQvcoLodn7yOuTk7-- --n4nxz0wra5VKkDL8DOcotaLJ26bJWiAlM Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEE7LNouHkIv7aRTXJp71uk3NWp88AFAl5RVG5fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEVD QjM2OEI4NzkwOEJGQjY5MTRENzI2OUVGNUJBNERDRDVBOUYzQzAACgkQ71uk3NWp 88CdJA/+NSrHXkJ7txarOgkeCOrcB6JJMQomBtiJU33TcYVTASfQtfGJs3RmUJ3N NTNk48Ko4YNsUHPjtDY9yDIqe6REj36nVo1z0dQbFSxWSX734vDh+Dm5fxH+1PPO 2C4Q/IU8rjO8TvVgsFm1RXNkbmwGL51VqW13Gszv9Pn7Dl7lpr/TCuY/ZeLh5t+v jPLV8sG2BEHNOQuYs6wMplHAz+9N90AevGxlEuxzm8uwqiqgxTP+ZCsBNd/FOqLC h2vZs3cmEQ8KEfdMIRbU4JCrUDo7F2vd4fBx3C9gLlEtBFNledhik/1G+UbZnEqf dTvoZm8wcfnYjq+YGXYskUlgmRR2FFOPbnG67s5PYYmF0SuR04Y8gKQ2hkx7QDDd pgtixbm6nVAkfakHKOuay6E//Y46Op1zUZUqBzJ6i8lp+XJ7qFnXnNNTC58ugRrM 7yMjLMA2zdW5fXevzTDnxvEF6ygWf1bysuDy948qgZh3b5YtnRd/CrZYFQ8k4l/V KZfdjnf8Ct7uxpgnCaZC3snccibyfn92jZHN9d/ApWW7w9ZMfEaSI9+PELoOhEq6 /bQ21SGObtXsdxq73L6sAtoJDE0T7/wkt+Sspv7ES5KuTgseKi04DDF4oKcoPmNg Zc3RCej9qYwZYMRo5I6eEPq1Q/xrGEoRc4vs44GOYcQSa5p6duc= =VhIg -----END PGP SIGNATURE----- --n4nxz0wra5VKkDL8DOcotaLJ26bJWiAlM-- From owner-svn-src-all@freebsd.org Sat Feb 22 16:20:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 23F4024372D; Sat, 22 Feb 2020 16:20:05 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PtpD6mskz4c5k; Sat, 22 Feb 2020 16:20:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DB5EA26219; Sat, 22 Feb 2020 16:20:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01MGK4T9072304; Sat, 22 Feb 2020 16:20:04 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MGK46E072303; Sat, 22 Feb 2020 16:20:04 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002221620.01MGK46E072303@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 22 Feb 2020 16:20:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358248 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358248 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 16:20:05 -0000 Author: kevans Date: Sat Feb 22 16:20:04 2020 New Revision: 358248 URL: https://svnweb.freebsd.org/changeset/base/358248 Log: vm_radix: prefer __builtin_unreachable() to an unreachable panic() This provides the needed hint to GCC and offers an annotation for readers to observe that it's in-fact impossible to hit this point. We'll get hit with a a -Wswitch error if the enum applicable to the switch above were to get expanded without the new value(s) being handled. Modified: head/sys/vm/vm_radix.c Modified: head/sys/vm/vm_radix.c ============================================================================== --- head/sys/vm/vm_radix.c Sat Feb 22 13:23:27 2020 (r358247) +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 2020 (r358248) @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum vm_radix_access case SMR: return (smr_entered_load(p, vm_radix_smr)); } - /* This is unreachable, silence gcc. */ - panic("vm_radix_node_get: Unknown access type"); + __unreachable(); } static __inline void From owner-svn-src-all@freebsd.org Sat Feb 22 16:25:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A9E8B243E1C for ; Sat, 22 Feb 2020 16:25:23 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound2m.ore.mailhop.org (outbound2m.ore.mailhop.org [54.149.155.156]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48PtwL5Pgwz3K8V for ; Sat, 22 Feb 2020 16:25:22 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1582388721; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=SmiYxCFM4SK42e9wSI8NVCT2yLVd54VbxIEbCPnUCNuPwC/kS0/vKRikM9It7cFIl6NWyEbI3at+N Y6MffhveDP3dNnQly1mzwpCXbZqGmelUEsiS6MgktuQSAfClVjBN6xTllUqzD4KeSwTg+65dZTM6xC ElRlZvCZmy9E//NO3wAqH9qBzur5hcAXJv63jY94MN6hk7me2I7ME2PlmmLVzzu+3+tGJvI4X5j8aB 2Q5o3d1QVCDnQi3c4zCUH6XsUiS29szelImQphrAA7H9Q3jVdPGOPK9lW7QgESkz8D2zJUMpH3l1qt 9LMJ0cwa8c6vXUxczq/f+C6nmHZnwew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:to:from:subject:message-id:dkim-signature:from; bh=sj21eItO2VADe93zlviwDk+gtGEJZKGSlMRaA5jLyqA=; b=Mr82Q+NaAJkmliNvV87i8dIpvcIAvMdEVX59ny11bpawEZk/N5h5kEHe8iCOpj99ZZgHA8JffaURh lS9hhgd4dQvLE+vbGsE/wLKC67d0wW/RhNW9QWjrAajbTBxaBPx3TrjwVK3SCbxqrXKZCCDMm0QUKa 8yKpeQKggYAwK0AxM2YWomijDrjOvddu7fhM3JuXAHwrEpNIyHZ2m+wG5flZjpsoogZdWw/tl2QZSI 0CKDFP8WGCp61yyAa1AM3202nZ3xFuvzyxUv80E90eBlz5utceZ3fwFVjcILz55mA0hwRludtdG434 X8pqEJxn/CYqEvM2jfiwYDXiEBivHeQ== ARC-Authentication-Results: i=1; outbound4.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:to:from:subject:message-id:from; bh=sj21eItO2VADe93zlviwDk+gtGEJZKGSlMRaA5jLyqA=; b=DSn83lMjGLWZMBgKJbcpd5ikx6oUn0BWAvANWlLfU/xwCPC4enmvXbXMosiKn6/vNYrobS0udU1PH 4iQqQsr++OXqRwhXY5Q1+jSgXPTnkmt6xKGjFIVSvvsRhITF6l52uXdLJR15FaoywpkF/Lv+wubpwy 7w7tTcMk4LeIMpdY67YeWahAm+ioYXkmHcaD+fqb+woSbhQGvfojtpsVXY26bLdUIjjs1jdsnEc2ey UCcYbTBPkfak4fKR5TrTfgYi9WF6hfdZgWUlnF2fBvg/fnz9O9NM2p3L3FMl78Hy28CIKN080v18JL FPiUsx7TfMzQw3lRqELGU93zpdemu1A== X-MHO-RoutePath: aGlwcGll X-MHO-User: ea89366c-558f-11ea-9eb3-25e2dfa9fa8d X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [67.177.211.60]) by outbound4.ore.mailhop.org (Halon) with ESMTPSA id ea89366c-558f-11ea-9eb3-25e2dfa9fa8d; Sat, 22 Feb 2020 16:25:20 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id 01MGPJDZ015842; Sat, 22 Feb 2020 09:25:19 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: Subject: Re: svn commit: r358248 - head/sys/vm From: Ian Lepore To: Kyle Evans , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Sat, 22 Feb 2020 09:25:18 -0700 In-Reply-To: <202002221620.01MGK46E072303@repo.freebsd.org> References: <202002221620.01MGK46E072303@repo.freebsd.org> Content-Type: text/plain; charset="ASCII" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 48PtwL5Pgwz3K8V X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.96 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.97)[-0.969,0]; ASN(0.00)[asn:16509, ipnet:54.148.0.0/15, country:US]; NEURAL_HAM_LONG(-0.99)[-0.995,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 16:25:23 -0000 On Sat, 2020-02-22 at 16:20 +0000, Kyle Evans wrote: > Author: kevans > Date: Sat Feb 22 16:20:04 2020 > New Revision: 358248 > URL: https://svnweb.freebsd.org/changeset/base/358248 > > Log: > vm_radix: prefer __builtin_unreachable() to an unreachable panic() > > This provides the needed hint to GCC and offers an annotation for readers to > observe that it's in-fact impossible to hit this point. We'll get hit with a > a -Wswitch error if the enum applicable to the switch above were to get > expanded without the new value(s) being handled. > > Modified: > head/sys/vm/vm_radix.c > > Modified: head/sys/vm/vm_radix.c > ============================================================================== > --- head/sys/vm/vm_radix.c Sat Feb 22 13:23:27 2020 (r358247) > +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 2020 (r358248) > @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum vm_radix_access > case SMR: > return (smr_entered_load(p, vm_radix_smr)); > } > - /* This is unreachable, silence gcc. */ > - panic("vm_radix_node_get: Unknown access type"); > + __unreachable(); > } > > static __inline void What does __unreachable() do if the code ever becomes reachable? Like if a new enum value is added and this switch doesn't get updated? -- Ian From owner-svn-src-all@freebsd.org Sat Feb 22 16:29:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 080E9243F3B; Sat, 22 Feb 2020 16:29:29 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Pv146VX5z3xtc; Sat, 22 Feb 2020 16:29:28 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id CDA7E5A65; Sat, 22 Feb 2020 16:29:28 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qk1-f182.google.com with SMTP id u124so4847832qkh.13; Sat, 22 Feb 2020 08:29:28 -0800 (PST) X-Gm-Message-State: APjAAAU55GjZBUDXuNsqAXv8Zc6NO6rS06JUL1UEK3PAi+hOs2aFVUG/ k/P6/GIa1EsBiwAB9sxp1J8EcSQhz0Jwr5tkjzg= X-Google-Smtp-Source: APXvYqysNew7p664ZpBk02eep1hY408dO8DhG3ixjgibR5U1n5q+jgffwlxJmh2SQlNr2i4i965vZMluB8EtCc1TNAQ= X-Received: by 2002:a05:620a:7f5:: with SMTP id k21mr14836293qkk.493.1582388968362; Sat, 22 Feb 2020 08:29:28 -0800 (PST) MIME-Version: 1.0 References: <202002221620.01MGK46E072303@repo.freebsd.org> In-Reply-To: From: Kyle Evans Date: Sat, 22 Feb 2020 10:29:17 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r358248 - head/sys/vm To: Ian Lepore Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 16:29:29 -0000 On Sat, Feb 22, 2020 at 10:25 AM Ian Lepore wrote: > > On Sat, 2020-02-22 at 16:20 +0000, Kyle Evans wrote: > > Author: kevans > > Date: Sat Feb 22 16:20:04 2020 > > New Revision: 358248 > > URL: https://svnweb.freebsd.org/changeset/base/358248 > > > > Log: > > vm_radix: prefer __builtin_unreachable() to an unreachable panic() > > > > This provides the needed hint to GCC and offers an annotation for readers to > > observe that it's in-fact impossible to hit this point. We'll get hit with a > > a -Wswitch error if the enum applicable to the switch above were to get > > expanded without the new value(s) being handled. > > > > Modified: > > head/sys/vm/vm_radix.c > > > > Modified: head/sys/vm/vm_radix.c > > ============================================================================== > > --- head/sys/vm/vm_radix.c Sat Feb 22 13:23:27 2020 (r358247) > > +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 2020 (r358248) > > @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum vm_radix_access > > case SMR: > > return (smr_entered_load(p, vm_radix_smr)); > > } > > - /* This is unreachable, silence gcc. */ > > - panic("vm_radix_node_get: Unknown access type"); > > + __unreachable(); > > } > > > > static __inline void > > What does __unreachable() do if the code ever becomes reachable? Like > if a new enum value is added and this switch doesn't get updated? > __unreachable doesn't help here, but the compiler will error out on the switch() if all enum values aren't addressed and there's no default: case. IMO, compilers could/should become smart enough to error if there's an explicit __builtin_unreachable() and they can trivially determine that all paths will terminate before this, independent of -Werror=switch*. From owner-svn-src-all@freebsd.org Sat Feb 22 16:44:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 013FE244665; Sat, 22 Feb 2020 16:44:11 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PvL22dgxz4JDK; Sat, 22 Feb 2020 16:44:10 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-wr1-x42f.google.com with SMTP id y11so5479131wrt.6; Sat, 22 Feb 2020 08:44:10 -0800 (PST) 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=ebiuzCMNkzjYtL0Ow5K0WFXTO5c7OcVaC1AHvoFaFVQ=; b=i/nqY0G9cuKqRQ+aZVDvkdM4Y5ghn1HVVSF30lw1mxSWhalZ7SigulKpX8trIa7oUh i2Jb2Y9I54nPMT5hE62y4BolD6cg9e1x68jQB0K/q9YCLSb9kgQIikHVyJBJjXqxK/vO AEemNyo4iyIppXPRcoIsocY59s8MfTIt70jk+9bQvWsUnrHH2DNuC1lSZGnP2Bx8mCZa fUrS0UnALRwdbx8QKPA8yBJKr/lmseBDnelFTa2wzLfZ6ohK39jiwqrDduQavu4NFduF EexnL4kdAChRpx5tu+bm7p2PhePEj7Oim6swYy9x4ccOoVOa4WCFcuYlOWGis9fi614n pmFg== 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=ebiuzCMNkzjYtL0Ow5K0WFXTO5c7OcVaC1AHvoFaFVQ=; b=iM2VAXb+5Nm6GVHiDp71QETErHTWuvcpLN6Lj6y2ezJ0oisV4mql59lWwzynz+7dAo GAbdmcmS5PcXKQuxZh9HWS/mnxrceni+FBYmaGQvmLghkb8rPIvvL7gQT7e0hYDcCWxh bHoClwidW0RA7MrOB5ZA4HAwy9ROg9n8B47obhqUUIbKBZvMvlwQ+Ci1FcRNMquYkl1P kIk3DNm0oU2rdU70bjlSLMyOphvSh0K9nvGIoLrvkJ2bpKN8YovR8W8yJ/FVeZg4q65p 3SOqCqdGnkanFMhfu4IYxiwFjMZcUs7LNp8tlPg25OC7ee8faQ1FPtOdVt12F/RKylaZ K0Vw== X-Gm-Message-State: APjAAAWnEsnVAPAPQxv/YudihBAmwYNhswUKhA6aSZcUmMy0slKjNHwq 3IMYI4g5TfGU58bJAslDdl1SVU57dZXSsuravKfsyw== X-Google-Smtp-Source: APXvYqxBgwxZ1dJ6CSXIfC9ymeIt4fYfegNUYlbvlPlRaCIGfYTA8KF0RSJ+ACa8RLzo8enXfMet+elJxDos/2z1N3U= X-Received: by 2002:a05:6000:1187:: with SMTP id g7mr55900655wrx.109.1582389845888; Sat, 22 Feb 2020 08:44:05 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a5d:6b02:0:0:0:0:0 with HTTP; Sat, 22 Feb 2020 08:44:04 -0800 (PST) In-Reply-To: References: <202002221620.01MGK46E072303@repo.freebsd.org> From: Mateusz Guzik Date: Sat, 22 Feb 2020 17:44:04 +0100 Message-ID: Subject: Re: svn commit: r358248 - head/sys/vm To: Kyle Evans Cc: Ian Lepore , svn-src-head , svn-src-all , src-committers Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48PvL22dgxz4JDK X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 16:44:11 -0000 On 2/22/20, Kyle Evans wrote: > On Sat, Feb 22, 2020 at 10:25 AM Ian Lepore wrote: >> >> On Sat, 2020-02-22 at 16:20 +0000, Kyle Evans wrote: >> > Author: kevans >> > Date: Sat Feb 22 16:20:04 2020 >> > New Revision: 358248 >> > URL: https://svnweb.freebsd.org/changeset/base/358248 >> > >> > Log: >> > vm_radix: prefer __builtin_unreachable() to an unreachable panic() >> > >> > This provides the needed hint to GCC and offers an annotation for >> > readers to >> > observe that it's in-fact impossible to hit this point. We'll get hit >> > with a >> > a -Wswitch error if the enum applicable to the switch above were to >> > get >> > expanded without the new value(s) being handled. >> > >> > Modified: >> > head/sys/vm/vm_radix.c >> > >> > Modified: head/sys/vm/vm_radix.c >> > ============================================================================== >> > --- head/sys/vm/vm_radix.c Sat Feb 22 13:23:27 2020 (r358247) >> > +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 2020 (r358248) >> > @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum >> > vm_radix_access >> > case SMR: >> > return (smr_entered_load(p, vm_radix_smr)); >> > } >> > - /* This is unreachable, silence gcc. */ >> > - panic("vm_radix_node_get: Unknown access type"); >> > + __unreachable(); >> > } >> > >> > static __inline void >> >> What does __unreachable() do if the code ever becomes reachable? Like >> if a new enum value is added and this switch doesn't get updated? >> > > __unreachable doesn't help here, but the compiler will error out on > the switch() if all enum values aren't addressed and there's no > default: case. > > IMO, compilers could/should become smart enough to error if there's an > explicit __builtin_unreachable() and they can trivially determine that > all paths will terminate before this, independent of -Werror=switch*. > _______________________________________________ I think this is way too iffy, check this program: #include int main(void) { __builtin_unreachable(); printf("test\n"); } Neither clang nor gcc warn about this and both stop code generation past the statement. Thus I think for production kernels __unreachable can expand to to the builtin, but for debug it should be a panic with func/file/line. This would work fine in terms of analysis since panic is noreturn or so. -- Mateusz Guzik From owner-svn-src-all@freebsd.org Sat Feb 22 16:50:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3E9F52448D0; Sat, 22 Feb 2020 16:50:39 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PvTW0wvLz4Ws3; Sat, 22 Feb 2020 16:50:39 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id 04C3F5CD1; Sat, 22 Feb 2020 16:50:39 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qv1-f44.google.com with SMTP id ek2so2405977qvb.0; Sat, 22 Feb 2020 08:50:38 -0800 (PST) X-Gm-Message-State: APjAAAUuIMs1FKAJuscoVuCD++HWLNHdTQso91VkFiYiOB1XM89/C6/T JKqBS4sYZVK15zcikD1WHA6+lLxd4N3OxA800b0= X-Google-Smtp-Source: APXvYqyX+PPBRSpWtOGX+4IpVy6cZhv16KDzs28xHENExfnC8i6IZL8ZqLjDBh2/RsoDcqF4P88vZqL6VVlQ7oqndN8= X-Received: by 2002:a05:6214:1708:: with SMTP id db8mr35719066qvb.129.1582390238480; Sat, 22 Feb 2020 08:50:38 -0800 (PST) MIME-Version: 1.0 References: <202002221620.01MGK46E072303@repo.freebsd.org> In-Reply-To: From: Kyle Evans Date: Sat, 22 Feb 2020 10:50:26 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r358248 - head/sys/vm To: Mateusz Guzik Cc: Ian Lepore , svn-src-head , svn-src-all , src-committers Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 16:50:39 -0000 On Sat, Feb 22, 2020 at 10:44 AM Mateusz Guzik wrote: > > On 2/22/20, Kyle Evans wrote: > > On Sat, Feb 22, 2020 at 10:25 AM Ian Lepore wrote: > >> > >> On Sat, 2020-02-22 at 16:20 +0000, Kyle Evans wrote: > >> > Author: kevans > >> > Date: Sat Feb 22 16:20:04 2020 > >> > New Revision: 358248 > >> > URL: https://svnweb.freebsd.org/changeset/base/358248 > >> > > >> > Log: > >> > vm_radix: prefer __builtin_unreachable() to an unreachable panic() > >> > > >> > This provides the needed hint to GCC and offers an annotation for > >> > readers to > >> > observe that it's in-fact impossible to hit this point. We'll get hit > >> > with a > >> > a -Wswitch error if the enum applicable to the switch above were to > >> > get > >> > expanded without the new value(s) being handled. > >> > > >> > Modified: > >> > head/sys/vm/vm_radix.c > >> > > >> > Modified: head/sys/vm/vm_radix.c > >> > ============================================================================== > >> > --- head/sys/vm/vm_radix.c Sat Feb 22 13:23:27 2020 (r358247) > >> > +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 2020 (r358248) > >> > @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum > >> > vm_radix_access > >> > case SMR: > >> > return (smr_entered_load(p, vm_radix_smr)); > >> > } > >> > - /* This is unreachable, silence gcc. */ > >> > - panic("vm_radix_node_get: Unknown access type"); > >> > + __unreachable(); > >> > } > >> > > >> > static __inline void > >> > >> What does __unreachable() do if the code ever becomes reachable? Like > >> if a new enum value is added and this switch doesn't get updated? > >> > > > > __unreachable doesn't help here, but the compiler will error out on > > the switch() if all enum values aren't addressed and there's no > > default: case. > > > > IMO, compilers could/should become smart enough to error if there's an > > explicit __builtin_unreachable() and they can trivially determine that > > all paths will terminate before this, independent of -Werror=switch*. > > _______________________________________________ > > I think this is way too iffy, check this program: > > > #include > > int > main(void) > { > > __builtin_unreachable(); > printf("test\n"); > } > > Neither clang nor gcc warn about this and both stop code generation > past the statement. Thus I think for production kernels __unreachable > can expand to to the builtin, but for debug it should be a panic with > func/file/line. This would work fine in terms of analysis since panic > is noreturn or so. I guess I'll repeat this again: our build will error out if this becomes reachable, because we compile with -Werror=switch. There's no point in having a panic that cannot physically be reached, you will never see the func/file/line. From owner-svn-src-all@freebsd.org Sat Feb 22 17:18:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F28C3245B0D; Sat, 22 Feb 2020 17:18:42 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Pw5t5tPVz4BGh; Sat, 22 Feb 2020 17:18:42 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-wm1-x331.google.com with SMTP id q9so4934765wmj.5; Sat, 22 Feb 2020 09:18:42 -0800 (PST) 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=SruA3ng4et92XslFExa0wRujb2kg7LPlACitx+qsKQ0=; b=BOy/NqTru918vtNwViU2Vj9ZEg4fYHgT2Sfi3BvU+24qaBcQTJP5m6i/2GvJdXiWNC DHEnJVvZyCbaKCXC82AS0hod/XQd3VtOQD94KygjF+aCbMcnGDBggOui8x2UEE0NyE0D 12Dxbgejvs7S0KoMXoFCa9O6ov6kkxmk44bEyL9rC4/RBlnIV/n9aGgRqmdlD1uMEI4K FMruJ3XUEXs8FS02SCmQMeIHyxSmCQrqeG6xpPHeE0PheSbFjV2xkY8cHR7vO4rlInfk Q8q+X4zo5jl2Z/ItwgHlP+HuwI2PF4w6r9+AiIfoZjAmXu0HUzAA8lMzCkrQEybu2T/u NKpQ== 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=SruA3ng4et92XslFExa0wRujb2kg7LPlACitx+qsKQ0=; b=fTuGiEks97E32IORuuLM1H4FckTO1KLBK07F6mkLyq5Zgwwz5UwK0Giab9U3ItSnLt lbkGgxXvFbgsKmfS1evxrnqW5zWQ61ygBzOVRWP8CrPO1FDbf4awM7m1t8BLNGX4i1Gc tvTZ8hXyo/Snex2oMT+3Mqs/HIGtlLno1u8nWOnjE1yESksTC1j+swiZ/eznz6x0hgWZ Ik6NDsg0hM71UgKsc1y1OObbb1P/oh/Ia93egoIK8ddPPO8+s38SsGn1j/b1WrtCvcCj ZDYOA5a/E6ihTZAOglmcWQkD/qYBpnEcFYUy5vHGT80UitYeAH5BJBKDvukMTJDVmT0Z TC0A== X-Gm-Message-State: APjAAAV4DvlPNeftvq6CZzM8sVlMXzekOCRoF8Z9vcRrP1PMp1utJeyV pAf3WZu8nK/XcV1Anfi27ennL4AlHPGrkJZT4rC44w== X-Google-Smtp-Source: APXvYqwetvxFh12UaNeaI+dB8XncoeX88FUXaRd3frWR1R6E9eN8KfpuHRhiIC2lTA2mkMEWcO1gKGBdMbjVQRcghnA= X-Received: by 2002:a1c:e483:: with SMTP id b125mr11382403wmh.187.1582391919775; Sat, 22 Feb 2020 09:18:39 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a5d:6b02:0:0:0:0:0 with HTTP; Sat, 22 Feb 2020 09:18:39 -0800 (PST) In-Reply-To: References: <202002221620.01MGK46E072303@repo.freebsd.org> From: Mateusz Guzik Date: Sat, 22 Feb 2020 18:18:39 +0100 Message-ID: Subject: Re: svn commit: r358248 - head/sys/vm To: Kyle Evans Cc: Ian Lepore , svn-src-head , svn-src-all , src-committers Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48Pw5t5tPVz4BGh X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 17:18:43 -0000 On 2/22/20, Kyle Evans wrote: > On Sat, Feb 22, 2020 at 10:44 AM Mateusz Guzik wrote: >> >> On 2/22/20, Kyle Evans wrote: >> > On Sat, Feb 22, 2020 at 10:25 AM Ian Lepore wrote: >> >> >> >> On Sat, 2020-02-22 at 16:20 +0000, Kyle Evans wrote: >> >> > Author: kevans >> >> > Date: Sat Feb 22 16:20:04 2020 >> >> > New Revision: 358248 >> >> > URL: https://svnweb.freebsd.org/changeset/base/358248 >> >> > >> >> > Log: >> >> > vm_radix: prefer __builtin_unreachable() to an unreachable panic() >> >> > >> >> > This provides the needed hint to GCC and offers an annotation for >> >> > readers to >> >> > observe that it's in-fact impossible to hit this point. We'll get >> >> > hit >> >> > with a >> >> > a -Wswitch error if the enum applicable to the switch above were >> >> > to >> >> > get >> >> > expanded without the new value(s) being handled. >> >> > >> >> > Modified: >> >> > head/sys/vm/vm_radix.c >> >> > >> >> > Modified: head/sys/vm/vm_radix.c >> >> > ============================================================================== >> >> > --- head/sys/vm/vm_radix.c Sat Feb 22 13:23:27 2020 >> >> > (r358247) >> >> > +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 2020 >> >> > (r358248) >> >> > @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum >> >> > vm_radix_access >> >> > case SMR: >> >> > return (smr_entered_load(p, vm_radix_smr)); >> >> > } >> >> > - /* This is unreachable, silence gcc. */ >> >> > - panic("vm_radix_node_get: Unknown access type"); >> >> > + __unreachable(); >> >> > } >> >> > >> >> > static __inline void >> >> >> >> What does __unreachable() do if the code ever becomes reachable? Like >> >> if a new enum value is added and this switch doesn't get updated? >> >> >> > >> > __unreachable doesn't help here, but the compiler will error out on >> > the switch() if all enum values aren't addressed and there's no >> > default: case. >> > >> > IMO, compilers could/should become smart enough to error if there's an >> > explicit __builtin_unreachable() and they can trivially determine that >> > all paths will terminate before this, independent of -Werror=switch*. >> > _______________________________________________ >> >> I think this is way too iffy, check this program: >> >> >> #include >> >> int >> main(void) >> { >> >> __builtin_unreachable(); >> printf("test\n"); >> } >> >> Neither clang nor gcc warn about this and both stop code generation >> past the statement. Thus I think for production kernels __unreachable >> can expand to to the builtin, but for debug it should be a panic with >> func/file/line. This would work fine in terms of analysis since panic >> is noreturn or so. > > I guess I'll repeat this again: our build will error out if this > becomes reachable, because we compile with -Werror=switch. There's no > point in having a panic that cannot physically be reached, you will > never see the func/file/line. > The keyword in the current lends itself towards misuse and according to my grep this is precisely what happened in the tree: ddb/db_expr.c: switch(t) { .. default: __unreachable(); } similarly in dev/amdtemp/amdtemp.c Another shady user is in dev/nvdimm/nvdimm.c -- read_label has few loops and the function ends with __unreachable() Seems to be in all these cases the intent was to "warn at compilation time if we ever get here and panic at runtime at least with debug" In contrast, the keyword is to explicitly tell the compiler that given piece of code will never be executed no matter it thinks. Thus the least which can be done is injecting a panic into it, according to the original review which added it https://reviews.freebsd.org/D2536 llvm developers do an equivalent (assert(0 && "blah")). -- Mateusz Guzik From owner-svn-src-all@freebsd.org Sat Feb 22 17:44:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 659DE247110; Sat, 22 Feb 2020 17:44:29 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Pwgd0Pbkz47B8; Sat, 22 Feb 2020 17:44:29 +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 ECBF22727E; Sat, 22 Feb 2020 17:44:28 +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 01MHiSfS026423; Sat, 22 Feb 2020 17:44:28 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MHiS6V026421; Sat, 22 Feb 2020 17:44:28 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202002221744.01MHiS6V026421@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sat, 22 Feb 2020 17:44:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358249 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 358249 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 17:44:29 -0000 Author: markj Date: Sat Feb 22 17:44:28 2020 New Revision: 358249 URL: https://svnweb.freebsd.org/changeset/base/358249 Log: Constify uma_zcache_create() and uma_zsecond_create()'s "name" argument. It is already internally handled as a pointer to a const string, in particular by uma_zcreate(). Fix indentation while here. MFC after: 1 week Modified: head/sys/vm/uma.h head/sys/vm/uma_core.c Modified: head/sys/vm/uma.h ============================================================================== --- head/sys/vm/uma.h Sat Feb 22 16:20:04 2020 (r358248) +++ head/sys/vm/uma.h Sat Feb 22 17:44:28 2020 (r358249) @@ -213,8 +213,8 @@ uma_zone_t uma_zcreate(const char *name, size_t size, * A pointer to a structure which is intended to be opaque to users of * the interface. The value may be null if the wait flag is not set. */ -uma_zone_t uma_zsecond_create(char *name, uma_ctor ctor, uma_dtor dtor, - uma_init zinit, uma_fini zfini, uma_zone_t master); +uma_zone_t uma_zsecond_create(const char *name, uma_ctor ctor, uma_dtor dtor, + uma_init zinit, uma_fini zfini, uma_zone_t master); /* * Create cache-only zones. @@ -225,9 +225,9 @@ uma_zone_t uma_zsecond_create(char *name, uma_ctor cto * zones. The 'arg' parameter is passed to import/release and is caller * specific. */ -uma_zone_t uma_zcache_create(char *name, int size, uma_ctor ctor, uma_dtor dtor, - uma_init zinit, uma_fini zfini, uma_import zimport, - uma_release zrelease, void *arg, int flags); +uma_zone_t uma_zcache_create(const char *name, int size, uma_ctor ctor, + uma_dtor dtor, uma_init zinit, uma_fini zfini, uma_import zimport, + uma_release zrelease, void *arg, int flags); /* * Definitions for uma_zcreate flags Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Sat Feb 22 16:20:04 2020 (r358248) +++ head/sys/vm/uma_core.c Sat Feb 22 17:44:28 2020 (r358249) @@ -3014,8 +3014,8 @@ uma_zcreate(const char *name, size_t size, uma_ctor ct /* See uma.h */ uma_zone_t -uma_zsecond_create(char *name, uma_ctor ctor, uma_dtor dtor, - uma_init zinit, uma_fini zfini, uma_zone_t master) +uma_zsecond_create(const char *name, uma_ctor ctor, uma_dtor dtor, + uma_init zinit, uma_fini zfini, uma_zone_t master) { struct uma_zctor_args args; uma_keg_t keg; @@ -3042,9 +3042,9 @@ uma_zsecond_create(char *name, uma_ctor ctor, uma_dtor /* See uma.h */ uma_zone_t -uma_zcache_create(char *name, int size, uma_ctor ctor, uma_dtor dtor, - uma_init zinit, uma_fini zfini, uma_import zimport, - uma_release zrelease, void *arg, int flags) +uma_zcache_create(const char *name, int size, uma_ctor ctor, uma_dtor dtor, + uma_init zinit, uma_fini zfini, uma_import zimport, uma_release zrelease, + void *arg, int flags) { struct uma_zctor_args args; From owner-svn-src-all@freebsd.org Sat Feb 22 17:56:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8F4B52474FB; Sat, 22 Feb 2020 17:56:10 +0000 (UTC) (envelope-from salvadore@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Pwx63Fg8z4WyZ; Sat, 22 Feb 2020 17:56:10 +0000 (UTC) (envelope-from salvadore@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 62DF727478; Sat, 22 Feb 2020 17:56:10 +0000 (UTC) (envelope-from salvadore@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01MHuAm0032242; Sat, 22 Feb 2020 17:56:10 GMT (envelope-from salvadore@FreeBSD.org) Received: (from salvadore@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MHuAJ7032241; Sat, 22 Feb 2020 17:56:10 GMT (envelope-from salvadore@FreeBSD.org) Message-Id: <202002221756.01MHuAJ7032241@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: salvadore set sender to salvadore@FreeBSD.org using -f From: Lorenzo Salvadore Date: Sat, 22 Feb 2020 17:56:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358250 - head/share/misc X-SVN-Group: head X-SVN-Commit-Author: salvadore X-SVN-Commit-Paths: head/share/misc X-SVN-Commit-Revision: 358250 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 17:56:10 -0000 Author: salvadore (ports committer) Date: Sat Feb 22 17:56:09 2020 New Revision: 358250 URL: https://svnweb.freebsd.org/changeset/base/358250 Log: Add myself (salvadore) as a ports committer Approved by: gerald (mentor) Modified: head/share/misc/committers-ports.dot Modified: head/share/misc/committers-ports.dot ============================================================================== --- head/share/misc/committers-ports.dot Sat Feb 22 17:44:28 2020 (r358249) +++ head/share/misc/committers-ports.dot Sat Feb 22 17:56:09 2020 (r358250) @@ -238,6 +238,7 @@ rodrigo [label="Rodrigo Osorio\nrodrigo@FreeBSD.org\n2 romain [label="Romain Tartiere\nromain@FreeBSD.org\n2010/01/24"] rpaulo [label="Rui Paulo\nrpaulo@FreeBSD.org\n2014/07/15"] sahil [label="Sahil Tandon\nsahil@FreeBSD.org\n2010/04/11"] +salvadore [label="Lorenzo Salvadore\nsalvadore@FreeBSD.org\n2020/02/21"] samm [label="Alex Samorukov\nsamm@FreeBSD.org\n2019/10/09"] sat [label="Andrew Pantyukhin\nsat@FreeBSD.org\n2006/05/06"] sbruno [label="Sean Bruno\nsbruno@FreeBSD.org\n2014/09/14"] @@ -459,6 +460,8 @@ garga -> rnoland garga -> vd garga -> wxs garga -> xride + +gerald -> salvadore glarkin -> avl glarkin -> cs From owner-svn-src-all@freebsd.org Sat Feb 22 18:06:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D7132247AED; Sat, 22 Feb 2020 18:06:04 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Px8X5LLkz3DCq; Sat, 22 Feb 2020 18:06:04 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id A36076643; Sat, 22 Feb 2020 18:06:04 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qk1-f169.google.com with SMTP id d11so5039567qko.8; Sat, 22 Feb 2020 10:06:04 -0800 (PST) X-Gm-Message-State: APjAAAWzE6/8CK8Kw3IZq68uqpg2Ftzs99KErky6qSAIQL+qYQoruzfE dBrxJTbL0TuT6Q15f/uAlwbdVOJ/KDMwIrVfbA0= X-Google-Smtp-Source: APXvYqzWvbQCSRrogS2fUeTtnqFH+dPSa8Pieo9TFKlbICm/PrvIBFIDAYoM0zmU1Opz+IFcU1bMXeiQN/F6eVK5Pj0= X-Received: by 2002:a37:717:: with SMTP id 23mr37125404qkh.34.1582394764039; Sat, 22 Feb 2020 10:06:04 -0800 (PST) MIME-Version: 1.0 References: <202002221620.01MGK46E072303@repo.freebsd.org> In-Reply-To: From: Kyle Evans Date: Sat, 22 Feb 2020 12:05:53 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r358248 - head/sys/vm To: Mateusz Guzik Cc: svn-src-head , svn-src-all , src-committers Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 18:06:04 -0000 On Sat, Feb 22, 2020 at 11:18 AM Mateusz Guzik wrote: > > On 2/22/20, Kyle Evans wrote: > > On Sat, Feb 22, 2020 at 10:44 AM Mateusz Guzik wrote: > >> > >> On 2/22/20, Kyle Evans wrote: > >> > On Sat, Feb 22, 2020 at 10:25 AM Ian Lepore wrote: > >> >> > >> >> On Sat, 2020-02-22 at 16:20 +0000, Kyle Evans wrote: > >> >> > Author: kevans > >> >> > Date: Sat Feb 22 16:20:04 2020 > >> >> > New Revision: 358248 > >> >> > URL: https://svnweb.freebsd.org/changeset/base/358248 > >> >> > > >> >> > Log: > >> >> > vm_radix: prefer __builtin_unreachable() to an unreachable panic() > >> >> > > >> >> > This provides the needed hint to GCC and offers an annotation for > >> >> > readers to > >> >> > observe that it's in-fact impossible to hit this point. We'll get > >> >> > hit > >> >> > with a > >> >> > a -Wswitch error if the enum applicable to the switch above were > >> >> > to > >> >> > get > >> >> > expanded without the new value(s) being handled. > >> >> > > >> >> > Modified: > >> >> > head/sys/vm/vm_radix.c > >> >> > > >> >> > Modified: head/sys/vm/vm_radix.c > >> >> > ============================================================================== > >> >> > --- head/sys/vm/vm_radix.c Sat Feb 22 13:23:27 2020 > >> >> > (r358247) > >> >> > +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 2020 > >> >> > (r358248) > >> >> > @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum > >> >> > vm_radix_access > >> >> > case SMR: > >> >> > return (smr_entered_load(p, vm_radix_smr)); > >> >> > } > >> >> > - /* This is unreachable, silence gcc. */ > >> >> > - panic("vm_radix_node_get: Unknown access type"); > >> >> > + __unreachable(); > >> >> > } > >> >> > > >> >> > static __inline void > >> >> > >> >> What does __unreachable() do if the code ever becomes reachable? Like > >> >> if a new enum value is added and this switch doesn't get updated? > >> >> > >> > > >> > __unreachable doesn't help here, but the compiler will error out on > >> > the switch() if all enum values aren't addressed and there's no > >> > default: case. > >> > > >> > IMO, compilers could/should become smart enough to error if there's an > >> > explicit __builtin_unreachable() and they can trivially determine that > >> > all paths will terminate before this, independent of -Werror=switch*. > >> > _______________________________________________ > >> > >> I think this is way too iffy, check this program: > >> > >> > >> #include > >> > >> int > >> main(void) > >> { > >> > >> __builtin_unreachable(); > >> printf("test\n"); > >> } > >> > >> Neither clang nor gcc warn about this and both stop code generation > >> past the statement. Thus I think for production kernels __unreachable > >> can expand to to the builtin, but for debug it should be a panic with > >> func/file/line. This would work fine in terms of analysis since panic > >> is noreturn or so. > > > > I guess I'll repeat this again: our build will error out if this > > becomes reachable, because we compile with -Werror=switch. There's no > > point in having a panic that cannot physically be reached, you will > > never see the func/file/line. > > > > The keyword in the current lends itself towards misuse and according > to my grep this is precisely what happened in the tree: > > ddb/db_expr.c: > > switch(t) { > .. > default: > __unreachable(); > } > > similarly in dev/amdtemp/amdtemp.c > The ddb one reads like crap at first, but the context does make it a little better- within that context, it's easily proven that all of the reachable cases are already handled. amdtemp looks more like an unexpected bug waiting to happen. > Another shady user is in dev/nvdimm/nvdimm.c -- read_label has few > loops and the function ends with __unreachable() > > Seems to be in all these cases the intent was to "warn at compilation > time if we ever get here and panic at runtime at least with debug" > > In contrast, the keyword is to explicitly tell the compiler that given > piece of code will never be executed no matter it thinks. Thus the > least which can be done is injecting a panic into it, according to the > original review which added it https://reviews.freebsd.org/D2536 llvm > developers do an equivalent (assert(0 && "blah")). > I don't see much use in adding a panic for this specific call site - it was deliberately structured for optimization, and the odds of it getting refactored in a way that anything after the switch becomes unreachable unintentionally are likely pretty slim. However, especially given the other cases you've pointed out, I do see the utility in general and I'm preparing a diff that will more generally turn __unreachable into a panic under INVARIANTS instead of dirtying up this particular call-site with the logic. Thanks, Kyle Evans From owner-svn-src-all@freebsd.org Sat Feb 22 18:50:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 41EE6248F9E; Sat, 22 Feb 2020 18:50:06 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Py7L0CFHz46mn; Sat, 22 Feb 2020 18:50:06 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.3] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id 823D06AFA; Sat, 22 Feb 2020 18:50:05 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Subject: Re: svn commit: r358153 - head/usr.sbin/services_mkdb To: Florian Smeets , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202002200354.01K3s8ib077553@repo.freebsd.org> <03606e17-08fc-f575-95f5-c3c5128bff4f@smeets.xyz> From: Pedro Giffuni Organization: FreeBSD Message-ID: Date: Sat, 22 Feb 2020 13:50:05 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <03606e17-08fc-f575-95f5-c3c5128bff4f@smeets.xyz> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 18:50:06 -0000 On 22/02/2020 11:18, Florian Smeets wrote: > On 20.02.20 04:54, Pedro F. Giffuni wrote: >> Author: pfg >> Date: Thu Feb 20 03:54:07 2020 >> New Revision: 358153 >> URL: https://svnweb.freebsd.org/changeset/base/358153 >> >> Log: >> /etc/services: attempt bring the database to this century. >> >> -smtps 465/tcp #smtp protocol over TLS/SSL (was ssmtp) >> -smtps 465/udp #smtp protocol over TLS/SSL (was ssmtp) > I'm not sure how removals of services have been handled in the past. > This change broke loading of my pf rule set, as I had smtps in there. Excellent! Not that the change broke something but that since we had to revert it we get a second chance to review such things. > I'm not saying that this change is wrong, but I think removing entries > from services can break all kinds of stuff. Not just firewall rule sets, > also scripts and thinking more about it, it will most certainly also > break postfix as it also uses smtps as an alias for port 465 in its > master.cnf According to latest IANA registy: urd                 465        tcp    URL Rendezvous Directory for [Toerless_Eckert] [Toerless_Eckert]                                       SSM submissions         465        tcp    Message Submission over TLS [IESG] [IETF_Chair] 2017-12-12                [RFC8314]                                       protocol igmpv3lite          465        udp    IGMP over UDP for SSM [Toerless_Eckert] [Toerless_Eckert] Anything that can be done upstream to sort this out? > I guess this needs to be at least mentioned in the release notes, and > maybe smtps kept as an alias, and check all the others that were removed? For the time being, we can absolutely keep the legacy value with a conflict note. I wish the services list were a bit easier to maintain for such situations. Pedro. From owner-svn-src-all@freebsd.org Sat Feb 22 18:53:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 07363249318; Sat, 22 Feb 2020 18:53:47 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mail.allbsd.org (mx.allbsd.org [IPv6:2001:2f0:104:e001::41]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail.allbsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PyCZ0SzCz4Fl8; Sat, 22 Feb 2020 18:53:45 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mail-d.allbsd.org ([IPv6:2409:11:a740:4700:58:65ff:fe00:b0b]) (authenticated bits=56) by mail.allbsd.org (8.15.2/8.15.2) with ESMTPSA id 01MIrIMK074003 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=OK) (Client CN "/CN=mail-d.allbsd.org", Issuer "/C=US/O=Let's+20Encrypt/CN=Let's+20Encrypt+20Authority+20X3"); Sun, 23 Feb 2020 03:53:28 +0900 (JST) (envelope-from hrs@FreeBSD.org) Received: from localhost (alph.allbsd.org [192.168.0.10]) (authenticated bits=0) by mail-d.allbsd.org (8.15.2/8.15.2) with ESMTPA id 01MIrCLC095422; Sun, 23 Feb 2020 03:53:13 +0900 (JST) (envelope-from hrs@FreeBSD.org) Date: Sun, 23 Feb 2020 03:52:52 +0900 (JST) Message-Id: <20200223.035252.1359423210478514412.hrs@FreeBSD.org> To: kevans@FreeBSD.org, cem@freebsd.org, antoine@freebsd.org Cc: lwhsu@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r358152 - head/bin/sh From: Hiroki Sato In-Reply-To: References: X-Old-PGPkey-fingerprint: BDB3 443F A5DD B3D0 A530 FFD7 4F2C D3D8 2793 CF2D X-PGPkey-fingerprint: 6C0D 2353 27CF 80C7 901E FDD2 DBB0 7DC6 6F1F 737F X-Mailer: Mew version 6.8 on Emacs 26.3 Mime-Version: 1.0 Content-Type: Multipart/Signed; protocol="application/pgp-signature"; micalg=pgp-sha512; boundary="--Security_Multipart(Sun_Feb_23_03_52_52_2020_276)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.2 (mail.allbsd.org [IPv6:2001:2f0:104:e001:0:0:0:41]); Sun, 23 Feb 2020 03:53:34 +0900 (JST) X-Rspamd-Queue-Id: 48PyCZ0SzCz4Fl8 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.78 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.79)[-0.785,0]; ASN(0.00)[asn:7514, ipnet:2001:2f0::/32, country:JP]; NEURAL_HAM_LONG(-0.99)[-0.994,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 18:53:47 -0000 ----Security_Multipart(Sun_Feb_23_03_52_52_2020_276)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Conrad Meyer wrote in : ce> Given the report and looking at the change, I suspect the problem is ce> the promotion of '-residue' from size_t (unsigned 32-bit on i386) to ce> off_t (signed 64-bit). Something like '-(off_t)residue' or even ce> 'off_t residue;' should fix it. Yes, r358235 is the correct fix. I am sorry for the breakage and thank you for fixing it quickly. -- Hiroki ----Security_Multipart(Sun_Feb_23_03_52_52_2020_276)-- Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iMkEABMKAC4WIQRsDSNTJ8+Ax5Ae/dLbsH3Gbx9zfwUCXlF4hBAcaHJzQGZyZWVi c2Qub3JnAAoJENuwfcZvH3N/7GwCCQF9bck/PMytWUxnFUbUK/LQesP36QdPL3lh BIBDMxlXSydCUHe8RaC78j0niIi5CC3ZTAUsRRuw17CXWSezqZvVkAIHbzmSTN6x BVCYenxOjXRe8KUVnYPLv004tIapzJSq7VL/+Ned0f41F5R38BKdtKozjETWJfW8 wCL+D0QaeI1WWHA= =W9aI -----END PGP SIGNATURE----- ----Security_Multipart(Sun_Feb_23_03_52_52_2020_276)---- From owner-svn-src-all@freebsd.org Sat Feb 22 19:01:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BDF6124961C; Sat, 22 Feb 2020 19:01:49 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "tensor.andric.com", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PyNr2Q18z4Vbs; Sat, 22 Feb 2020 19:01:48 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from [IPv6:2001:470:7a58::b8df:abc8:d12f:4fd2] (unknown [IPv6:2001:470:7a58:0:b8df:abc8:d12f:4fd2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 44A432CB41; Sat, 22 Feb 2020 20:01:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=andric.com; s=201904; t=1582398100; bh=fJ35Wuwd/5febS7ZP1tdlW0LXHfRj3wu8F0yo4/gb5U=; h=From:Subject:Date:In-Reply-To:Cc:To:References:From; b=NSHiC4bcR7Dv4Wt/nDQhaKNVK0Pymv21hzmw8RDDC4vl45Hdq1xCEKw3Z/9WySSVc xP7WsOj3mkGRp3jo1fWwmGDRIapkM5HjV5DpZbEnToSdqqPP5KHyLrOQ4X4YGvpk8m j296VLJLkdMIfTqrBYjFas6H0urxePIxrpXfX2XfCuQxhk5KVjoAvQpm73aRQ0pBgW DJHd0PpW/g5xN0hw+54zLb+0GlLdvdQpfr8RikVzJKcnepHR87L+WfrnZYPp8sqD9d moIhaxld1PInrFqGyRbhRrzc9SVa0WzuxgWtUgA5Kq4R/T+CN7lSJcdoPNlu7V80a9 6Iz4zYzKbvuAw== From: Dimitry Andric Message-Id: <6D39FAD8-E581-42A8-97B4-EE63800D78A4@andric.com> Content-Type: multipart/signed; boundary="Apple-Mail=_4EE71C4E-25DB-4EEE-BBA3-0EE610EB99DD"; protocol="application/pgp-signature"; micalg=pgp-sha1 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: svn commit: r358248 - head/sys/vm Date: Sat, 22 Feb 2020 20:01:31 +0100 In-Reply-To: Cc: Kyle Evans , Ian Lepore , svn-src-head , svn-src-all , src-committers To: Mateusz Guzik References: <202002221620.01MGK46E072303@repo.freebsd.org> X-Mailer: Apple Mail (2.3445.104.11) X-Rspamd-Queue-Id: 48PyNr2Q18z4Vbs X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=andric.com header.s=201904 header.b=NSHiC4bc; dmarc=pass (policy=none) header.from=andric.com; spf=pass (mx1.freebsd.org: domain of dimitry@andric.com designates 87.251.56.140 as permitted sender) smtp.mailfrom=dimitry@andric.com X-Spamd-Result: default: False [-4.93 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[andric.com:s=201904]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:87.251.56.140]; MV_CASE(0.50)[]; HAS_ATTACHMENT(0.00)[]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[andric.com:+]; DMARC_POLICY_ALLOW(-0.50)[andric.com,none]; SIGNED_PGP(-2.00)[]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-0.33)[asn: 12859(-1.68), country: NL(0.03)]; ASN(0.00)[asn:12859, ipnet:87.251.32.0/19, country:NL]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 19:01:49 -0000 --Apple-Mail=_4EE71C4E-25DB-4EEE-BBA3-0EE610EB99DD Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On 22 Feb 2020, at 17:44, Mateusz Guzik wrote: >=20 > On 2/22/20, Kyle Evans wrote: >> On Sat, Feb 22, 2020 at 10:25 AM Ian Lepore wrote: >>>=20 >>> On Sat, 2020-02-22 at 16:20 +0000, Kyle Evans wrote: >>>> Author: kevans >>>> Date: Sat Feb 22 16:20:04 2020 >>>> New Revision: 358248 >>>> URL: https://svnweb.freebsd.org/changeset/base/358248 >>>>=20 >>>> Log: >>>> vm_radix: prefer __builtin_unreachable() to an unreachable panic() >>>>=20 >>>> This provides the needed hint to GCC and offers an annotation for >>>> readers to >>>> observe that it's in-fact impossible to hit this point. We'll get = hit >>>> with a >>>> a -Wswitch error if the enum applicable to the switch above were = to >>>> get >>>> expanded without the new value(s) being handled. >>>>=20 >>>> Modified: >>>> head/sys/vm/vm_radix.c >>>>=20 >>>> Modified: head/sys/vm/vm_radix.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/vm/vm_radix.c Sat Feb 22 13:23:27 2020 = (r358247) >>>> +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 2020 = (r358248) >>>> @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum >>>> vm_radix_access >>>> case SMR: >>>> return (smr_entered_load(p, vm_radix_smr)); >>>> } >>>> - /* This is unreachable, silence gcc. */ >>>> - panic("vm_radix_node_get: Unknown access type"); >>>> + __unreachable(); >>>> } >>>>=20 >>>> static __inline void >>>=20 >>> What does __unreachable() do if the code ever becomes reachable? = Like >>> if a new enum value is added and this switch doesn't get updated? >>>=20 >>=20 >> __unreachable doesn't help here, but the compiler will error out on >> the switch() if all enum values aren't addressed and there's no >> default: case. >>=20 >> IMO, compilers could/should become smart enough to error if there's = an >> explicit __builtin_unreachable() and they can trivially determine = that >> all paths will terminate before this, independent of -Werror=3Dswitch*.= >> _______________________________________________ >=20 > I think this is way too iffy, check this program: >=20 >=20 > #include >=20 > int > main(void) > { >=20 > __builtin_unreachable(); > printf("test\n"); > } >=20 > Neither clang nor gcc warn about this and both stop code generation > past the statement. Indeed, that is exactly the intent. See: = https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbui= ltin_005funreachable "If control flow reaches the point of the __builtin_unreachable, the program is undefined. It is useful in situations where the compiler cannot deduce the unreachability of the code." E.g. this is *not* meant as a way to enforce the program to abort at runtime, if the supposedly unreachable part is actually reached. For this purpose, one should use an abort() or panic() function call, with such functions being annotated to never return. -Dimitry --Apple-Mail=_4EE71C4E-25DB-4EEE-BBA3-0EE610EB99DD Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.2 iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCXlF6iwAKCRCwXqMKLiCW o+LFAKDkDeedeFuXnYA+mz0c6EBY9BQHiACgz5xy6bzXcWSFVoj8uqYyquFHfkk= =tmbs -----END PGP SIGNATURE----- --Apple-Mail=_4EE71C4E-25DB-4EEE-BBA3-0EE610EB99DD-- From owner-svn-src-all@freebsd.org Sat Feb 22 19:13:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 485C3249977 for ; Sat, 22 Feb 2020 19:13:15 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound2m.ore.mailhop.org (outbound2m.ore.mailhop.org [54.149.155.156]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48Pyf26DGzz3Ljk for ; Sat, 22 Feb 2020 19:13:14 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1582398792; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=NvvofwJAqnCqiu6pCZyqi7dCZ5C2Of38pB+6+TbbUYvumljM7Tj/lPcBtY3PtJ8NldhDBZ0QQcBYP 2pVTeUSDHCMVHJPjkH3VpXAZCPQ3IX6OchJARec2ZwVXG0qnW8KhfHvu2KS/v7+1SdwVw3Jg8HugfT o9Oc1e8IPVSkh7yBCRuj6k0RJBTiwmE2CSruqVEssyWLMzNmWmG8pICswJJX0soColv0DriRIPu9Ob jkO1mUaqFIXABL78oMWRCV1BGD5l78SQp1q3oncz4euT6IJcwWkh9Dw8jb8J/gcEkGj7Uja9cp6LVT yhqiLw7iNnDbLZL07/O/iNXV/tCN2tA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:dkim-signature:from; bh=AhSOT+Vz32L60NzVlHTOC3q9jxCgsaA9hNu6oyNhre4=; b=uFnH8YPR08CKm/G3JQt7YDRO6ajKIh3zc6ifySsbpELGQgg7iSXwfbG6DVwBcqwX0Ws0aKUFW/AqI LfsHeHS0ze/mi9ZmPk+qSO/vFdhMOwHZE86Z04U5CFfBStnGkn2l1MCR//GCLEMPR7CRTLYK73R5uN KVXX51Nam/Vj+XVHz1fgwQhkjSzj4ifzsWAt4Z4FUBYdXLHRSvh7shWv7OUBKwXlP7mVrEnGGjTM3k mMcY+dGBi0qEtlanVBuW8s3KO60908Yl6cEiODqgWakiaLdrAsm04BnADx3tj9XG4UdejPkGC24HP9 HMl8A+ScyKXltlJk6hPStZybUCDGHKw== ARC-Authentication-Results: i=1; outbound4.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:from; bh=AhSOT+Vz32L60NzVlHTOC3q9jxCgsaA9hNu6oyNhre4=; b=RBeGHWhU3ieGbQChr1UijGguVoagHYGcUEgYeGnk1WEomdKOqqtKaOzEb5UUU3kZrqEka+iv49GcJ jELa8d2g9Mig/iwzhM6Ny7wp+JA873DUfSp8/ppr769mZ/QS5/bftD0I6sOO58oaOOPclxVtvfKlqg B5gM8ZAwrU2hXmJG6QJHpyNRwxFWZ5UUpDQcmANmGb1fuyo3Wgs1fNRLMkbnwwkj/GnTiTn9RziDjF EuozX8tlLPsvANnWrqUkSzPolf2VxlMWyPHUJcN0PHstXDCcZhcjXuIOBenAGI3VDGJUZs+0FmLFH3 nC/0ZjCeGlsFY5RUuXUocG5NX57c5sw== X-MHO-RoutePath: aGlwcGll X-MHO-User: 5d14ce98-55a7-11ea-9eb3-25e2dfa9fa8d X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [67.177.211.60]) by outbound4.ore.mailhop.org (Halon) with ESMTPSA id 5d14ce98-55a7-11ea-9eb3-25e2dfa9fa8d; Sat, 22 Feb 2020 19:13:11 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id 01MJD9uS016299; Sat, 22 Feb 2020 12:13:09 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: Subject: Re: svn commit: r358248 - head/sys/vm From: Ian Lepore To: Dimitry Andric , Mateusz Guzik Cc: Kyle Evans , svn-src-head , svn-src-all , src-committers Date: Sat, 22 Feb 2020 12:13:09 -0700 In-Reply-To: <6D39FAD8-E581-42A8-97B4-EE63800D78A4@andric.com> References: <202002221620.01MGK46E072303@repo.freebsd.org> <6D39FAD8-E581-42A8-97B4-EE63800D78A4@andric.com> Content-Type: text/plain; charset="ASCII" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 48Pyf26DGzz3Ljk X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.96 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.96)[-0.963,0]; ASN(0.00)[asn:16509, ipnet:54.148.0.0/15, country:US]; NEURAL_HAM_LONG(-1.00)[-0.997,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 19:13:15 -0000 On Sat, 2020-02-22 at 20:01 +0100, Dimitry Andric wrote: > On 22 Feb 2020, at 17:44, Mateusz Guzik wrote: > > > > On 2/22/20, Kyle Evans wrote: > > > On Sat, Feb 22, 2020 at 10:25 AM Ian Lepore > > > wrote: > > > > > > > > On Sat, 2020-02-22 at 16:20 +0000, Kyle Evans wrote: > > > > > Author: kevans > > > > > Date: Sat Feb 22 16:20:04 2020 > > > > > New Revision: 358248 > > > > > URL: https://svnweb.freebsd.org/changeset/base/358248 > > > > > > > > > > Log: > > > > > vm_radix: prefer __builtin_unreachable() to an unreachable > > > > > panic() > > > > > > > > > > This provides the needed hint to GCC and offers an > > > > > annotation for > > > > > readers to > > > > > observe that it's in-fact impossible to hit this point. > > > > > We'll get hit > > > > > with a > > > > > a -Wswitch error if the enum applicable to the switch above > > > > > were to > > > > > get > > > > > expanded without the new value(s) being handled. > > > > > > > > > > Modified: > > > > > head/sys/vm/vm_radix.c > > > > > > > > > > Modified: head/sys/vm/vm_radix.c > > > > > ============================================================= > > > > > ================= > > > > > --- head/sys/vm/vm_radix.c Sat Feb 22 13:23:27 > > > > > 2020 (r358247) > > > > > +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 > > > > > 2020 (r358248) > > > > > @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum > > > > > vm_radix_access > > > > > case SMR: > > > > > return (smr_entered_load(p, vm_radix_smr)); > > > > > } > > > > > - /* This is unreachable, silence gcc. */ > > > > > - panic("vm_radix_node_get: Unknown access type"); > > > > > + __unreachable(); > > > > > } > > > > > > > > > > static __inline void > > > > > > > > What does __unreachable() do if the code ever becomes > > > > reachable? Like > > > > if a new enum value is added and this switch doesn't get > > > > updated? > > > > > > > > > > __unreachable doesn't help here, but the compiler will error out > > > on > > > the switch() if all enum values aren't addressed and there's no > > > default: case. > > > > > > IMO, compilers could/should become smart enough to error if > > > there's an > > > explicit __builtin_unreachable() and they can trivially determine > > > that > > > all paths will terminate before this, independent of > > > -Werror=switch*. > > > _______________________________________________ > > > > I think this is way too iffy, check this program: > > > > > > #include > > > > int > > main(void) > > { > > > > __builtin_unreachable(); > > printf("test\n"); > > } > > > > Neither clang nor gcc warn about this and both stop code generation > > past the statement. > > Indeed, that is exactly the intent. See: > > https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005funreachable > > "If control flow reaches the point of the __builtin_unreachable, the > program is undefined. It is useful in situations where the compiler > cannot deduce the unreachability of the code." > > E.g. this is *not* meant as a way to enforce the program to abort at > runtime, if the supposedly unreachable part is actually reached. > > For this purpose, one should use an abort() or panic() function call, > with such functions being annotated to never return. > > -Dimitry > The problem is, people will see usages such as what Kyle did, where the code truly is unreachable (due to -Werror=switch), and not realizing that's why it's valid there, they'll assume it's a type of assert- unreachable and copy it/use it in other places as if that's what it was for. So, IMO, using it should be exceedingly rare and there should be a comment nearby about why it's valid in that context, or our __unreachable cover for it should panic on INVARIANTS, as Kyle proposed in an earlier reply. -- Ian From owner-svn-src-all@freebsd.org Sat Feb 22 19:14:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DEAEA249A5D; Sat, 22 Feb 2020 19:14:54 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Pygy4fxCz3PxT; Sat, 22 Feb 2020 19:14:54 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.3] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id 9B0316E8D; Sat, 22 Feb 2020 19:14:53 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Subject: Re: svn commit: r358152 - head/bin/sh To: Kyle Evans , Li-Wen Hsu Cc: Antoine Brodin , Hiroki Sato , src-committers , svn-src-all , svn-src-head References: <202002200301.01K31RTk043426@repo.freebsd.org> From: Pedro Giffuni Organization: FreeBSD Message-ID: <6f2029df-e08b-65eb-fa28-ca4dcdd351c8@FreeBSD.org> Date: Sat, 22 Feb 2020 14:14:53 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 19:14:55 -0000 For the record ... On 21/02/2020 22:31, Kyle Evans wrote: > On Fri, Feb 21, 2020 at 3:53 PM Li-Wen Hsu wrote: >> On Sat, Feb 22, 2020 at 4:58 AM Antoine Brodin wrote: >>> On Thu, Feb 20, 2020 at 4:01 AM Hiroki Sato wrote: >>>> Author: hrs >>>> Date: Thu Feb 20 03:01:27 2020 >>>> New Revision: 358152 >>>> URL: https://svnweb.freebsd.org/changeset/base/358152 >>>> >>>> Log: >>>> Improve performance of "read" built-in command when using a seekable >>>> fd. >>>> >>>> The read built-in command calls read(2) with a 1-byte buffer because >>>> newline characters need to be detected even on a byte stream which >>>> comes from a non-seekable file descriptor. Because of this, the >>>> following script calls >6,000 read(2) to show a 6KiB file: >>>> >>>> while read IN; do echo "$IN"; done < /COPYRIGHT >>>> >>>> When the input byte stream is seekable, it is possible to read a data >>>> block and then reposition the file pointer to where a newline >>>> character found. This change adds a small buffer to do this and >>>> reduces the number of read(2) calls. >>>> >>>> Theoretically, multiple built-in commands reading the same seekable >>>> byte stream in a single pipe chain can share the buffer. However, >>>> this change just makes a single invocation of the read built-in >>>> allocate a buffer and deallocate it every time for simplicity. >>>> Although this causes read(2) to read the same regions multiple times, >>>> the performance penalty should be small compared to the reduction of >>>> read(2) calls. >>>> >>>> Reviewed by: jilles >>>> MFC after: 1 week >>>> Differential Revision: https://reviews.freebsd.org/D23747 >>> This seems to be broken on at least i386. >>> Please either fix or revert. >>> >>> Antoine (with hat: portmgr) >> Could you provide more detail? I'm worried because I didn't see >> related regression from the recent test results. We may need to add >> more test against the breakage you mentioned. >> > This trivially failed with the example in the commit message; only the > first line would be output. It also triggered a failure of > functional_test:read2 in /usr/tests/bin/sh/builtins on i386 (and all > of the other platforms with a 32-bit size_t), which would exit with a > non-zero status code. > > I tested and deployed the fix suggested by cem@ as r358235 by just > making residue an off_t, This is an example case of why it is important to keep the i386 port building and running. If we don't have a 32 bit port that is easy to build and test many bugs like these can easily go through. Cheers, Pedro. From owner-svn-src-all@freebsd.org Sat Feb 22 19:21:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 30CB2249E04; Sat, 22 Feb 2020 19:21:23 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PyqQ6rRWz4804; Sat, 22 Feb 2020 19:21:22 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.3] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id EB3C06E8E; Sat, 22 Feb 2020 19:21:21 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Subject: Re: svn commit: r358248 - head/sys/vm To: Ian Lepore , Dimitry Andric , Mateusz Guzik Cc: Kyle Evans , svn-src-head , svn-src-all , src-committers References: <202002221620.01MGK46E072303@repo.freebsd.org> <6D39FAD8-E581-42A8-97B4-EE63800D78A4@andric.com> From: Pedro Giffuni Organization: FreeBSD Message-ID: Date: Sat, 22 Feb 2020 14:21:22 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 19:21:23 -0000 On 22/02/2020 14:13, Ian Lepore wrote: > On Sat, 2020-02-22 at 20:01 +0100, Dimitry Andric wrote: >> On 22 Feb 2020, at 17:44, Mateusz Guzik wrote: >>> On 2/22/20, Kyle Evans wrote: >>>> On Sat, Feb 22, 2020 at 10:25 AM Ian Lepore >>>> wrote: >>>>> On Sat, 2020-02-22 at 16:20 +0000, Kyle Evans wrote: >>>>>> Author: kevans >>>>>> Date: Sat Feb 22 16:20:04 2020 >>>>>> New Revision: 358248 >>>>>> URL: https://svnweb.freebsd.org/changeset/base/358248 >>>>>> >>>>>> Log: >>>>>> vm_radix: prefer __builtin_unreachable() to an unreachable >>>>>> panic() >>>>>> >>>>>> This provides the needed hint to GCC and offers an >>>>>> annotation for >>>>>> readers to >>>>>> observe that it's in-fact impossible to hit this point. >>>>>> We'll get hit >>>>>> with a >>>>>> a -Wswitch error if the enum applicable to the switch above >>>>>> were to >>>>>> get >>>>>> expanded without the new value(s) being handled. >>>>>> >>>>>> Modified: >>>>>> head/sys/vm/vm_radix.c >>>>>> >>>>>> Modified: head/sys/vm/vm_radix.c >>>>>> ============================================================= >>>>>> ================= >>>>>> --- head/sys/vm/vm_radix.c Sat Feb 22 13:23:27 >>>>>> 2020 (r358247) >>>>>> +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 >>>>>> 2020 (r358248) >>>>>> @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum >>>>>> vm_radix_access >>>>>> case SMR: >>>>>> return (smr_entered_load(p, vm_radix_smr)); >>>>>> } >>>>>> - /* This is unreachable, silence gcc. */ >>>>>> - panic("vm_radix_node_get: Unknown access type"); >>>>>> + __unreachable(); >>>>>> } >>>>>> >>>>>> static __inline void >>>>> What does __unreachable() do if the code ever becomes >>>>> reachable? Like >>>>> if a new enum value is added and this switch doesn't get >>>>> updated? >>>>> >>>> __unreachable doesn't help here, but the compiler will error out >>>> on >>>> the switch() if all enum values aren't addressed and there's no >>>> default: case. >>>> >>>> IMO, compilers could/should become smart enough to error if >>>> there's an >>>> explicit __builtin_unreachable() and they can trivially determine >>>> that >>>> all paths will terminate before this, independent of >>>> -Werror=switch*. >>>> _______________________________________________ >>> I think this is way too iffy, check this program: >>> >>> >>> #include >>> >>> int >>> main(void) >>> { >>> >>> __builtin_unreachable(); >>> printf("test\n"); >>> } >>> >>> Neither clang nor gcc warn about this and both stop code generation >>> past the statement. >> Indeed, that is exactly the intent. See: >> >> > https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005funreachable >> "If control flow reaches the point of the __builtin_unreachable, the >> program is undefined. It is useful in situations where the compiler >> cannot deduce the unreachability of the code." >> >> E.g. this is *not* meant as a way to enforce the program to abort at >> runtime, if the supposedly unreachable part is actually reached. >> >> For this purpose, one should use an abort() or panic() function call, >> with such functions being annotated to never return. >> >> -Dimitry >> > The problem is, people will see usages such as what Kyle did, where the > code truly is unreachable (due to -Werror=switch), and not realizing > that's why it's valid there, they'll assume it's a type of assert- > unreachable and copy it/use it in other places as if that's what it was > for. > > So, IMO, using it should be exceedingly rare and there should be a > comment nearby about why it's valid in that context, or our > __unreachable cover for it should panic on INVARIANTS, as Kyle proposed > in an earlier reply. No __unreachable() as an attribute is meant as a hint for static checkers and compiler optimizations. If you are unsure and want a panic, you can add the panic message after the attribute. The compiler will then be free to optimize out the panic, but that was the idea anyways. Pedro. From owner-svn-src-all@freebsd.org Sat Feb 22 19:24:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F150B249FA0; Sat, 22 Feb 2020 19:24:57 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "tensor.andric.com", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PyvX2GQqz4Fjd; Sat, 22 Feb 2020 19:24:56 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from [IPv6:2001:470:7a58::b8df:abc8:d12f:4fd2] (unknown [IPv6:2001:470:7a58:0:b8df:abc8:d12f:4fd2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 93B582C37A; Sat, 22 Feb 2020 20:24:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=andric.com; s=201904; t=1582399494; bh=iSO2mfLLzAE+3Wg7yQyFQ5ivymFVuVwq3e/6k2rN2yM=; h=From:Subject:Date:In-Reply-To:Cc:To:References:From; b=tHVsvLRmfxRujlcwYyOa2MCQfJb7n2JznnJ53vnzFgBDGUEXJdbq787F8o1uvXft2 lS7fBV1TUcvYtXAfTd5Eu1ESHZeXIu0sQVfO5sGxtWJOj40ksg4Uc3m4hL1U2HlxR3 qEas1aivppJFTVokhp6IiKrBfWoqjKtbCriIHuspnu6OK/N+tLH3StV+wVrp+yC5eS K+CHMLG2OoH1zKurYbJ/fOSWtcPsfuyiOLaWrOihy6LVuIOmrvccmyrOCK+SNmMq/b nBzCSASY/G/LOLLG9m1XhZSOLTlXd2pNp1msp/JhnLuc3QMPeEedijWGd+l9xXGthS 8wFHjeO2RerPg== From: Dimitry Andric Message-Id: <63F5EABB-78D3-4DA5-B306-CF12CC3A6FAF@andric.com> Content-Type: multipart/signed; boundary="Apple-Mail=_74EFF5FB-06C1-4E9E-B720-B20CA9152046"; protocol="application/pgp-signature"; micalg=pgp-sha1 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: svn commit: r358248 - head/sys/vm Date: Sat, 22 Feb 2020 20:24:45 +0100 In-Reply-To: Cc: Mateusz Guzik , Kyle Evans , svn-src-head , svn-src-all , src-committers To: Ian Lepore References: <202002221620.01MGK46E072303@repo.freebsd.org> <6D39FAD8-E581-42A8-97B4-EE63800D78A4@andric.com> X-Mailer: Apple Mail (2.3445.104.11) X-Rspamd-Queue-Id: 48PyvX2GQqz4Fjd X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=andric.com header.s=201904 header.b=tHVsvLRm; dmarc=pass (policy=none) header.from=andric.com; spf=pass (mx1.freebsd.org: domain of dimitry@andric.com designates 87.251.56.140 as permitted sender) smtp.mailfrom=dimitry@andric.com X-Spamd-Result: default: False [-4.94 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[andric.com:s=201904]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:87.251.56.140]; MV_CASE(0.50)[]; HAS_ATTACHMENT(0.00)[]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[andric.com:+]; DMARC_POLICY_ALLOW(-0.50)[andric.com,none]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; SIGNED_PGP(-2.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-0.34)[asn: 12859(-1.74), country: NL(0.03)]; ASN(0.00)[asn:12859, ipnet:87.251.32.0/19, country:NL]; FREEMAIL_CC(0.00)[gmail.com]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 19:24:58 -0000 --Apple-Mail=_74EFF5FB-06C1-4E9E-B720-B20CA9152046 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On 22 Feb 2020, at 20:13, Ian Lepore wrote: > > On Sat, 2020-02-22 at 20:01 +0100, Dimitry Andric wrote: ... >> E.g. this is *not* meant as a way to enforce the program to abort at >> runtime, if the supposedly unreachable part is actually reached. >> >> For this purpose, one should use an abort() or panic() function call, >> with such functions being annotated to never return. >> >> -Dimitry >> > > The problem is, people will see usages such as what Kyle did, where the > code truly is unreachable (due to -Werror=switch), and not realizing > that's why it's valid there, they'll assume it's a type of assert- > unreachable and copy it/use it in other places as if that's what it was > for. > > So, IMO, using it should be exceedingly rare and there should be a > comment nearby about why it's valid in that context, or our > __unreachable cover for it should panic on INVARIANTS, as Kyle proposed > in an earlier reply. It might be better to define our own UNREACHABLE macro, similar to what llvm itself does, roughly something like: __noreturn void internal_unreachable(const char *, const char *, int); #define UNREACHABLE(msg) internal_unreachable(msg, __FILE__, __LINE__) And have the implementation of internal_unreachable() log the file, line and message, then abort or panic in some appropriate way. -Dimitry --Apple-Mail=_74EFF5FB-06C1-4E9E-B720-B20CA9152046 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.2 iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCXlF//QAKCRCwXqMKLiCW o0psAKCTBducQdnim8tIXnlqDLYMD9U+uwCfcoy+vLWT9O/DJ9Kg/XZ8R/cQcl0= =QBIH -----END PGP SIGNATURE----- --Apple-Mail=_74EFF5FB-06C1-4E9E-B720-B20CA9152046-- From owner-svn-src-all@freebsd.org Sat Feb 22 19:38:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BD81024A782; Sat, 22 Feb 2020 19:38:03 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PzBg3R7Hz4Ywp; Sat, 22 Feb 2020 19:38:03 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id F10B470F7; Sat, 22 Feb 2020 19:38:02 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qk1-f173.google.com with SMTP id p7so5183760qkh.10; Sat, 22 Feb 2020 11:38:02 -0800 (PST) X-Gm-Message-State: APjAAAWTap0cMB9tRFZ4+eIlafzYD02YwiXil6cg2B7qlcdg1IM4y6dk uXw9P+/1bKvSqYMwKUqQUtStG0YmUSEw9giwy6A= X-Google-Smtp-Source: APXvYqzydW7bHeAsrYRx1j2jCD/gCpeSskALU9AGQa1nYSqFL3+yct1QsM4guFINbhKEx9re2SfKfzt0JYpgVXa2vz4= X-Received: by 2002:a05:620a:7f5:: with SMTP id k21mr15596758qkk.493.1582400282426; Sat, 22 Feb 2020 11:38:02 -0800 (PST) MIME-Version: 1.0 References: <202002221620.01MGK46E072303@repo.freebsd.org> <6D39FAD8-E581-42A8-97B4-EE63800D78A4@andric.com> In-Reply-To: From: Kyle Evans Date: Sat, 22 Feb 2020 13:37:51 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r358248 - head/sys/vm To: Pedro Giffuni Cc: Ian Lepore , Dimitry Andric , Mateusz Guzik , Kyle Evans , svn-src-head , svn-src-all , src-committers Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 19:38:03 -0000 On Sat, Feb 22, 2020 at 1:21 PM Pedro Giffuni wrote: > > > On 22/02/2020 14:13, Ian Lepore wrote: > > On Sat, 2020-02-22 at 20:01 +0100, Dimitry Andric wrote: > >> On 22 Feb 2020, at 17:44, Mateusz Guzik wrote: > >>> On 2/22/20, Kyle Evans wrote: > >>>> On Sat, Feb 22, 2020 at 10:25 AM Ian Lepore > >>>> wrote: > >>>>> On Sat, 2020-02-22 at 16:20 +0000, Kyle Evans wrote: > >>>>>> Author: kevans > >>>>>> Date: Sat Feb 22 16:20:04 2020 > >>>>>> New Revision: 358248 > >>>>>> URL: https://svnweb.freebsd.org/changeset/base/358248 > >>>>>> > >>>>>> Log: > >>>>>> vm_radix: prefer __builtin_unreachable() to an unreachable > >>>>>> panic() > >>>>>> > >>>>>> This provides the needed hint to GCC and offers an > >>>>>> annotation for > >>>>>> readers to > >>>>>> observe that it's in-fact impossible to hit this point. > >>>>>> We'll get hit > >>>>>> with a > >>>>>> a -Wswitch error if the enum applicable to the switch above > >>>>>> were to > >>>>>> get > >>>>>> expanded without the new value(s) being handled. > >>>>>> > >>>>>> Modified: > >>>>>> head/sys/vm/vm_radix.c > >>>>>> > >>>>>> Modified: head/sys/vm/vm_radix.c > >>>>>> ============================================================= > >>>>>> ================= > >>>>>> --- head/sys/vm/vm_radix.c Sat Feb 22 13:23:27 > >>>>>> 2020 (r358247) > >>>>>> +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 > >>>>>> 2020 (r358248) > >>>>>> @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum > >>>>>> vm_radix_access > >>>>>> case SMR: > >>>>>> return (smr_entered_load(p, vm_radix_smr)); > >>>>>> } > >>>>>> - /* This is unreachable, silence gcc. */ > >>>>>> - panic("vm_radix_node_get: Unknown access type"); > >>>>>> + __unreachable(); > >>>>>> } > >>>>>> > >>>>>> static __inline void > >>>>> What does __unreachable() do if the code ever becomes > >>>>> reachable? Like > >>>>> if a new enum value is added and this switch doesn't get > >>>>> updated? > >>>>> > >>>> __unreachable doesn't help here, but the compiler will error out > >>>> on > >>>> the switch() if all enum values aren't addressed and there's no > >>>> default: case. > >>>> > >>>> IMO, compilers could/should become smart enough to error if > >>>> there's an > >>>> explicit __builtin_unreachable() and they can trivially determine > >>>> that > >>>> all paths will terminate before this, independent of > >>>> -Werror=switch*. > >>>> _______________________________________________ > >>> I think this is way too iffy, check this program: > >>> > >>> > >>> #include > >>> > >>> int > >>> main(void) > >>> { > >>> > >>> __builtin_unreachable(); > >>> printf("test\n"); > >>> } > >>> > >>> Neither clang nor gcc warn about this and both stop code generation > >>> past the statement. > >> Indeed, that is exactly the intent. See: > >> > >> > > https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005funreachable > >> "If control flow reaches the point of the __builtin_unreachable, the > >> program is undefined. It is useful in situations where the compiler > >> cannot deduce the unreachability of the code." > >> > >> E.g. this is *not* meant as a way to enforce the program to abort at > >> runtime, if the supposedly unreachable part is actually reached. > >> > >> For this purpose, one should use an abort() or panic() function call, > >> with such functions being annotated to never return. > >> > >> -Dimitry > >> > > The problem is, people will see usages such as what Kyle did, where the > > code truly is unreachable (due to -Werror=switch), and not realizing > > that's why it's valid there, they'll assume it's a type of assert- > > unreachable and copy it/use it in other places as if that's what it was > > for. > > > > So, IMO, using it should be exceedingly rare and there should be a > > comment nearby about why it's valid in that context, or our > > __unreachable cover for it should panic on INVARIANTS, as Kyle proposed > > in an earlier reply. > > No __unreachable() as an attribute is meant as a hint for static > checkers and compiler optimizations. If you are unsure and want a panic, > you can add the panic message after the attribute. The compiler will > then be free to optimize out the panic, but that was the idea anyways. > The current form of __unreachable is only half-useful and apparently prone to misuse, as has been pointed out earlier in this thread, without any form of detection that it's been misused. IMO this is of limited utility, but the review I had included you on will turn it into a panic under INVARIANTS or into the proper __builtin_unreachable for stable/release branches (read as "sans debugging"). I also noted in the review that we didn't have to turn __unreachable into this, but I had just done so initially, though I'd debate that there's a better name for what it currently does (e.g. __hint_unreachable) to make it sound less like an assertion. From owner-svn-src-all@freebsd.org Sat Feb 22 19:45:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 453B124AA68 for ; Sat, 22 Feb 2020 19:45:29 +0000 (UTC) (envelope-from joerg@bec.de) Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) (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 48PzMD1VKnz3LHB for ; Sat, 22 Feb 2020 19:45:27 +0000 (UTC) (envelope-from joerg@bec.de) X-Originating-IP: 93.205.161.59 Received: from bec.de (p5DCDA13B.dip0.t-ipconnect.de [93.205.161.59]) (Authenticated sender: joerg@bec.de) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 3601EE0005 for ; Sat, 22 Feb 2020 19:45:25 +0000 (UTC) Date: Sat, 22 Feb 2020 20:45:23 +0100 From: Joerg Sonnenberger To: svn-src-all@freebsd.org Subject: Re: svn commit: r358248 - head/sys/vm Message-ID: <20200222194523.GD11584@bec.de> References: <202002221620.01MGK46E072303@repo.freebsd.org> <6D39FAD8-E581-42A8-97B4-EE63800D78A4@andric.com> <63F5EABB-78D3-4DA5-B306-CF12CC3A6FAF@andric.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <63F5EABB-78D3-4DA5-B306-CF12CC3A6FAF@andric.com> User-Agent: Mutt/1.11.3 (2019-02-01) X-Rspamd-Queue-Id: 48PzMD1VKnz3LHB X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of joerg@bec.de has no SPF policy when checking 217.70.183.196) smtp.mailfrom=joerg@bec.de X-Spamd-Result: default: False [-2.77 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; HAS_XOIP(0.00)[]; FROM_HAS_DN(0.00)[]; RWL_MAILSPIKE_GOOD(0.00)[196.183.70.217.rep.mailspike.net : 127.0.0.18]; TO_MATCH_ENVRCPT_ALL(0.00)[]; IP_SCORE(-1.58)[ip: (-5.07), ipnet: 217.70.176.0/20(-1.57), asn: 29169(-1.27), country: FR(0.00)]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; TO_DN_NONE(0.00)[]; AUTH_NA(1.00)[]; RCPT_COUNT_ONE(0.00)[1]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RECEIVED_SPAMHAUS_PBL(0.00)[59.161.205.93.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10]; DMARC_NA(0.00)[bec.de]; NEURAL_HAM_MEDIUM(-0.99)[-0.985,0]; R_SPF_NA(0.00)[]; RCVD_IN_DNSWL_LOW(-0.10)[196.183.70.217.list.dnswl.org : 127.0.5.1]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:29169, ipnet:217.70.176.0/20, country:FR]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 19:45:29 -0000 On Sat, Feb 22, 2020 at 08:24:45PM +0100, Dimitry Andric wrote: > It might be better to define our own UNREACHABLE macro, similar to what > llvm itself does, roughly something like: > > __noreturn void internal_unreachable(const char *, const char *, int); > #define UNREACHABLE(msg) internal_unreachable(msg, __FILE__, __LINE__) > > And have the implementation of internal_unreachable() log the file, > line and message, then abort or panic in some appropriate way. One way to deal with it is to use __builtin_trap() for debug builds and __builtin_unreachable() otherwise. They both signify code that shouldn't be reached, but they differ in how the compiler will use that knowledge. Joerg From owner-svn-src-all@freebsd.org Sat Feb 22 20:01:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3D38124B066; Sat, 22 Feb 2020 20:01:23 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Pzjb0gKbz4Lvr; Sat, 22 Feb 2020 20:01:23 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.3] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id 503BD7487; Sat, 22 Feb 2020 20:01:22 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Subject: Re: svn commit: r358248 - head/sys/vm To: Kyle Evans Cc: Ian Lepore , Dimitry Andric , Mateusz Guzik , svn-src-head , svn-src-all , src-committers References: <202002221620.01MGK46E072303@repo.freebsd.org> <6D39FAD8-E581-42A8-97B4-EE63800D78A4@andric.com> From: Pedro Giffuni Organization: FreeBSD Message-ID: Date: Sat, 22 Feb 2020 15:01:22 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 20:01:23 -0000 On 22/02/2020 14:37, Kyle Evans wrote: > On Sat, Feb 22, 2020 at 1:21 PM Pedro Giffuni wrote: >> >> On 22/02/2020 14:13, Ian Lepore wrote: >>> On Sat, 2020-02-22 at 20:01 +0100, Dimitry Andric wrote: >>>> On 22 Feb 2020, at 17:44, Mateusz Guzik wrote: >>>>> On 2/22/20, Kyle Evans wrote: >>>>>> On Sat, Feb 22, 2020 at 10:25 AM Ian Lepore >>>>>> wrote: >>>>>>> On Sat, 2020-02-22 at 16:20 +0000, Kyle Evans wrote: >>>>>>>> Author: kevans >>>>>>>> Date: Sat Feb 22 16:20:04 2020 >>>>>>>> New Revision: 358248 >>>>>>>> URL: https://svnweb.freebsd.org/changeset/base/358248 >>>>>>>> >>>>>>>> Log: >>>>>>>> vm_radix: prefer __builtin_unreachable() to an unreachable >>>>>>>> panic() >>>>>>>> >>>>>>>> This provides the needed hint to GCC and offers an >>>>>>>> annotation for >>>>>>>> readers to >>>>>>>> observe that it's in-fact impossible to hit this point. >>>>>>>> We'll get hit >>>>>>>> with a >>>>>>>> a -Wswitch error if the enum applicable to the switch above >>>>>>>> were to >>>>>>>> get >>>>>>>> expanded without the new value(s) being handled. >>>>>>>> >>>>>>>> Modified: >>>>>>>> head/sys/vm/vm_radix.c >>>>>>>> >>>>>>>> Modified: head/sys/vm/vm_radix.c >>>>>>>> ============================================================= >>>>>>>> ================= >>>>>>>> --- head/sys/vm/vm_radix.c Sat Feb 22 13:23:27 >>>>>>>> 2020 (r358247) >>>>>>>> +++ head/sys/vm/vm_radix.c Sat Feb 22 16:20:04 >>>>>>>> 2020 (r358248) >>>>>>>> @@ -208,8 +208,7 @@ vm_radix_node_load(smrnode_t *p, enum >>>>>>>> vm_radix_access >>>>>>>> case SMR: >>>>>>>> return (smr_entered_load(p, vm_radix_smr)); >>>>>>>> } >>>>>>>> - /* This is unreachable, silence gcc. */ >>>>>>>> - panic("vm_radix_node_get: Unknown access type"); >>>>>>>> + __unreachable(); >>>>>>>> } >>>>>>>> >>>>>>>> static __inline void >>>>>>> What does __unreachable() do if the code ever becomes >>>>>>> reachable? Like >>>>>>> if a new enum value is added and this switch doesn't get >>>>>>> updated? >>>>>>> >>>>>> __unreachable doesn't help here, but the compiler will error out >>>>>> on >>>>>> the switch() if all enum values aren't addressed and there's no >>>>>> default: case. >>>>>> >>>>>> IMO, compilers could/should become smart enough to error if >>>>>> there's an >>>>>> explicit __builtin_unreachable() and they can trivially determine >>>>>> that >>>>>> all paths will terminate before this, independent of >>>>>> -Werror=switch*. >>>>>> _______________________________________________ >>>>> I think this is way too iffy, check this program: >>>>> >>>>> >>>>> #include >>>>> >>>>> int >>>>> main(void) >>>>> { >>>>> >>>>> __builtin_unreachable(); >>>>> printf("test\n"); >>>>> } >>>>> >>>>> Neither clang nor gcc warn about this and both stop code generation >>>>> past the statement. >>>> Indeed, that is exactly the intent. See: >>>> >>>> >>> https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005funreachable >>>> "If control flow reaches the point of the __builtin_unreachable, the >>>> program is undefined. It is useful in situations where the compiler >>>> cannot deduce the unreachability of the code." >>>> >>>> E.g. this is *not* meant as a way to enforce the program to abort at >>>> runtime, if the supposedly unreachable part is actually reached. >>>> >>>> For this purpose, one should use an abort() or panic() function call, >>>> with such functions being annotated to never return. >>>> >>>> -Dimitry >>>> >>> The problem is, people will see usages such as what Kyle did, where the >>> code truly is unreachable (due to -Werror=switch), and not realizing >>> that's why it's valid there, they'll assume it's a type of assert- >>> unreachable and copy it/use it in other places as if that's what it was >>> for. >>> >>> So, IMO, using it should be exceedingly rare and there should be a >>> comment nearby about why it's valid in that context, or our >>> __unreachable cover for it should panic on INVARIANTS, as Kyle proposed >>> in an earlier reply. >> No __unreachable() as an attribute is meant as a hint for static >> checkers and compiler optimizations. If you are unsure and want a panic, >> you can add the panic message after the attribute. The compiler will >> then be free to optimize out the panic, but that was the idea anyways. >> > The current form of __unreachable is only half-useful and apparently > prone to misuse, as has been pointed out earlier in this thread, > without any form of detection that it's been misused. IMO this is of > limited utility, but the review I had included you on will turn it > into a panic under INVARIANTS or into the proper __builtin_unreachable > for stable/release branches (read as "sans debugging"). I also noted > in the review that we didn't have to turn __unreachable into this, but > I had just done so initially, though I'd debate that there's a better > name for what it currently does (e.g. __hint_unreachable) to make it > sound less like an assertion. The current form of __unreachable() is exactly just the compiler attribute on purpose. It indeed never got much use except for cleaning some unreachable paths detected by Coverity. D2536, which was the predecessor of the attribute hinted the idea of a more metamorfic call in the lines of your proposal, which I don't think I like but I can live with, as the current __unreachable seems to have lived its original purpose. Don't ask me to approve the differential though :) Pedro. From owner-svn-src-all@freebsd.org Sat Feb 22 20:43:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E5C4F24C43E; Sat, 22 Feb 2020 20:43:05 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Q0dj3KVKz4WnX; Sat, 22 Feb 2020 20:43:05 +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 277BE14AD; Sat, 22 Feb 2020 20:43:05 +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 01MKh4Ve036513; Sat, 22 Feb 2020 20:43:04 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MKh4V4036511; Sat, 22 Feb 2020 20:43:04 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002222043.01MKh4V4036511@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 22 Feb 2020 20:43:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358251 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 358251 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 20:43:06 -0000 Author: kib Date: Sat Feb 22 20:43:04 2020 New Revision: 358251 URL: https://svnweb.freebsd.org/changeset/base/358251 Log: Add td_pflags2, yet another thread-private flags word. There is no more free bits in td_pflags. Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/kern/kern_thread.c head/sys/sys/proc.h Modified: head/sys/kern/kern_thread.c ============================================================================== --- head/sys/kern/kern_thread.c Sat Feb 22 17:56:09 2020 (r358250) +++ head/sys/kern/kern_thread.c Sat Feb 22 20:43:04 2020 (r358251) @@ -82,9 +82,9 @@ _Static_assert(offsetof(struct thread, td_flags) == 0x "struct thread KBI td_flags"); _Static_assert(offsetof(struct thread, td_pflags) == 0x104, "struct thread KBI td_pflags"); -_Static_assert(offsetof(struct thread, td_frame) == 0x490, +_Static_assert(offsetof(struct thread, td_frame) == 0x498, "struct thread KBI td_frame"); -_Static_assert(offsetof(struct thread, td_emuldata) == 0x6a0, +_Static_assert(offsetof(struct thread, td_emuldata) == 0x6b0, "struct thread KBI td_emuldata"); _Static_assert(offsetof(struct proc, p_flag) == 0xb0, "struct proc KBI p_flag"); @@ -102,9 +102,9 @@ _Static_assert(offsetof(struct thread, td_flags) == 0x "struct thread KBI td_flags"); _Static_assert(offsetof(struct thread, td_pflags) == 0xa0, "struct thread KBI td_pflags"); -_Static_assert(offsetof(struct thread, td_frame) == 0x2f8, +_Static_assert(offsetof(struct thread, td_frame) == 0x2fc, "struct thread KBI td_frame"); -_Static_assert(offsetof(struct thread, td_emuldata) == 0x340, +_Static_assert(offsetof(struct thread, td_emuldata) == 0x344, "struct thread KBI td_emuldata"); _Static_assert(offsetof(struct proc, p_flag) == 0x68, "struct proc KBI p_flag"); Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Sat Feb 22 17:56:09 2020 (r358250) +++ head/sys/sys/proc.h Sat Feb 22 20:43:04 2020 (r358251) @@ -250,6 +250,7 @@ struct thread { int td_flags; /* (t) TDF_* flags. */ int td_inhibitors; /* (t) Why can not run. */ int td_pflags; /* (k) Private thread (TDP_*) flags. */ + int td_pflags2; /* (k) Private thread (TDP2_*) flags. */ int td_dupfd; /* (k) Ret value from fdopen. XXX */ int td_sqqueue; /* (t) Sleepqueue queue blocked on. */ const void *td_wchan; /* (t) Sleep address. */ @@ -1195,6 +1196,25 @@ curthread_pflags_restore(int save) { curthread->td_pflags &= save; +} + +static __inline int +curthread_pflags2_set(int flags) +{ + struct thread *td; + int save; + + td = curthread; + save = ~flags | (td->td_pflags2 & flags); + td->td_pflags2 |= flags; + return (save); +} + +static __inline void +curthread_pflags2_restore(int save) +{ + + curthread->td_pflags2 &= save; } static __inline __pure2 struct td_sched * From owner-svn-src-all@freebsd.org Sat Feb 22 20:50:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 47B0D24C833; Sat, 22 Feb 2020 20:50:33 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Q0pH5pMPz4gDB; Sat, 22 Feb 2020 20:50:31 +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 8815A14CC; Sat, 22 Feb 2020 20:50:31 +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 01MKoVdL037220; Sat, 22 Feb 2020 20:50:31 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MKoUVV037218; Sat, 22 Feb 2020 20:50:30 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202002222050.01MKoUVV037218@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 22 Feb 2020 20:50:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358252 - in head/sys: fs/nfsclient sys X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/sys: fs/nfsclient sys X-SVN-Commit-Revision: 358252 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 20:50:33 -0000 Author: kib Date: Sat Feb 22 20:50:30 2020 New Revision: 358252 URL: https://svnweb.freebsd.org/changeset/base/358252 Log: Fix NFS client deadlock when read reports truncated node. If node attribute returned in the reply for read rpc indicate truncation, and it happens that the vnode is exclusively locked, update of the node attributes would try to shrink vnode size. Since during the read some vnode pages were busied by the reading thread, vnode_pager_setsize() deadlocks waiting for the busy state owned by the caller. Use a thread-local flag to indicate that NFS read owns some (s)busy pages states and postpone the call to vnode_pager_setsize() until the thread relinguishes the ownership. Diagnosed by: rlibby Tested by: pho, rlibby Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/fs/nfsclient/nfs_clbio.c head/sys/fs/nfsclient/nfs_clport.c head/sys/sys/proc.h Modified: head/sys/fs/nfsclient/nfs_clbio.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clbio.c Sat Feb 22 20:43:04 2020 (r358251) +++ head/sys/fs/nfsclient/nfs_clbio.c Sat Feb 22 20:50:30 2020 (r358252) @@ -425,14 +425,11 @@ int ncl_bioread(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred) { struct nfsnode *np = VTONFS(vp); - int biosize, i; struct buf *bp, *rabp; struct thread *td; struct nfsmount *nmp = VFSTONFS(vp->v_mount); daddr_t lbn, rabn; - int bcount; - int seqcount; - int nra, error = 0, n = 0, on = 0; + int biosize, bcount, error, i, n, nra, on, save2, seqcount; off_t tmp_off; KASSERT(uio->uio_rw == UIO_READ, ("ncl_read mode")); @@ -464,6 +461,8 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof /* No caching/ no readaheads. Just read data into the user buffer */ return ncl_readrpc(vp, uio, cred); + n = 0; + on = 0; biosize = vp->v_bufobj.bo_bsize; seqcount = (int)((off_t)(ioflag >> IO_SEQSHIFT) * biosize / BKVASIZE); @@ -471,6 +470,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof if (error) return error; + save2 = curthread_pflags2_set(TDP2_SBPAGES); do { u_quad_t nsize; @@ -495,7 +495,9 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof rabp = nfs_getcacheblk(vp, rabn, biosize, td); if (!rabp) { error = newnfs_sigintr(nmp, td); - return (error ? error : EINTR); + if (error == 0) + error = EINTR; + goto out; } if ((rabp->b_flags & (B_CACHE|B_DELWRI)) == 0) { rabp->b_flags |= B_ASYNC; @@ -526,7 +528,9 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof if (!bp) { error = newnfs_sigintr(nmp, td); - return (error ? error : EINTR); + if (error == 0) + error = EINTR; + goto out; } /* @@ -540,7 +544,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof error = ncl_doio(vp, bp, cred, td, 0); if (error) { brelse(bp); - return (error); + goto out; } } @@ -561,7 +565,9 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof bp = nfs_getcacheblk(vp, (daddr_t)0, NFS_MAXPATHLEN, td); if (!bp) { error = newnfs_sigintr(nmp, td); - return (error ? error : EINTR); + if (error == 0) + error = EINTR; + goto out; } if ((bp->b_flags & B_CACHE) == 0) { bp->b_iocmd = BIO_READ; @@ -570,7 +576,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof if (error) { bp->b_ioflags |= BIO_ERROR; brelse(bp); - return (error); + goto out; } } n = MIN(uio->uio_resid, NFS_MAXPATHLEN - bp->b_resid); @@ -580,14 +586,17 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof NFSINCRGLOBAL(nfsstatsv1.biocache_readdirs); if (np->n_direofoffset && uio->uio_offset >= np->n_direofoffset) { - return (0); + error = 0; + goto out; } lbn = (uoff_t)uio->uio_offset / NFS_DIRBLKSIZ; on = uio->uio_offset & (NFS_DIRBLKSIZ - 1); bp = nfs_getcacheblk(vp, lbn, NFS_DIRBLKSIZ, td); if (!bp) { - error = newnfs_sigintr(nmp, td); - return (error ? error : EINTR); + error = newnfs_sigintr(nmp, td); + if (error == 0) + error = EINTR; + goto out; } if ((bp->b_flags & B_CACHE) == 0) { bp->b_iocmd = BIO_READ; @@ -612,12 +621,16 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof */ for (i = 0; i <= lbn && !error; i++) { if (np->n_direofoffset - && (i * NFS_DIRBLKSIZ) >= np->n_direofoffset) - return (0); + && (i * NFS_DIRBLKSIZ) >= np->n_direofoffset) { + error = 0; + goto out; + } bp = nfs_getcacheblk(vp, i, NFS_DIRBLKSIZ, td); if (!bp) { error = newnfs_sigintr(nmp, td); - return (error ? error : EINTR); + if (error == 0) + error = EINTR; + goto out; } if ((bp->b_flags & B_CACHE) == 0) { bp->b_iocmd = BIO_READ; @@ -646,7 +659,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof * we give up. */ if (error) - return (error); + goto out; } /* @@ -706,6 +719,12 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int iof if (bp != NULL) brelse(bp); } while (error == 0 && uio->uio_resid > 0 && n > 0); +out: + curthread_pflags2_restore(save2); + if ((curthread->td_pflags2 & TDP2_SBPAGES) == 0) { + NFSLOCKNODE(np); + ncl_pager_setsize(vp, NULL); + } return (error); } Modified: head/sys/fs/nfsclient/nfs_clport.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clport.c Sat Feb 22 20:43:04 2020 (r358251) +++ head/sys/fs/nfsclient/nfs_clport.c Sat Feb 22 20:50:30 2020 (r358252) @@ -597,7 +597,8 @@ ncl_pager_setsize(struct vnode *vp, u_quad_t *nsizep) setnsize = false; if (object != NULL && nsize != object->un_pager.vnp.vnp_size) { - if (VOP_ISLOCKED(vp) == LK_EXCLUSIVE) + if (VOP_ISLOCKED(vp) == LK_EXCLUSIVE && + (curthread->td_pflags2 & TDP2_SBPAGES) == 0) setnsize = true; else np->n_flag |= NVNSETSZSKIP; Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Sat Feb 22 20:43:04 2020 (r358251) +++ head/sys/sys/proc.h Sat Feb 22 20:50:30 2020 (r358252) @@ -515,6 +515,8 @@ do { \ #define TDP_EXECVMSPC 0x40000000 /* Execve destroyed old vmspace */ #define TDP_SIGFASTPENDING 0x80000000 /* Pending signal due to sigfastblock */ +#define TDP2_SBPAGES 0x00000001 /* Owns sbusy on some pages */ + /* * Reasons that the current thread can not be run yet. * More than one may apply. From owner-svn-src-all@freebsd.org Sat Feb 22 21:44:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 77A3824D625; Sat, 22 Feb 2020 21:44:01 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Q20055R9z4HP6; Sat, 22 Feb 2020 21:44:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 764761FA0; Sat, 22 Feb 2020 21:44:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01MLi055072854; Sat, 22 Feb 2020 21:44:00 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MLi0k6072853; Sat, 22 Feb 2020 21:44:00 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002222144.01MLi0k6072853@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 22 Feb 2020 21:44:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r358253 - in stable: 11/usr.bin/kdump 12/usr.bin/kdump X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.bin/kdump 12/usr.bin/kdump X-SVN-Commit-Revision: 358253 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 21:44:01 -0000 Author: kevans Date: Sat Feb 22 21:44:00 2020 New Revision: 358253 URL: https://svnweb.freebsd.org/changeset/base/358253 Log: MFC r358109: kdump: decode SHM_ANON as first arg to legacy shm_open(2) The first argument to shm_open(2) as well as shm_open2(2) may be a path or SHM_ANON. Decode SHM_ANON, at least- paths will show up as namei results in kdump output, which may be sufficient; in those cases, we'll have printed an address. Modified: stable/11/usr.bin/kdump/kdump.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.bin/kdump/kdump.c Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.bin/kdump/kdump.c ============================================================================== --- stable/11/usr.bin/kdump/kdump.c Sat Feb 22 20:50:30 2020 (r358252) +++ stable/11/usr.bin/kdump/kdump.c Sat Feb 22 21:44:00 2020 (r358253) @@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1311,7 +1312,12 @@ ktrsyscall(struct ktr_syscall *ktr, u_int sv_flags) narg--; break; case SYS_shm_open: - print_number(ip, narg, c); + if (ip[0] == (uintptr_t)SHM_ANON) { + printf("(SHM_ANON"); + ip++; + } else { + print_number(ip, narg, c); + } putchar(','); print_mask_arg(sysdecode_open_flags, ip[0]); putchar(','); From owner-svn-src-all@freebsd.org Sat Feb 22 21:44:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B33A024D629; Sat, 22 Feb 2020 21:44:01 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Q2011Y98z4HPd; Sat, 22 Feb 2020 21:44:01 +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 C55391FA1; Sat, 22 Feb 2020 21:44:00 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01MLi0B3072860; Sat, 22 Feb 2020 21:44:00 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MLi0rK072859; Sat, 22 Feb 2020 21:44:00 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202002222144.01MLi0rK072859@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 22 Feb 2020 21:44:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r358253 - in stable: 11/usr.bin/kdump 12/usr.bin/kdump X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.bin/kdump 12/usr.bin/kdump X-SVN-Commit-Revision: 358253 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 21:44:01 -0000 Author: kevans Date: Sat Feb 22 21:44:00 2020 New Revision: 358253 URL: https://svnweb.freebsd.org/changeset/base/358253 Log: MFC r358109: kdump: decode SHM_ANON as first arg to legacy shm_open(2) The first argument to shm_open(2) as well as shm_open2(2) may be a path or SHM_ANON. Decode SHM_ANON, at least- paths will show up as namei results in kdump output, which may be sufficient; in those cases, we'll have printed an address. Modified: stable/12/usr.bin/kdump/kdump.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.bin/kdump/kdump.c Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.bin/kdump/kdump.c ============================================================================== --- stable/12/usr.bin/kdump/kdump.c Sat Feb 22 20:50:30 2020 (r358252) +++ stable/12/usr.bin/kdump/kdump.c Sat Feb 22 21:44:00 2020 (r358253) @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1247,7 +1248,12 @@ ktrsyscall(struct ktr_syscall *ktr, u_int sv_flags) narg--; break; case SYS_shm_open: - print_number(ip, narg, c); + if (ip[0] == (uintptr_t)SHM_ANON) { + printf("(SHM_ANON"); + ip++; + } else { + print_number(ip, narg, c); + } putchar(','); print_mask_arg(sysdecode_open_flags, ip[0]); putchar(','); From owner-svn-src-all@freebsd.org Sat Feb 22 23:36:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E6C59250E16; Sat, 22 Feb 2020 23:36:10 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Q4TQ5tfJz4GLt; Sat, 22 Feb 2020 23:36:10 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B887C3433; Sat, 22 Feb 2020 23:36:10 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01MNaAMN039176; Sat, 22 Feb 2020 23:36:10 GMT (envelope-from sevan@FreeBSD.org) Received: (from sevan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01MNaAq0039175; Sat, 22 Feb 2020 23:36:10 GMT (envelope-from sevan@FreeBSD.org) Message-Id: <202002222336.01MNaAq0039175@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sevan set sender to sevan@FreeBSD.org using -f From: Sevan Janiyan Date: Sat, 22 Feb 2020 23:36:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r358254 - head/share/misc X-SVN-Group: head X-SVN-Commit-Author: sevan X-SVN-Commit-Paths: head/share/misc X-SVN-Commit-Revision: 358254 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 23:36:11 -0000 Author: sevan (doc committer) Date: Sat Feb 22 23:36:10 2020 New Revision: 358254 URL: https://svnweb.freebsd.org/changeset/base/358254 Log: Add NetBSD 9.0 using the date the releng announcement was made. NetBSD-7 branch wont be receiving any more releases. Modified: head/share/misc/bsd-family-tree Modified: head/share/misc/bsd-family-tree ============================================================================== --- head/share/misc/bsd-family-tree Sat Feb 22 21:44:00 2020 (r358253) +++ head/share/misc/bsd-family-tree Sat Feb 22 23:36:10 2020 (r358254) @@ -388,11 +388,11 @@ FreeBSD 5.2 | | | | | | | | | | DragonFly 5.2.2 | FreeBSD | | | *--NetBSD | | | 11.2 | | | 7.2 | | - | | macOS | | | | | - | | 10.14 | | | OpenBSD 6.4 | - | | | | | | | | - | | | | | | | DragonFly 5.4.0 - *--FreeBSD | | | | v | | + | | macOS | | | | + | | 10.14 | | OpenBSD 6.4 | + | | | | | | | + | | | | | | DragonFly 5.4.0 + *--FreeBSD | | | | | | | 12.0 | | | | | DragonFly 5.4.1 | | | | | | OpenBSD 6.5 | | | | | | | | | @@ -405,7 +405,8 @@ FreeBSD 5.2 | | | | FreeBSD | | OpenBSD 6.6 | | 12.1 macOS | | | | | 10.15.1 | | DragonFly 5.6.2 - | v | | | | + | | | *--NetBSD | | + | v | | 9.0 | | | | | | | FreeBSD 13 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -798,6 +799,7 @@ OpenBSD 6.6 2019-10-17 [OBD] macOS 10.15 2019-10-07 [APL] macOS 10.15.1 2019-10-29 [APL] (security/critical release) FreeBSD 12.1 2019-11-04 [FBD] +NetBSD 9.0 2020-02-15 [NBD] Bibliography ------------------------