From owner-dev-commits-src-main@freebsd.org Mon Apr 12 02:26:14 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 63ACD5E61F7; Mon, 12 Apr 2021 02:26:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJXfZ2BqGz4tDY; Mon, 12 Apr 2021 02:26:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3A29A72FC; Mon, 12 Apr 2021 02:26:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13C2QEtr038376; Mon, 12 Apr 2021 02:26:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13C2QEYM038375; Mon, 12 Apr 2021 02:26:14 GMT (envelope-from git) Date: Mon, 12 Apr 2021 02:26:14 GMT Message-Id: <202104120226.13C2QEYM038375@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Navdeep Parhar Subject: git: bf5057691bb0 - main - cxgbe/tom: Fix potential leak in t4_aiotx_process_job. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: np X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bf5057691bb0d1160d729772cdb4c449e366f5b4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 02:26:14 -0000 The branch main has been updated by np: URL: https://cgit.FreeBSD.org/src/commit/?id=bf5057691bb0d1160d729772cdb4c449e366f5b4 commit bf5057691bb0d1160d729772cdb4c449e366f5b4 Author: Navdeep Parhar AuthorDate: 2021-04-04 22:04:31 +0000 Commit: Navdeep Parhar CommitDate: 2021-04-12 02:14:18 +0000 cxgbe/tom: Fix potential leak in t4_aiotx_process_job. The mbuf allocated could be a chain and must be freed with m_freem. Reviewed by: jhb@ MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D29579 --- sys/dev/cxgbe/tom/t4_cpl_io.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/dev/cxgbe/tom/t4_cpl_io.c b/sys/dev/cxgbe/tom/t4_cpl_io.c index 7085be0844b7..07340709934a 100644 --- a/sys/dev/cxgbe/tom/t4_cpl_io.c +++ b/sys/dev/cxgbe/tom/t4_cpl_io.c @@ -2201,8 +2201,7 @@ out: job->aio_error = (void *)(intptr_t)error; aiotx_free_job(job); } - if (m != NULL) - m_free(m); + m_freem(m); SOCKBUF_LOCK(sb); } From owner-dev-commits-src-main@freebsd.org Mon Apr 12 08:41:07 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2EC305EF1DF; Mon, 12 Apr 2021 08:41:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJhz70swpz3jVl; Mon, 12 Apr 2021 08:41:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 110C214277; Mon, 12 Apr 2021 08:41:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13C8f7jg039174; Mon, 12 Apr 2021 08:41:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13C8f6NM039173; Mon, 12 Apr 2021 08:41:06 GMT (envelope-from git) Date: Mon, 12 Apr 2021 08:41:06 GMT Message-Id: <202104120841.13C8f6NM039173@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: 5d2d599d3f34 - main - Create VM_MEMATTR_DEVICE on all architectures MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5d2d599d3f3494d813e51e1bcd1c9693eb9c098b Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 08:41:07 -0000 The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=5d2d599d3f3494d813e51e1bcd1c9693eb9c098b commit 5d2d599d3f3494d813e51e1bcd1c9693eb9c098b Author: Andrew Turner AuthorDate: 2021-04-10 07:59:29 +0000 Commit: Andrew Turner CommitDate: 2021-04-12 06:15:31 +0000 Create VM_MEMATTR_DEVICE on all architectures This is intended to be used with memory mapped IO, e.g. from bus_space_map with no flags, or pmap_mapdev. Use this new memory type in the map request configured by resource_init_map_request, and in pciconf. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D29692 --- sys/amd64/include/vm.h | 1 + sys/i386/include/vm.h | 1 + sys/kern/subr_bus.c | 2 +- sys/mips/include/vm.h | 1 + sys/powerpc/include/vm.h | 2 ++ usr.sbin/pciconf/pciconf.c | 4 ---- 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/sys/amd64/include/vm.h b/sys/amd64/include/vm.h index 2e9c30da9936..fef7a53ca317 100644 --- a/sys/amd64/include/vm.h +++ b/sys/amd64/include/vm.h @@ -43,5 +43,6 @@ #define VM_MEMATTR_WEAK_UNCACHEABLE ((vm_memattr_t)PAT_UNCACHED) #define VM_MEMATTR_DEFAULT VM_MEMATTR_WRITE_BACK +#define VM_MEMATTR_DEVICE VM_MEMATTR_UNCACHEABLE #endif /* !_MACHINE_VM_H_ */ diff --git a/sys/i386/include/vm.h b/sys/i386/include/vm.h index 2e9c30da9936..fef7a53ca317 100644 --- a/sys/i386/include/vm.h +++ b/sys/i386/include/vm.h @@ -43,5 +43,6 @@ #define VM_MEMATTR_WEAK_UNCACHEABLE ((vm_memattr_t)PAT_UNCACHED) #define VM_MEMATTR_DEFAULT VM_MEMATTR_WRITE_BACK +#define VM_MEMATTR_DEVICE VM_MEMATTR_UNCACHEABLE #endif /* !_MACHINE_VM_H_ */ diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index 31975fb8977c..2a8cf00b5700 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -3155,7 +3155,7 @@ resource_init_map_request_impl(struct resource_map_request *args, size_t sz) { bzero(args, sz); args->size = sz; - args->memattr = VM_MEMATTR_UNCACHEABLE; + args->memattr = VM_MEMATTR_DEVICE; } /** diff --git a/sys/mips/include/vm.h b/sys/mips/include/vm.h index 06af199db17b..c759d8cfa61e 100644 --- a/sys/mips/include/vm.h +++ b/sys/mips/include/vm.h @@ -38,6 +38,7 @@ #define VM_MEMATTR_UNCACHEABLE ((vm_memattr_t)MIPS_CCA_UNCACHED) #define VM_MEMATTR_WRITE_BACK ((vm_memattr_t)MIPS_CCA_CACHED) #define VM_MEMATTR_DEFAULT VM_MEMATTR_WRITE_BACK +#define VM_MEMATTR_DEVICE VM_MEMATTR_UNCACHEABLE #ifdef MIPS_CCA_WC #define VM_MEMATTR_WRITE_COMBINING ((vm_memattr_t)MIPS_CCA_WC) #endif diff --git a/sys/powerpc/include/vm.h b/sys/powerpc/include/vm.h index 3af863509908..692bd8fc2d77 100644 --- a/sys/powerpc/include/vm.h +++ b/sys/powerpc/include/vm.h @@ -42,4 +42,6 @@ #define VM_MEMATTR_WRITE_THROUGH 0x10 #define VM_MEMATTR_PREFETCHABLE 0x20 +#define VM_MEMATTR_DEVICE VM_MEMATTR_DEFAULT + #endif /* !_MACHINE_VM_H_ */ diff --git a/usr.sbin/pciconf/pciconf.c b/usr.sbin/pciconf/pciconf.c index 6b54687d7c79..ccc816d5986d 100644 --- a/usr.sbin/pciconf/pciconf.c +++ b/usr.sbin/pciconf/pciconf.c @@ -1126,11 +1126,7 @@ dump_bar(const char *name, const char *reg, const char *bar_start, if (*reg == '\0' || *el != '\0') errx(1, "Invalid bar specification %s", reg); pbm.pbm_flags = 0; -#ifdef VM_MEMATTR_DEVICE pbm.pbm_memattr = VM_MEMATTR_DEVICE; -#else - pbm.pbm_memattr = VM_MEMATTR_UNCACHEABLE; -#endif fd = open(_PATH_DEVPCI, O_RDWR, 0); if (fd < 0) From owner-dev-commits-src-main@freebsd.org Mon Apr 12 08:41:08 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A4FB65EF49A; Mon, 12 Apr 2021 08:41:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJhz836skz3jky; Mon, 12 Apr 2021 08:41:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4040514278; Mon, 12 Apr 2021 08:41:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13C8f8Wn039195; Mon, 12 Apr 2021 08:41:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13C8f8wx039194; Mon, 12 Apr 2021 08:41:08 GMT (envelope-from git) Date: Mon, 12 Apr 2021 08:41:08 GMT Message-Id: <202104120841.13C8f8wx039194@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: 3da598388943 - main - Remove versatile support MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3da598388943b428bfd165c4d80d0428a23b61f1 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 08:41:08 -0000 The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=3da598388943b428bfd165c4d80d0428a23b61f1 commit 3da598388943b428bfd165c4d80d0428a23b61f1 Author: Andrew Turner AuthorDate: 2021-04-11 13:26:50 +0000 Commit: Andrew Turner CommitDate: 2021-04-12 06:16:31 +0000 Remove versatile support It was used for testing armv6 under QEMU, however since then we added support for the QEMU virt platform. Reviewed by: imp, manu Differential Revision: https://reviews.freebsd.org/D29707 --- sys/arm/annapurna/alpine/files.alpine | 2 +- sys/arm/arm/pl190.c | 311 ------------ sys/arm/{versatile => arm}/sp804.c | 0 sys/arm/conf/VERSATILEPB | 75 --- sys/arm/versatile/files.versatile | 9 - sys/arm/versatile/pl050.c | 742 --------------------------- sys/arm/versatile/versatile_clcd.c | 921 ---------------------------------- sys/arm/versatile/versatile_machdep.c | 104 ---- sys/arm/versatile/versatile_pci.c | 548 -------------------- sys/arm/versatile/versatile_scm.c | 144 ------ sys/arm/versatile/versatile_scm.h | 49 -- sys/arm/versatile/versatile_sic.c | 324 ------------ 12 files changed, 1 insertion(+), 3228 deletions(-) diff --git a/sys/arm/annapurna/alpine/files.alpine b/sys/arm/annapurna/alpine/files.alpine index 6724b45ec505..9b00d1db2d5d 100644 --- a/sys/arm/annapurna/alpine/files.alpine +++ b/sys/arm/annapurna/alpine/files.alpine @@ -1,6 +1,6 @@ # $FreeBSD$ -arm/versatile/sp804.c standard +arm/arm/sp804.c standard dev/uart/uart_dev_ns8250.c optional uart arm/annapurna/alpine/alpine_machdep.c standard diff --git a/sys/arm/arm/pl190.c b/sys/arm/arm/pl190.c deleted file mode 100644 index a8ca18effb8c..000000000000 --- a/sys/arm/arm/pl190.c +++ /dev/null @@ -1,311 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2012-2017 Oleksandr Tymoshenko - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "pic_if.h" - -#ifdef DEBUG -#define dprintf(fmt, args...) printf(fmt, ##args) -#else -#define dprintf(fmt, args...) -#endif - -#define VICIRQSTATUS 0x000 -#define VICFIQSTATUS 0x004 -#define VICRAWINTR 0x008 -#define VICINTSELECT 0x00C -#define VICINTENABLE 0x010 -#define VICINTENCLEAR 0x014 -#define VICSOFTINT 0x018 -#define VICSOFTINTCLEAR 0x01C -#define VICPROTECTION 0x020 -#define VICPERIPHID 0xFE0 -#define VICPRIMECELLID 0xFF0 - -#define VIC_NIRQS 32 - -struct pl190_intc_irqsrc { - struct intr_irqsrc isrc; - u_int irq; -}; - -struct pl190_intc_softc { - device_t dev; - struct mtx mtx; - struct resource * intc_res; - struct pl190_intc_irqsrc isrcs[VIC_NIRQS]; -}; - -#define INTC_VIC_READ_4(sc, reg) \ - bus_read_4(sc->intc_res, (reg)) -#define INTC_VIC_WRITE_4(sc, reg, val) \ - bus_write_4(sc->intc_res, (reg), (val)) - -#define VIC_LOCK(_sc) mtx_lock_spin(&(_sc)->mtx) -#define VIC_UNLOCK(_sc) mtx_unlock_spin(&(_sc)->mtx) - -static inline void -pl190_intc_irq_dispatch(struct pl190_intc_softc *sc, u_int irq, - struct trapframe *tf) -{ - struct pl190_intc_irqsrc *src; - - src = &sc->isrcs[irq]; - if (intr_isrc_dispatch(&src->isrc, tf) != 0) - device_printf(sc->dev, "Stray irq %u detected\n", irq); -} - -static int -pl190_intc_intr(void *arg) -{ - struct pl190_intc_softc *sc; - u_int cpu; - uint32_t num, pending; - struct trapframe *tf; - - sc = arg; - cpu = PCPU_GET(cpuid); - tf = curthread->td_intr_frame; - - VIC_LOCK(sc); - pending = INTC_VIC_READ_4(sc, VICIRQSTATUS); - VIC_UNLOCK(sc); - for (num = 0 ; num < VIC_NIRQS; num++) { - if (pending & (1 << num)) - pl190_intc_irq_dispatch(sc, num, tf); - } - - return (FILTER_HANDLED); -} - -static void -pl190_intc_disable_intr(device_t dev, struct intr_irqsrc *isrc) -{ - struct pl190_intc_softc *sc; - struct pl190_intc_irqsrc *src; - - sc = device_get_softc(dev); - src = (struct pl190_intc_irqsrc *)isrc; - - VIC_LOCK(sc); - INTC_VIC_WRITE_4(sc, VICINTENCLEAR, (1 << src->irq)); - VIC_UNLOCK(sc); -} - -static void -pl190_intc_enable_intr(device_t dev, struct intr_irqsrc *isrc) -{ - struct pl190_intc_softc *sc; - struct pl190_intc_irqsrc *src; - - sc = device_get_softc(dev); - src = (struct pl190_intc_irqsrc *)isrc; - - VIC_LOCK(sc); - INTC_VIC_WRITE_4(sc, VICINTENABLE, (1 << src->irq)); - VIC_UNLOCK(sc); -} - -static int -pl190_intc_map_intr(device_t dev, struct intr_map_data *data, - struct intr_irqsrc **isrcp) -{ - struct intr_map_data_fdt *daf; - struct pl190_intc_softc *sc; - - if (data->type != INTR_MAP_DATA_FDT) - return (ENOTSUP); - - daf = (struct intr_map_data_fdt *)data; - if (daf->ncells != 1 || daf->cells[0] >= VIC_NIRQS) - return (EINVAL); - - sc = device_get_softc(dev); - *isrcp = &sc->isrcs[daf->cells[0]].isrc; - return (0); -} - -static void -pl190_intc_pre_ithread(device_t dev, struct intr_irqsrc *isrc) -{ - pl190_intc_disable_intr(dev, isrc); -} - -static void -pl190_intc_post_ithread(device_t dev, struct intr_irqsrc *isrc) -{ - struct pl190_intc_irqsrc *src; - - src = (struct pl190_intc_irqsrc *)isrc; - pl190_intc_enable_intr(dev, isrc); - arm_irq_memory_barrier(src->irq); -} - -static void -pl190_intc_post_filter(device_t dev, struct intr_irqsrc *isrc) -{ - struct pl190_intc_irqsrc *src; - - src = (struct pl190_intc_irqsrc *)isrc; - arm_irq_memory_barrier(src->irq); -} - -static int -pl190_intc_setup_intr(device_t dev, struct intr_irqsrc *isrc, - struct resource *res, struct intr_map_data *data) -{ - - return (0); -} - -static int -pl190_intc_probe(device_t dev) -{ - - if (!ofw_bus_status_okay(dev)) - return (ENXIO); - - if (!ofw_bus_is_compatible(dev, "arm,versatile-vic")) - return (ENXIO); - device_set_desc(dev, "ARM PL190 VIC"); - return (BUS_PROBE_DEFAULT); -} - -static int -pl190_intc_attach(device_t dev) -{ - struct pl190_intc_softc *sc; - uint32_t id; - int i, rid; - struct pl190_intc_irqsrc *isrcs; - struct intr_pic *pic; - int error; - uint32_t irq; - const char *name; - phandle_t xref; - - sc = device_get_softc(dev); - sc->dev = dev; - mtx_init(&sc->mtx, device_get_nameunit(dev), "pl190", - MTX_SPIN); - - /* Request memory resources */ - rid = 0; - sc->intc_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, - RF_ACTIVE); - if (sc->intc_res == NULL) { - device_printf(dev, "Error: could not allocate memory resources\n"); - return (ENXIO); - } - - /* - * All interrupts should use IRQ line - */ - INTC_VIC_WRITE_4(sc, VICINTSELECT, 0x00000000); - /* Disable all interrupts */ - INTC_VIC_WRITE_4(sc, VICINTENCLEAR, 0xffffffff); - - id = 0; - for (i = 3; i >= 0; i--) { - id = (id << 8) | - (INTC_VIC_READ_4(sc, VICPERIPHID + i*4) & 0xff); - } - - device_printf(dev, "Peripheral ID: %08x\n", id); - - id = 0; - for (i = 3; i >= 0; i--) { - id = (id << 8) | - (INTC_VIC_READ_4(sc, VICPRIMECELLID + i*4) & 0xff); - } - - device_printf(dev, "PrimeCell ID: %08x\n", id); - - /* PIC attachment */ - isrcs = sc->isrcs; - name = device_get_nameunit(sc->dev); - for (irq = 0; irq < VIC_NIRQS; irq++) { - isrcs[irq].irq = irq; - error = intr_isrc_register(&isrcs[irq].isrc, sc->dev, - 0, "%s,%u", name, irq); - if (error != 0) - return (error); - } - - xref = OF_xref_from_node(ofw_bus_get_node(sc->dev)); - pic = intr_pic_register(sc->dev, xref); - if (pic == NULL) - return (ENXIO); - - return (intr_pic_claim_root(sc->dev, xref, pl190_intc_intr, sc, 0)); -} - -static device_method_t pl190_intc_methods[] = { - DEVMETHOD(device_probe, pl190_intc_probe), - DEVMETHOD(device_attach, pl190_intc_attach), - - DEVMETHOD(pic_disable_intr, pl190_intc_disable_intr), - DEVMETHOD(pic_enable_intr, pl190_intc_enable_intr), - DEVMETHOD(pic_map_intr, pl190_intc_map_intr), - DEVMETHOD(pic_post_filter, pl190_intc_post_filter), - DEVMETHOD(pic_post_ithread, pl190_intc_post_ithread), - DEVMETHOD(pic_pre_ithread, pl190_intc_pre_ithread), - DEVMETHOD(pic_setup_intr, pl190_intc_setup_intr), - - DEVMETHOD_END -}; - -static driver_t pl190_intc_driver = { - "intc", - pl190_intc_methods, - sizeof(struct pl190_intc_softc), -}; - -static devclass_t pl190_intc_devclass; - -EARLY_DRIVER_MODULE(intc, simplebus, pl190_intc_driver, pl190_intc_devclass, - 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); diff --git a/sys/arm/versatile/sp804.c b/sys/arm/arm/sp804.c similarity index 100% rename from sys/arm/versatile/sp804.c rename to sys/arm/arm/sp804.c diff --git a/sys/arm/conf/VERSATILEPB b/sys/arm/conf/VERSATILEPB deleted file mode 100644 index 3312f6d4f9e8..000000000000 --- a/sys/arm/conf/VERSATILEPB +++ /dev/null @@ -1,75 +0,0 @@ -# -# VERSATILEPB - Configuration for QEMU version of Versatile Platform Board -# -# For more information on this file, please read the config(5) manual page, -# and/or the handbook section on Kernel Configuration Files: -# -# https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html -# -# The handbook is also available locally in /usr/share/doc/handbook -# if you've installed the doc distribution, otherwise always see the -# FreeBSD World Wide Web server (https://www.FreeBSD.org/) for the -# latest information. -# -# An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first -# in NOTES. -# -# $FreeBSD$ - -ident VERSATILEPB -machine arm armv6 -cpu CPU_ARM1176 - -include "std.armv6" -files "../versatile/files.versatile" -makeoptions MODULES_OVERRIDE="" - -options KERNVIRTADDR=0xc0100000 -makeoptions KERNVIRTADDR=0xc0100000 - -options SCHED_4BSD # 4BSD scheduler -options LINUX_BOOT_ABI # Process metadata passed from Linux boot loaders - -options ROOTDEVNAME=\"ufs:da0s1a\" - -device bpf -device loop -device mii -device mii_bitbang -device smc -device smcphy -device ether -device uart -device pl011 -device pl190 - -device pty -device snp - -device pci - -# SCSI Controllers -device sym # NCR/Symbios/LSI Logic 53C8XX/53C1010/53C1510D - -# ATA/SCSI peripherals -device scbus # SCSI bus (required for ATA/SCSI) -device da # Direct Access (disks) -device pass # Passthrough device (direct ATA/SCSI access) - -# NOTE: serial console is disabled if syscons enabled -# Comment following lines for headless setup -device sc -device kbdmux -options SC_DFLT_FONT # compile font in -makeoptions SC_DFLT_FONT=cp437 - -device md - -options PLATFORM - -# Flattened Device Tree -options FDT # Configure using FDT/DTB data -options FDT_DTB_STATIC -makeoptions FDT_DTS_FILE=versatile-pb.dts diff --git a/sys/arm/versatile/files.versatile b/sys/arm/versatile/files.versatile deleted file mode 100644 index 7e772aba4b0e..000000000000 --- a/sys/arm/versatile/files.versatile +++ /dev/null @@ -1,9 +0,0 @@ -# $FreeBSD$ - -arm/versatile/pl050.c optional sc -arm/versatile/sp804.c standard -arm/versatile/versatile_machdep.c standard -arm/versatile/versatile_clcd.c optional sc -arm/versatile/versatile_pci.c optional pci -arm/versatile/versatile_scm.c standard -arm/versatile/versatile_sic.c standard diff --git a/sys/arm/versatile/pl050.c b/sys/arm/versatile/pl050.c deleted file mode 100644 index cccb4a947c6e..000000000000 --- a/sys/arm/versatile/pl050.c +++ /dev/null @@ -1,742 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2012 Oleksandr Tymoshenko - * All rights reserved. - * - * Based on dev/usb/input/ukbd.c - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include - -#include - -#include - -#define KMI_LOCK() mtx_lock(&Giant) -#define KMI_UNLOCK() mtx_unlock(&Giant) - -#ifdef INVARIANTS -/* - * Assert that the lock is held in all contexts - * where the code can be executed. - */ -#define KMI_LOCK_ASSERT() mtx_assert(&Giant, MA_OWNED) -/* - * Assert that the lock is held in the contexts - * where it really has to be so. - */ -#define KMI_CTX_LOCK_ASSERT() \ - do { \ - if (!kdb_active && !KERNEL_PANICKED()) \ - mtx_assert(&Giant, MA_OWNED); \ - } while (0) -#else -#define KMI_LOCK_ASSERT() (void)0 -#define KMI_CTX_LOCK_ASSERT() (void)0 -#endif - -#define KMICR 0x00 -#define KMICR_TYPE_NONPS2 (1 << 5) -#define KMICR_RXINTREN (1 << 4) -#define KMICR_TXINTREN (1 << 3) -#define KMICR_EN (1 << 2) -#define KMICR_FKMID (1 << 1) -#define KMICR_FKMIC (1 << 0) -#define KMISTAT 0x04 -#define KMISTAT_TXEMPTY (1 << 6) -#define KMISTAT_TXBUSY (1 << 5) -#define KMISTAT_RXFULL (1 << 4) -#define KMISTAT_RXBUSY (1 << 3) -#define KMISTAT_RXPARITY (1 << 2) -#define KMISTAT_KMIC (1 << 1) -#define KMISTAT_KMID (1 << 0) -#define KMIDATA 0x08 -#define KMICLKDIV 0x0C -#define KMIIR 0x10 -#define KMIIR_TXINTR (1 << 1) -#define KMIIR_RXINTR (1 << 0) - -#define KMI_DRIVER_NAME "kmi" -#define KMI_NFKEY (sizeof(fkey_tab)/sizeof(fkey_tab[0])) /* units */ - -#define SET_SCANCODE_SET 0xf0 - -struct kmi_softc { - device_t sc_dev; - keyboard_t sc_kbd; - keymap_t sc_keymap; - accentmap_t sc_accmap; - fkeytab_t sc_fkeymap[KMI_NFKEY]; - - struct resource* sc_mem_res; - struct resource* sc_irq_res; - void* sc_intr_hl; - - int sc_mode; /* input mode (K_XLATE,K_RAW,K_CODE) */ - int sc_state; /* shift/lock key state */ - int sc_accents; /* accent key index (> 0) */ - uint32_t sc_flags; /* flags */ -#define KMI_FLAG_COMPOSE 0x00000001 -#define KMI_FLAG_POLLING 0x00000002 - - struct thread *sc_poll_thread; -}; - -/* Read/Write macros for Timer used as timecounter */ -#define pl050_kmi_read_4(sc, reg) \ - bus_read_4((sc)->sc_mem_res, (reg)) - -#define pl050_kmi_write_4(sc, reg, val) \ - bus_write_4((sc)->sc_mem_res, (reg), (val)) - -/* prototypes */ -static void kmi_set_leds(struct kmi_softc *, uint8_t); -static int kmi_set_typematic(keyboard_t *, int); -static uint32_t kmi_read_char(keyboard_t *, int); -static void kmi_clear_state(keyboard_t *); -static int kmi_ioctl(keyboard_t *, u_long, caddr_t); -static int kmi_enable(keyboard_t *); -static int kmi_disable(keyboard_t *); - -static int kmi_attached = 0; - -/* early keyboard probe, not supported */ -static int -kmi_configure(int flags) -{ - return (0); -} - -/* detect a keyboard, not used */ -static int -kmi_probe(int unit, void *arg, int flags) -{ - return (ENXIO); -} - -/* reset and initialize the device, not used */ -static int -kmi_init(int unit, keyboard_t **kbdp, void *arg, int flags) -{ - return (ENXIO); -} - -/* test the interface to the device, not used */ -static int -kmi_test_if(keyboard_t *kbd) -{ - return (0); -} - -/* finish using this keyboard, not used */ -static int -kmi_term(keyboard_t *kbd) -{ - return (ENXIO); -} - -/* keyboard interrupt routine, not used */ -static int -kmi_intr(keyboard_t *kbd, void *arg) -{ - - return (0); -} - -/* lock the access to the keyboard, not used */ -static int -kmi_lock(keyboard_t *kbd, int lock) -{ - return (1); -} - -/* - * Enable the access to the device; until this function is called, - * the client cannot read from the keyboard. - */ -static int -kmi_enable(keyboard_t *kbd) -{ - - KMI_LOCK(); - KBD_ACTIVATE(kbd); - KMI_UNLOCK(); - - return (0); -} - -/* disallow the access to the device */ -static int -kmi_disable(keyboard_t *kbd) -{ - - KMI_LOCK(); - KBD_DEACTIVATE(kbd); - KMI_UNLOCK(); - - return (0); -} - -/* check if data is waiting */ -static int -kmi_check(keyboard_t *kbd) -{ - struct kmi_softc *sc = kbd->kb_data; - uint32_t reg; - - KMI_CTX_LOCK_ASSERT(); - - if (!KBD_IS_ACTIVE(kbd)) - return (0); - - reg = pl050_kmi_read_4(sc, KMIIR); - return (reg & KMIIR_RXINTR); -} - -/* check if char is waiting */ -static int -kmi_check_char_locked(keyboard_t *kbd) -{ - KMI_CTX_LOCK_ASSERT(); - - if (!KBD_IS_ACTIVE(kbd)) - return (0); - - return (kmi_check(kbd)); -} - -static int -kmi_check_char(keyboard_t *kbd) -{ - int result; - - KMI_LOCK(); - result = kmi_check_char_locked(kbd); - KMI_UNLOCK(); - - return (result); -} - -/* read one byte from the keyboard if it's allowed */ -/* Currently unused. */ -static int -kmi_read(keyboard_t *kbd, int wait) -{ - KMI_CTX_LOCK_ASSERT(); - - if (!KBD_IS_ACTIVE(kbd)) - return (-1); - - ++(kbd->kb_count); - printf("Implement ME: %s\n", __func__); - return (0); -} - -/* read char from the keyboard */ -static uint32_t -kmi_read_char_locked(keyboard_t *kbd, int wait) -{ - struct kmi_softc *sc = kbd->kb_data; - uint32_t reg, data; - - KMI_CTX_LOCK_ASSERT(); - - if (!KBD_IS_ACTIVE(kbd)) - return (NOKEY); - - reg = pl050_kmi_read_4(sc, KMIIR); - if (reg & KMIIR_RXINTR) { - data = pl050_kmi_read_4(sc, KMIDATA); - return (data); - } - - ++kbd->kb_count; - return (NOKEY); -} - -/* Currently wait is always false. */ -static uint32_t -kmi_read_char(keyboard_t *kbd, int wait) -{ - uint32_t keycode; - - KMI_LOCK(); - keycode = kmi_read_char_locked(kbd, wait); - KMI_UNLOCK(); - - return (keycode); -} - -/* some useful control functions */ -static int -kmi_ioctl_locked(keyboard_t *kbd, u_long cmd, caddr_t arg) -{ - struct kmi_softc *sc = kbd->kb_data; - int i; -#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5) || \ - defined(COMPAT_FREEBSD4) || defined(COMPAT_43) - int ival; - -#endif - - KMI_LOCK_ASSERT(); - - switch (cmd) { - case KDGKBMODE: /* get keyboard mode */ - *(int *)arg = sc->sc_mode; - break; -#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5) || \ - defined(COMPAT_FREEBSD4) || defined(COMPAT_43) - case _IO('K', 7): - ival = IOCPARM_IVAL(arg); - arg = (caddr_t)&ival; - /* FALLTHROUGH */ -#endif - case KDSKBMODE: /* set keyboard mode */ - switch (*(int *)arg) { - case K_XLATE: - if (sc->sc_mode != K_XLATE) { - /* make lock key state and LED state match */ - sc->sc_state &= ~LOCK_MASK; - sc->sc_state |= KBD_LED_VAL(kbd); - } - /* FALLTHROUGH */ - case K_RAW: - case K_CODE: - if (sc->sc_mode != *(int *)arg) { - if ((sc->sc_flags & KMI_FLAG_POLLING) == 0) - kmi_clear_state(kbd); - sc->sc_mode = *(int *)arg; - } - break; - default: - return (EINVAL); - } - break; - - case KDGETLED: /* get keyboard LED */ - *(int *)arg = KBD_LED_VAL(kbd); - break; -#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5) || \ - defined(COMPAT_FREEBSD4) || defined(COMPAT_43) - case _IO('K', 66): - ival = IOCPARM_IVAL(arg); - arg = (caddr_t)&ival; - /* FALLTHROUGH */ -#endif - case KDSETLED: /* set keyboard LED */ - /* NOTE: lock key state in "sc_state" won't be changed */ - if (*(int *)arg & ~LOCK_MASK) - return (EINVAL); - - i = *(int *)arg; - - /* replace CAPS LED with ALTGR LED for ALTGR keyboards */ - if (sc->sc_mode == K_XLATE && - kbd->kb_keymap->n_keys > ALTGR_OFFSET) { - if (i & ALKED) - i |= CLKED; - else - i &= ~CLKED; - } - if (KBD_HAS_DEVICE(kbd)) - kmi_set_leds(sc, i); - - KBD_LED_VAL(kbd) = *(int *)arg; - break; - case KDGKBSTATE: /* get lock key state */ - *(int *)arg = sc->sc_state & LOCK_MASK; - break; -#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5) || \ - defined(COMPAT_FREEBSD4) || defined(COMPAT_43) - case _IO('K', 20): - ival = IOCPARM_IVAL(arg); - arg = (caddr_t)&ival; - /* FALLTHROUGH */ -#endif - case KDSKBSTATE: /* set lock key state */ - if (*(int *)arg & ~LOCK_MASK) { - return (EINVAL); - } - sc->sc_state &= ~LOCK_MASK; - sc->sc_state |= *(int *)arg; - - /* set LEDs and quit */ - return (kmi_ioctl(kbd, KDSETLED, arg)); - - case KDSETREPEAT: /* set keyboard repeat rate (new - * interface) */ - 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]; - return (0); - -#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5) || \ - defined(COMPAT_FREEBSD4) || defined(COMPAT_43) - case _IO('K', 67): - ival = IOCPARM_IVAL(arg); - arg = (caddr_t)&ival; - /* FALLTHROUGH */ -#endif - case KDSETRAD: /* set keyboard repeat rate (old - * interface) */ - return (kmi_set_typematic(kbd, *(int *)arg)); - - case PIO_KEYMAP: /* set keyboard translation table */ - case OPIO_KEYMAP: /* set keyboard translation table - * (compat) */ - case PIO_KEYMAPENT: /* set keyboard translation table - * entry */ - case PIO_DEADKEYMAP: /* set accent key translation table */ - sc->sc_accents = 0; - /* FALLTHROUGH */ - default: - return (genkbd_commonioctl(kbd, cmd, arg)); - } - - return (0); -} - -static int -kmi_ioctl(keyboard_t *kbd, u_long cmd, caddr_t arg) -{ - int result; - - /* - * XXX KDGKBSTATE, KDSKBSTATE and KDSETLED can be called from any - * context where printf(9) can be called, which among other things - * includes interrupt filters and threads with any kinds of locks - * already held. For this reason it would be dangerous to acquire - * the Giant here unconditionally. On the other hand we have to - * have it to handle the ioctl. - * So we make our best effort to auto-detect whether we can grab - * the Giant or not. Blame syscons(4) for this. - */ - switch (cmd) { - case KDGKBSTATE: - case KDSKBSTATE: - case KDSETLED: - if (!mtx_owned(&Giant) && !SCHEDULER_STOPPED()) - return (EDEADLK); /* best I could come up with */ - /* FALLTHROUGH */ - default: - KMI_LOCK(); - result = kmi_ioctl_locked(kbd, cmd, arg); - KMI_UNLOCK(); - return (result); - } -} - -/* clear the internal state of the keyboard */ -static void -kmi_clear_state(keyboard_t *kbd) -{ - struct kmi_softc *sc = kbd->kb_data; - - KMI_CTX_LOCK_ASSERT(); - - sc->sc_flags &= ~(KMI_FLAG_COMPOSE | KMI_FLAG_POLLING); - sc->sc_state &= LOCK_MASK; /* preserve locking key state */ - sc->sc_accents = 0; -} - -/* save the internal state, not used */ -static int -kmi_get_state(keyboard_t *kbd, void *buf, size_t len) -{ - return (len == 0) ? 1 : -1; -} - -/* set the internal state, not used */ -static int -kmi_set_state(keyboard_t *kbd, void *buf, size_t len) -{ - return (EINVAL); -} - -static int -kmi_poll(keyboard_t *kbd, int on) -{ *** 2348 LINES SKIPPED *** From owner-dev-commits-src-main@freebsd.org Mon Apr 12 09:55:47 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D5A5F5C97B2; Mon, 12 Apr 2021 09:55:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJkdH5j2fz3nK4; Mon, 12 Apr 2021 09:55:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B27A91516B; Mon, 12 Apr 2021 09:55:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13C9tlTP035696; Mon, 12 Apr 2021 09:55:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13C9tlej035695; Mon, 12 Apr 2021 09:55:47 GMT (envelope-from git) Date: Mon, 12 Apr 2021 09:55:47 GMT Message-Id: <202104120955.13C9tlej035695@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 5e98cae661f3 - main - pf: Ensure that we don't use kif passed to pfi_kkif_attach() MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5e98cae661f3a7e85df7f277660765b823454073 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 09:55:47 -0000 The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=5e98cae661f3a7e85df7f277660765b823454073 commit 5e98cae661f3a7e85df7f277660765b823454073 Author: Kristof Provost AuthorDate: 2021-04-12 09:45:48 +0000 Commit: Kristof Provost CommitDate: 2021-04-12 09:55:21 +0000 pf: Ensure that we don't use kif passed to pfi_kkif_attach() Once a kif is passed to pfi_kkif_attach() we must ensure we never re-use it for anything else. Set the kif to NULL afterwards to guarantee this. Reported-by: syzbot+be5d4f4a7a4c295e659a@syzkaller.appspotmail.com MFC after: 4 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/netpfil/pf/pf_if.c | 1 + sys/netpfil/pf/pf_ioctl.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/sys/netpfil/pf/pf_if.c b/sys/netpfil/pf/pf_if.c index be290a1e1f2e..4630098221c8 100644 --- a/sys/netpfil/pf/pf_if.c +++ b/sys/netpfil/pf/pf_if.c @@ -486,6 +486,7 @@ pfi_dynaddr_setup(struct pf_addr_wrap *aw, sa_family_t af) dyn->pfid_kif = pfi_kkif_attach(kif, IFG_ALL); else dyn->pfid_kif = pfi_kkif_attach(kif, aw->v.ifname); + kif = NULL; pfi_kkif_ref(dyn->pfid_kif); dyn->pfid_net = pfi_unmask(&aw->v.a.mask); diff --git a/sys/netpfil/pf/pf_ioctl.c b/sys/netpfil/pf/pf_ioctl.c index 0b8570f294bf..6ea2a1c4571c 100644 --- a/sys/netpfil/pf/pf_ioctl.c +++ b/sys/netpfil/pf/pf_ioctl.c @@ -2345,6 +2345,7 @@ pf_ioctl_addrule(struct pf_krule *rule, uint32_t ticket, rule->nr = 0; if (rule->ifname[0]) { rule->kif = pfi_kkif_attach(kif, rule->ifname); + kif = NULL; pfi_kkif_ref(rule->kif); } else rule->kif = NULL; @@ -2962,6 +2963,7 @@ DIOCGETRULENV_error: if (newrule->ifname[0]) { newrule->kif = pfi_kkif_attach(kif, newrule->ifname); + kif = NULL; pfi_kkif_ref(newrule->kif); } else newrule->kif = NULL; @@ -3747,6 +3749,7 @@ DIOCGETSTATES_full: } if (pa->ifname[0]) { pa->kif = pfi_kkif_attach(kif, pa->ifname); + kif = NULL; pfi_kkif_ref(pa->kif); } else pa->kif = NULL; From owner-dev-commits-src-main@freebsd.org Mon Apr 12 11:39:53 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9F2625CC23B; Mon, 12 Apr 2021 11:39:53 +0000 (UTC) (envelope-from kp@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJmxP3P8Jz3sTv; Mon, 12 Apr 2021 11:39:53 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from venus.codepro.be (venus.codepro.be [5.9.86.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.codepro.be", Issuer "R3" (verified OK)) (Authenticated sender: kp) by smtp.freebsd.org (Postfix) with ESMTPSA id 5206F20493; Mon, 12 Apr 2021 11:39:53 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: by venus.codepro.be (Postfix, authenticated sender kp) id 8A3992636C; Mon, 12 Apr 2021 13:39:51 +0200 (CEST) From: "Kristof Provost" To: "Shawn Webb" Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 0dd13c77432a - main - libnv: Build PIC Date: Mon, 12 Apr 2021 13:39:50 +0200 X-Mailer: MailMate (1.13.2r5673) Message-ID: <98C59789-AF1F-4B88-B814-F0BD359A06BD@FreeBSD.org> In-Reply-To: <20210410152754.4isx26qyvz6k3qbo@mutt-hbsd> References: <202104100916.13A9GMOp069019@gitrepo.freebsd.org> <20210410152754.4isx26qyvz6k3qbo@mutt-hbsd> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 11:39:53 -0000 On 10 Apr 2021, at 17:27, Shawn Webb wrote: > On Sat, Apr 10, 2021 at 09:16:22AM +0000, Kristof Provost wrote: >> The branch main has been updated by kp: >> >> URL: = >> https://cgit.FreeBSD.org/src/commit/?id=3D0dd13c77432ade1ae94c9661cbad= 5537e3e6ab1d >> >> commit 0dd13c77432ade1ae94c9661cbad5537e3e6ab1d >> Author: Kristof Provost >> AuthorDate: 2021-04-02 15:06:02 +0000 >> Commit: Kristof Provost >> CommitDate: 2021-04-10 09:16:01 +0000 >> >> libnv: Build PIC >> >> Build libnv as position independent code so we can use it from = >> shared >> libraries. >> >> MFC after: 4 weeks >> Sponsored by: Rubicon Communications, LLC ("Netgate") >> Differential Revision: https://reviews.freebsd.org/D29561 >> --- >> lib/libnv/Makefile | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/lib/libnv/Makefile b/lib/libnv/Makefile >> index b13758931c4e..854cd2c7f3f3 100644 >> --- a/lib/libnv/Makefile >> +++ b/lib/libnv/Makefile >> @@ -10,6 +10,7 @@ SHLIB_MAJOR=3D 0 >> >> .PATH: ${SRCTOP}/sys/contrib/libnv ${SRCTOP}/sys/sys >> CFLAGS+=3D-I${.CURDIR} >> +CFLAGS+=3D-fPIC > > Wouldn't the better fix be renaming LIB to SHLIB like every other PIC > lib? > Ed pointed me at INSTALL_PIC_ARCHIVE. I=E2=80=99m also pondering just mak= ing = libpfctl a .so, which should also fix the issue this addresses. The complication is that libpfctl is currently a .a, and can be used in = a shared library itself (for bsnmp), so it has to be - and use - PIC. Best regards, Kristof From owner-dev-commits-src-main@freebsd.org Mon Apr 12 13:36:13 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 44AE15D1629; Mon, 12 Apr 2021 13:36:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJqWd1Sxhz4VFq; Mon, 12 Apr 2021 13:36:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 257501852E; Mon, 12 Apr 2021 13:36:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CDaD0l028968; Mon, 12 Apr 2021 13:36:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CDaDR0028967; Mon, 12 Apr 2021 13:36:13 GMT (envelope-from git) Date: Mon, 12 Apr 2021 13:36:13 GMT Message-Id: <202104121336.13CDaDR0028967@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: f66a1f40740c - main - genet: Use device_t in preference to struct device * MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f66a1f40740c63741b6ebe48cb0cbce9e52ef34e Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 13:36:13 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=f66a1f40740c63741b6ebe48cb0cbce9e52ef34e commit f66a1f40740c63741b6ebe48cb0cbce9e52ef34e Author: Mark Johnston AuthorDate: 2021-04-12 13:31:58 +0000 Commit: Mark Johnston CommitDate: 2021-04-12 13:31:58 +0000 genet: Use device_t in preference to struct device * MFC after: 1 week Sponsored by: The FreeBSD Foundation --- sys/arm64/broadcom/genet/if_genet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/arm64/broadcom/genet/if_genet.c b/sys/arm64/broadcom/genet/if_genet.c index 0fe9f80f4c21..d0fe2b0d5e71 100644 --- a/sys/arm64/broadcom/genet/if_genet.c +++ b/sys/arm64/broadcom/genet/if_genet.c @@ -538,7 +538,7 @@ gen_dma_disable(device_t dev) static int gen_bus_dma_init(struct gen_softc *sc) { - struct device *dev = sc->dev; + device_t dev = sc->dev; int i, error; error = bus_dma_tag_create( From owner-dev-commits-src-main@freebsd.org Mon Apr 12 13:36:14 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 642895D1457; Mon, 12 Apr 2021 13:36:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJqWf2FlPz4VFv; Mon, 12 Apr 2021 13:36:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3E9851852F; Mon, 12 Apr 2021 13:36:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CDaEde028989; Mon, 12 Apr 2021 13:36:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CDaEpV028988; Mon, 12 Apr 2021 13:36:14 GMT (envelope-from git) Date: Mon, 12 Apr 2021 13:36:14 GMT Message-Id: <202104121336.13CDaEpV028988@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: d8b1601d54e9 - main - al_eth: Use device_t in preference to struct device * MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d8b1601d54e94a47af37742420403b16be239ad2 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 13:36:14 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d8b1601d54e94a47af37742420403b16be239ad2 commit d8b1601d54e94a47af37742420403b16be239ad2 Author: Mark Johnston AuthorDate: 2021-04-12 13:32:02 +0000 Commit: Mark Johnston CommitDate: 2021-04-12 13:32:02 +0000 al_eth: Use device_t in preference to struct device * MFC after: 1 week Sponsored by: The FreeBSD Foundation --- sys/dev/al_eth/al_eth.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/dev/al_eth/al_eth.c b/sys/dev/al_eth/al_eth.c index e2fe8c42603f..bfc94275a21c 100644 --- a/sys/dev/al_eth/al_eth.c +++ b/sys/dev/al_eth/al_eth.c @@ -558,7 +558,7 @@ al_dma_map_addr(void *arg, bus_dma_segment_t *segs, int nseg, int error) } static int -al_dma_alloc_coherent(struct device *dev, bus_dma_tag_t *tag, bus_dmamap_t *map, +al_dma_alloc_coherent(device_t dev, bus_dma_tag_t *tag, bus_dmamap_t *map, bus_addr_t *baddr, void **vaddr, uint32_t size) { int ret; @@ -2295,7 +2295,7 @@ static int al_eth_setup_tx_resources(struct al_eth_adapter *adapter, int qid) { struct al_eth_ring *tx_ring = &adapter->tx_ring[qid]; - struct device *dev = tx_ring->dev; + device_t dev = tx_ring->dev; struct al_udma_q_params *q_params = &tx_ring->q_params; int size; int ret; @@ -2472,7 +2472,7 @@ static int al_eth_setup_rx_resources(struct al_eth_adapter *adapter, unsigned int qid) { struct al_eth_ring *rx_ring = &adapter->rx_ring[qid]; - struct device *dev = rx_ring->dev; + device_t dev = rx_ring->dev; struct al_udma_q_params *q_params = &rx_ring->q_params; int size; int ret; From owner-dev-commits-src-main@freebsd.org Mon Apr 12 13:36:15 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BBE0D5D191A; Mon, 12 Apr 2021 13:36:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJqWg49DYz4V1f; Mon, 12 Apr 2021 13:36:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6BED8181F2; Mon, 12 Apr 2021 13:36:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CDaFwp029010; Mon, 12 Apr 2021 13:36:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CDaFGO029009; Mon, 12 Apr 2021 13:36:15 GMT (envelope-from git) Date: Mon, 12 Apr 2021 13:36:15 GMT Message-Id: <202104121336.13CDaFGO029009@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 9771af4942ec - main - cxgb: Use device_t in preference to struct device * MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9771af4942ec735d3f16d0697bb705a911a67266 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 13:36:15 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9771af4942ec735d3f16d0697bb705a911a67266 commit 9771af4942ec735d3f16d0697bb705a911a67266 Author: Mark Johnston AuthorDate: 2021-04-12 13:32:04 +0000 Commit: Mark Johnston CommitDate: 2021-04-12 13:32:04 +0000 cxgb: Use device_t in preference to struct device * MFC after: 1 week Sponsored by: The FreeBSD Foundation --- sys/dev/cxgb/common/cxgb_ctl_defs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/cxgb/common/cxgb_ctl_defs.h b/sys/dev/cxgb/common/cxgb_ctl_defs.h index fe8a4f7defc7..188e54fb0fc2 100644 --- a/sys/dev/cxgb/common/cxgb_ctl_defs.h +++ b/sys/dev/cxgb/common/cxgb_ctl_defs.h @@ -124,7 +124,7 @@ struct rdma_info { unsigned int udbell_len; /* user doorbell region length */ unsigned long udbell_physbase; /* user doorbell physical start addr */ void *kdb_addr; /* kernel doorbell register address */ - struct device *pdev; /* associated PCI device */ + device_t pdev; /* associated PCI device */ }; /* From owner-dev-commits-src-main@freebsd.org Mon Apr 12 13:36:16 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EA79D5D145A; Mon, 12 Apr 2021 13:36:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJqWh4tYBz4V6q; Mon, 12 Apr 2021 13:36:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 85ABA182D5; Mon, 12 Apr 2021 13:36:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CDaGQj029031; Mon, 12 Apr 2021 13:36:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CDaGm1029030; Mon, 12 Apr 2021 13:36:16 GMT (envelope-from git) Date: Mon, 12 Apr 2021 13:36:16 GMT Message-Id: <202104121336.13CDaGm1029030@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 56cbd386fbae - main - qlnxr: Properly initialize the Linux device structure MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 56cbd386fbaefc009541870ee013b2ff8d096bfc Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 13:36:17 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=56cbd386fbaefc009541870ee013b2ff8d096bfc commit 56cbd386fbaefc009541870ee013b2ff8d096bfc Author: Mark Johnston AuthorDate: 2021-04-12 13:32:08 +0000 Commit: Mark Johnston CommitDate: 2021-04-12 13:32:08 +0000 qlnxr: Properly initialize the Linux device structure The driver needs to provide a LinuxKPI device structure to register itself with the IB subsystem. It was erroneously using a copy of its FreeBSD device structure for this purpose. Use linux_pci_attach_device() instead, following the example of the Chelsio iwarp driver. Also ensure that we don't leak the faked device during detach. Reviewed by: hselasky MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29595 --- sys/dev/qlnx/qlnxr/qlnxr_def.h | 2 +- sys/dev/qlnx/qlnxr/qlnxr_os.c | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/sys/dev/qlnx/qlnxr/qlnxr_def.h b/sys/dev/qlnx/qlnxr/qlnxr_def.h index 04f911e792a8..9bc663e2a8d0 100644 --- a/sys/dev/qlnx/qlnxr/qlnxr_def.h +++ b/sys/dev/qlnx/qlnxr/qlnxr_def.h @@ -364,7 +364,7 @@ struct qlnxr_dev { struct ecore_dev *cdev; /* Added to extend Applications Support */ - struct pci_dev *pdev; + struct pci_dev pdev; uint32_t dp_module; uint8_t dp_level; diff --git a/sys/dev/qlnx/qlnxr/qlnxr_os.c b/sys/dev/qlnx/qlnxr/qlnxr_os.c index b6b56f58f166..62c0f2091d2f 100644 --- a/sys/dev/qlnx/qlnxr/qlnxr_os.c +++ b/sys/dev/qlnx/qlnxr/qlnxr_os.c @@ -257,7 +257,7 @@ qlnxr_register_device(qlnxr_dev_t *dev) ibdev->post_recv = qlnxr_post_recv; ibdev->process_mad = qlnxr_process_mad; - ibdev->dma_device = &dev->pdev->dev; + ibdev->dma_device = &dev->pdev.dev; ibdev->get_link_layer = qlnxr_link_layer; @@ -1097,11 +1097,7 @@ qlnxr_add(void *eth_dev) dev->ha = eth_dev; dev->cdev = &ha->cdev; /* Added to extend Application support */ - dev->pdev = kzalloc(sizeof(struct pci_dev), GFP_KERNEL); - - dev->pdev->dev = *(dev->ha->pci_dev); - dev->pdev->device = pci_get_device(dev->ha->pci_dev); - dev->pdev->vendor = pci_get_vendor(dev->ha->pci_dev); + linux_pci_attach_device(dev->ha->pci_dev, NULL, NULL, &dev->pdev); dev->rdma_ctx = &ha->cdev.hwfns[0]; dev->wq_multiplier = wq_multiplier; @@ -1210,6 +1206,8 @@ qlnxr_remove(void *eth_dev, void *qlnx_rdma_dev) qlnxr_remove_sysfiles(dev); ib_dealloc_device(&dev->ibdev); + linux_pci_detach_device(&dev->pdev); + QL_DPRINT12(ha, "exit ha = %p qlnx_rdma_dev = %p\n", ha, qlnx_rdma_dev); return (0); } From owner-dev-commits-src-main@freebsd.org Mon Apr 12 13:36:19 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7CB0E5D1931; Mon, 12 Apr 2021 13:36:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJqWk6RtLz4V4R; Mon, 12 Apr 2021 13:36:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CD0EA17F75; Mon, 12 Apr 2021 13:36:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CDaIkQ029080; Mon, 12 Apr 2021 13:36:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CDaI5A029079; Mon, 12 Apr 2021 13:36:18 GMT (envelope-from git) Date: Mon, 12 Apr 2021 13:36:18 GMT Message-Id: <202104121336.13CDaI5A029079@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: dfff37765ce4 - main - Rename struct device to struct _device MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: dfff37765ce4ea4fd7db4d293b459dc84008f411 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 13:36:19 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=dfff37765ce4ea4fd7db4d293b459dc84008f411 commit dfff37765ce4ea4fd7db4d293b459dc84008f411 Author: Mark Johnston AuthorDate: 2021-04-12 13:32:30 +0000 Commit: Mark Johnston CommitDate: 2021-04-12 13:32:30 +0000 Rename struct device to struct _device types.h defines device_t as a typedef of struct device *. struct device is defined in subr_bus.c and almost all of the kernel uses device_t. The LinuxKPI also defines a struct device, so type confusion can occur. This causes bugs and ambiguity for debugging tools. Rename the FreeBSD struct device to struct _device. Reviewed by: gbe (man pages) Reviewed by: rpokala, imp, jhb MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29676 --- share/man/man9/device.9 | 2 +- share/man/man9/rman.9 | 6 +++--- sys/kern/subr_bus.c | 15 +++++++++------ sys/powerpc/include/bus_dma.h | 4 +--- sys/sys/pcpu.h | 2 +- sys/sys/systm.h | 4 +--- sys/sys/types.h | 2 +- 7 files changed, 17 insertions(+), 18 deletions(-) diff --git a/share/man/man9/device.9 b/share/man/man9/device.9 index 40bd3f16d3ee..d5e30f0abefa 100644 --- a/share/man/man9/device.9 +++ b/share/man/man9/device.9 @@ -35,7 +35,7 @@ .Nm device .Nd an abstract representation of a device .Sh SYNOPSIS -.Vt typedef struct device *device_t ; +.Vt typedef struct _device *device_t ; .Sh DESCRIPTION The device object represents a piece of hardware attached to the system such as an expansion card, the bus which that card is plugged diff --git a/share/man/man9/rman.9 b/share/man/man9/rman.9 index 3e03c05f9088..3faea2a014fc 100644 --- a/share/man/man9/rman.9 +++ b/share/man/man9/rman.9 @@ -88,12 +88,12 @@ .Ft "struct resource *" .Fo rman_reserve_resource .Fa "struct rman *rm" "rman_res_t start" "rman_res_t end" "rman_res_t count" -.Fa "u_int flags" "struct device *dev" +.Fa "u_int flags" "device_t dev" .Fc .Ft "struct resource *" .Fo rman_reserve_resource_bound .Fa "struct rman *rm" "rman_res_t start" "rman_res_t end" "rman_res_t count" -.Fa "rman_res_t bound" "u_int flags" "struct device *dev" +.Fa "rman_res_t bound" "u_int flags" "device_t dev" .Fc .Ft uint32_t .Fn rman_make_alignment_flags "uint32_t size" @@ -101,7 +101,7 @@ .Fn rman_get_start "struct resource *r" .Ft rman_res_t .Fn rman_get_end "struct resource *r" -.Ft "struct device *" +.Ft "device_t" .Fn rman_get_device "struct resource *r" .Ft rman_res_t .Fn rman_get_size "struct resource *r" diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index 2a8cf00b5700..08f1cb5886d2 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -95,7 +95,7 @@ struct driverlink { */ typedef TAILQ_HEAD(devclass_list, devclass) devclass_list_t; typedef TAILQ_HEAD(driver_list, driverlink) driver_list_t; -typedef TAILQ_HEAD(device_list, device) device_list_t; +typedef TAILQ_HEAD(device_list, _device) device_list_t; struct devclass { TAILQ_ENTRY(devclass) link; @@ -112,9 +112,12 @@ struct devclass { }; /** - * @brief Implementation of device. + * @brief Implementation of _device. + * + * The structure is named "_device" instead of "device" to avoid type confusion + * caused by other subsystems defining a (struct device). */ -struct device { +struct _device { /* * A device is a kernel object. The first field must be the * current ops table for the object. @@ -124,8 +127,8 @@ struct device { /* * Device hierarchy. */ - TAILQ_ENTRY(device) link; /**< list of devices in parent */ - TAILQ_ENTRY(device) devlink; /**< global device list membership */ + TAILQ_ENTRY(_device) link; /**< list of devices in parent */ + TAILQ_ENTRY(_device) devlink; /**< global device list membership */ device_t parent; /**< parent of this device */ device_list_t children; /**< list of child devices */ @@ -853,7 +856,7 @@ devctl_safe_quote_sb(struct sbuf *sb, const char *src) /* End of /dev/devctl code */ -static TAILQ_HEAD(,device) bus_data_devices; +static struct device_list bus_data_devices; static int bus_data_generation = 1; static kobj_method_t null_methods[] = { diff --git a/sys/powerpc/include/bus_dma.h b/sys/powerpc/include/bus_dma.h index ba4ebdab4c42..947a25819a7e 100644 --- a/sys/powerpc/include/bus_dma.h +++ b/sys/powerpc/include/bus_dma.h @@ -33,8 +33,6 @@ #include #include -struct device; - -int bus_dma_tag_set_iommu(bus_dma_tag_t, struct device *iommu, void *cookie); +int bus_dma_tag_set_iommu(bus_dma_tag_t, device_t iommu, void *cookie); #endif /* _POWERPC_BUS_DMA_H_ */ diff --git a/sys/sys/pcpu.h b/sys/sys/pcpu.h index 43827b1af4fa..cfc8a215707c 100644 --- a/sys/sys/pcpu.h +++ b/sys/sys/pcpu.h @@ -187,7 +187,7 @@ struct pcpu { STAILQ_ENTRY(pcpu) pc_allcpu; struct lock_list_entry *pc_spinlocks; long pc_cp_time[CPUSTATES]; /* statclock ticks */ - struct device *pc_device; + struct _device *pc_device; /* CPU device handle */ void *pc_netisr; /* netisr SWI cookie */ int pc_unused1; /* unused field */ int pc_domain; /* Memory domain. */ diff --git a/sys/sys/systm.h b/sys/sys/systm.h index 8a5bb23a3e14..5d41c9d53c2c 100644 --- a/sys/sys/systm.h +++ b/sys/sys/systm.h @@ -626,9 +626,8 @@ void counted_warning(unsigned *counter, const char *msg); /* * APIs to manage deprecation and obsolescence. */ -struct device; void _gone_in(int major, const char *msg); -void _gone_in_dev(struct device *dev, int major, const char *msg); +void _gone_in_dev(device_t dev, int major, const char *msg); #ifdef NO_OBSOLETE_CODE #define __gone_ok(m, msg) \ _Static_assert(m < P_OSREL_MAJOR(__FreeBSD_version)), \ @@ -641,5 +640,4 @@ void _gone_in_dev(struct device *dev, int major, const char *msg); #endif /* _KERNEL */ __NULLABILITY_PRAGMA_POP - #endif /* !_SYS_SYSTM_H_ */ diff --git a/sys/sys/types.h b/sys/sys/types.h index c026fa023bd0..58abcf00cebb 100644 --- a/sys/sys/types.h +++ b/sys/sys/types.h @@ -272,7 +272,7 @@ typedef __rman_res_t rman_res_t; #ifdef _KERNEL typedef int boolean_t; -typedef struct device *device_t; +typedef struct _device *device_t; typedef __intfptr_t intfptr_t; /* From owner-dev-commits-src-main@freebsd.org Mon Apr 12 13:36:18 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 12D6A5D1820; Mon, 12 Apr 2021 13:36:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJqWj5jT7z4VGF; Mon, 12 Apr 2021 13:36:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AEA9C18329; Mon, 12 Apr 2021 13:36:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CDaH82029054; Mon, 12 Apr 2021 13:36:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CDaHRW029053; Mon, 12 Apr 2021 13:36:17 GMT (envelope-from git) Date: Mon, 12 Apr 2021 13:36:17 GMT Message-Id: <202104121336.13CDaHRW029053@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 3f322b22e02d - main - linuxkpi: Fix pcie_set_readrq() MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3f322b22e02d6aae147e9948ab50ca1bee9a9dd4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 13:36:18 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3f322b22e02d6aae147e9948ab50ca1bee9a9dd4 commit 3f322b22e02d6aae147e9948ab50ca1bee9a9dd4 Author: Mark Johnston AuthorDate: 2021-04-12 13:32:21 +0000 Commit: Mark Johnston CommitDate: 2021-04-12 13:32:21 +0000 linuxkpi: Fix pcie_set_readrq() We were passing a LinuxKPI struct device * to a pci(4) function that expects a device_t. Reviewed by: manu, hselasky, bz MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29675 --- sys/compat/linuxkpi/common/include/linux/pci.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h b/sys/compat/linuxkpi/common/include/linux/pci.h index 7962da994854..c718c674ea1f 100644 --- a/sys/compat/linuxkpi/common/include/linux/pci.h +++ b/sys/compat/linuxkpi/common/include/linux/pci.h @@ -709,7 +709,7 @@ lkpi_pci_restore_state(struct pci_dev *pdev) /* XXX This should not be necessary. */ #define pcix_set_mmrbc(d, v) 0 #define pcix_get_max_mmrbc(d) 0 -#define pcie_set_readrq(d, v) pci_set_max_read_req(&(d)->dev, (v)) +#define pcie_set_readrq(d, v) pci_set_max_read_req((d)->dev.bsddev, (v)) #define PCI_DMA_BIDIRECTIONAL 0 #define PCI_DMA_TODEVICE 1 From owner-dev-commits-src-main@freebsd.org Mon Apr 12 14:15:27 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 974755D2842; Mon, 12 Apr 2021 14:15:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJrNv3qb6z4Wyk; Mon, 12 Apr 2021 14:15:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6FBC318D19; Mon, 12 Apr 2021 14:15:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CEFRop082385; Mon, 12 Apr 2021 14:15:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CEFRSE082384; Mon, 12 Apr 2021 14:15:27 GMT (envelope-from git) Date: Mon, 12 Apr 2021 14:15:27 GMT Message-Id: <202104121415.13CEFRSE082384@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Hans Petter Selasky Subject: git: 7497dd588901 - main - Fix build of stand/usb . MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: hselasky X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7497dd58890131251441ab992016c9457295094b Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 14:15:27 -0000 The branch main has been updated by hselasky: URL: https://cgit.FreeBSD.org/src/commit/?id=7497dd58890131251441ab992016c9457295094b commit 7497dd58890131251441ab992016c9457295094b Author: Hans Petter Selasky AuthorDate: 2021-04-12 14:12:18 +0000 Commit: Hans Petter Selasky CommitDate: 2021-04-12 14:13:33 +0000 Fix build of stand/usb . MFC after: 1 week Sponsored by: Mellanox Technologies // NVIDIA Networking --- stand/kshim/bsd_kernel.h | 2 ++ sys/sys/gpio.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/stand/kshim/bsd_kernel.h b/stand/kshim/bsd_kernel.h index d99d9ef0cecb..808b1b078db5 100644 --- a/stand/kshim/bsd_kernel.h +++ b/stand/kshim/bsd_kernel.h @@ -242,6 +242,8 @@ typedef signed long ssize_t; #define _OFF_T_DECLARED typedef unsigned long off_t; +typedef int64_t sbintime_t; + typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; diff --git a/sys/sys/gpio.h b/sys/sys/gpio.h index 50b9b9dbb0e5..9ea1d6636c20 100644 --- a/sys/sys/gpio.h +++ b/sys/sys/gpio.h @@ -53,7 +53,7 @@ #define __GPIO_H__ #include -#ifndef _KERNEL +#if !defined(_KERNEL) && !defined(_STANDALONE) #include #endif From owner-dev-commits-src-main@freebsd.org Mon Apr 12 14:18:28 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 86E715D2BFB; Mon, 12 Apr 2021 14:18:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJrSN3S4kz4X0L; Mon, 12 Apr 2021 14:18:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 696C218E89; Mon, 12 Apr 2021 14:18:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CEIS3I082708; Mon, 12 Apr 2021 14:18:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CEISV0082707; Mon, 12 Apr 2021 14:18:28 GMT (envelope-from git) Date: Mon, 12 Apr 2021 14:18:28 GMT Message-Id: <202104121418.13CEISV0082707@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Edward Tomasz Napierala Subject: git: 82431b7506d6 - main - rc: remove the 'archdep' script MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: trasz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 82431b7506d646165d52f11bc2958e8ce8ec5cce Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 14:18:28 -0000 The branch main has been updated by trasz: URL: https://cgit.FreeBSD.org/src/commit/?id=82431b7506d646165d52f11bc2958e8ce8ec5cce commit 82431b7506d646165d52f11bc2958e8ce8ec5cce Author: Edward Tomasz Napierala AuthorDate: 2021-04-12 13:38:16 +0000 Commit: Edward Tomasz Napierala CommitDate: 2021-04-12 14:18:17 +0000 rc: remove the 'archdep' script It was unused since 405c3050f10, which removed iBCS support. This also moves the 'linux' rc script slightly earlier, which might help in some setups. The original version of this patch moved it even more, before 'mountcritlocal', which would fixe mount(8) errors due to missing /dev/shm in setups with entries for /path/to/chroot/dev/shm without the "late" flag; however, in the end 'kldxref' turned out to depend on 'mountcritlocal' anyway. Reported By: pstef Reviewed By: dchagin Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D29590 --- ObsoleteFiles.inc | 3 +++ libexec/rc/rc.d/Makefile | 1 - libexec/rc/rc.d/archdep | 26 -------------------------- libexec/rc/rc.d/linux | 2 +- libexec/rc/rc.d/sysvipc | 2 +- 5 files changed, 5 insertions(+), 29 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 373e014ba074..1019436f1e28 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -40,6 +40,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20210410: remove unused libexec/rc.d/archdep +OLD_FILES+=etc/rc.d/archdep + # 20210408: remove tcp_hostcache.h OLD_FILES+=usr/include/netinet/tcp_hostcache.h diff --git a/libexec/rc/rc.d/Makefile b/libexec/rc/rc.d/Makefile index 1a61e89aa215..7b15cab40bb8 100644 --- a/libexec/rc/rc.d/Makefile +++ b/libexec/rc/rc.d/Makefile @@ -13,7 +13,6 @@ CONFS= DAEMON \ SERVERS \ addswap \ adjkerntz \ - archdep \ bgfsck \ ${_blacklistd} \ bridge \ diff --git a/libexec/rc/rc.d/archdep b/libexec/rc/rc.d/archdep deleted file mode 100755 index 52a7ac684eed..000000000000 --- a/libexec/rc/rc.d/archdep +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -# -# $FreeBSD$ -# - -# PROVIDE: archdep -# REQUIRE: mountcritremote -# KEYWORD: nojail - -. /etc/rc.subr - -name="archdep" -start_cmd="archdep_start" -stop_cmd=":" - -archdep_start() -{ - local _arch - - _arch=`${SYSCTL_N} hw.machine_arch` - case $_arch in - esac -} - -load_rc_config $name -run_rc_command "$1" diff --git a/libexec/rc/rc.d/linux b/libexec/rc/rc.d/linux index c9c45ba8b338..882cf4012495 100755 --- a/libexec/rc/rc.d/linux +++ b/libexec/rc/rc.d/linux @@ -4,7 +4,7 @@ # # PROVIDE: linux -# REQUIRE: archdep +# REQUIRE: kldxref # KEYWORD: nojail . /etc/rc.subr diff --git a/libexec/rc/rc.d/sysvipc b/libexec/rc/rc.d/sysvipc index 0effbe7e22ca..bbec47d75e24 100755 --- a/libexec/rc/rc.d/sysvipc +++ b/libexec/rc/rc.d/sysvipc @@ -4,7 +4,7 @@ # # PROVIDE: sysvipc -# REQUIRE: archdep +# REQUIRE: kldxref # KEYWORD: nojail . /etc/rc.subr From owner-dev-commits-src-main@freebsd.org Mon Apr 12 14:29:14 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7DCBA5D2EE5; Mon, 12 Apr 2021 14:29:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJrhp39zlz4Xb1; Mon, 12 Apr 2021 14:29:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 601E418F2B; Mon, 12 Apr 2021 14:29:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CETET7095890; Mon, 12 Apr 2021 14:29:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CETEEc095889; Mon, 12 Apr 2021 14:29:14 GMT (envelope-from git) Date: Mon, 12 Apr 2021 14:29:14 GMT Message-Id: <202104121429.13CETEEc095889@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Edward Tomasz Napierala Subject: git: 034669e85621 - main - rc: replace NETWORK with NETWORKING MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: trasz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 034669e856211cbc55d6ac7119629701d182647d Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 14:29:14 -0000 The branch main has been updated by trasz: URL: https://cgit.FreeBSD.org/src/commit/?id=034669e856211cbc55d6ac7119629701d182647d commit 034669e856211cbc55d6ac7119629701d182647d Author: Edward Tomasz Napierala AuthorDate: 2021-04-05 15:57:44 +0000 Commit: Edward Tomasz Napierala CommitDate: 2021-04-12 14:28:48 +0000 rc: replace NETWORK with NETWORKING This improves consistency; the NETWORKING script provides both, so there should be no functional change. Differential Revision: https://reviews.freebsd.org/D29587 --- libexec/rc/rc.d/iscsictl | 2 +- libexec/rc/rc.d/iscsid | 2 +- libexec/rc/rc.d/kfd | 2 +- libexec/rc/rc.d/routed | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libexec/rc/rc.d/iscsictl b/libexec/rc/rc.d/iscsictl index 6ae3910f0628..471b030ff799 100755 --- a/libexec/rc/rc.d/iscsictl +++ b/libexec/rc/rc.d/iscsictl @@ -4,7 +4,7 @@ # # PROVIDE: iscsictl -# REQUIRE: NETWORK iscsid +# REQUIRE: NETWORKING iscsid # BEFORE: DAEMON # KEYWORD: nojail diff --git a/libexec/rc/rc.d/iscsid b/libexec/rc/rc.d/iscsid index 3b1cb6f40d1c..48a7b61d1533 100755 --- a/libexec/rc/rc.d/iscsid +++ b/libexec/rc/rc.d/iscsid @@ -4,7 +4,7 @@ # # PROVIDE: iscsid -# REQUIRE: NETWORK +# REQUIRE: NETWORKING # BEFORE: DAEMON # KEYWORD: nojail diff --git a/libexec/rc/rc.d/kfd b/libexec/rc/rc.d/kfd index 5a1a16c37af4..65feaf6102f4 100755 --- a/libexec/rc/rc.d/kfd +++ b/libexec/rc/rc.d/kfd @@ -4,7 +4,7 @@ # # PROVIDE: kfd -# REQUIRE: NETWORK +# REQUIRE: NETWORKING # KEYWORD: shutdown . /etc/rc.subr diff --git a/libexec/rc/rc.d/routed b/libexec/rc/rc.d/routed index 81ba077c85e4..ecf8f5a88b39 100755 --- a/libexec/rc/rc.d/routed +++ b/libexec/rc/rc.d/routed @@ -5,7 +5,7 @@ # PROVIDE: routed dynamicrouting # REQUIRE: netif routing -# BEFORE: NETWORK +# BEFORE: NETWORKING # KEYWORD: nojailvnet . /etc/rc.subr From owner-dev-commits-src-main@freebsd.org Mon Apr 12 14:30:35 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 601075D3157; Mon, 12 Apr 2021 14:30:35 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.139]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJrkL6mh6z4XR8; Mon, 12 Apr 2021 14:30:34 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.66.148.124]) by shaw.ca with ESMTPA id VxaBlMYInHmS3VxaClXTiE; Mon, 12 Apr 2021 08:30:32 -0600 X-Authority-Analysis: v=2.4 cv=MaypB7zf c=1 sm=1 tr=0 ts=60745988 a=Cwc3rblV8FOMdVN/wOAqyQ==:117 a=Cwc3rblV8FOMdVN/wOAqyQ==:17 a=kj9zAlcOel0A:10 a=3YhXtTcJ-WEA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=EkcXrb_YAAAA:8 a=bXnWFbKItQCJmYZXJy0A:9 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 a=LK5xJRSDVpKd5WXXoEvA:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 20484138C; Mon, 12 Apr 2021 07:30:30 -0700 (PDT) Received: from slippy (localhost [127.0.0.1]) by slippy.cwsent.com (8.16.1/8.16.1) with ESMTP id 13CEUUIq030729; Mon, 12 Apr 2021 07:30:30 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <202104121430.13CEUUIq030729@slippy.cwsent.com> X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Mark Johnston cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: dfff37765ce4 - main - Rename struct device to struct _device In-reply-to: <202104121336.13CDaI5A029079@gitrepo.freebsd.org> References: <202104121336.13CDaI5A029079@gitrepo.freebsd.org> Comments: In-reply-to Mark Johnston message dated "Mon, 12 Apr 2021 13:36:18 +0000." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 12 Apr 2021 07:30:30 -0700 X-CMAE-Envelope: MS4xfA+xkx53nAN+fqbVbTeaxbtQDE1F8zlPjjt7/PHL3iNcnWgVK+VMCPHP/WXIuN4hW/hULpzboAe4OAhK4tHjaWNDHfBtnN6vYINaJj4xoHtRBWbmjK2Q 2xwIZFZK6WGzHCtojCj7UdOp0Xsf0IiQVvWGPiXsQ8VGSEeD1M0i9pRqqGKPAuRGaeBu/mgMditm0wgf2xMjyhLi/Z9E9siL/9PPhI5hjqn1KIR9Qn7Cns+O h4PZqABAb8cYyBFDPQLHUYOV1GDp+nqNEiH65VIgzlGZKCdRGpBZSE1GEp2S+rDIqSV4t8b6pVNmdgYiiBW5trb7RHJ0Vu0g1OXLhTGAvQ8= X-Rspamd-Queue-Id: 4FJrkL6mh6z4XR8 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 14:30:35 -0000 In message <202104121336.13CDaI5A029079@gitrepo.freebsd.org>, Mark Johnston wri tes: > The branch main has been updated by markj: > > URL: https://cgit.FreeBSD.org/src/commit/?id=dfff37765ce4ea4fd7db4d293b459dc8 > 4008f411 > > commit dfff37765ce4ea4fd7db4d293b459dc84008f411 > Author: Mark Johnston > AuthorDate: 2021-04-12 13:32:30 +0000 > Commit: Mark Johnston > CommitDate: 2021-04-12 13:32:30 +0000 > > Rename struct device to struct _device > > types.h defines device_t as a typedef of struct device *. struct device > is defined in subr_bus.c and almost all of the kernel uses device_t. > The LinuxKPI also defines a struct device, so type confusion can occur. > > This causes bugs and ambiguity for debugging tools. Rename the FreeBSD > struct device to struct _device. > > Reviewed by: gbe (man pages) > Reviewed by: rpokala, imp, jhb > MFC after: 1 week > Sponsored by: The FreeBSD Foundation > Differential Revision: https://reviews.freebsd.org/D29676 > --- > share/man/man9/device.9 | 2 +- > share/man/man9/rman.9 | 6 +++--- > sys/kern/subr_bus.c | 15 +++++++++------ > sys/powerpc/include/bus_dma.h | 4 +--- > sys/sys/pcpu.h | 2 +- > sys/sys/systm.h | 4 +--- > sys/sys/types.h | 2 +- > 7 files changed, 17 insertions(+), 18 deletions(-) Not that a name matters much but struct _device gives me a sense that the struct is ancillary. Whereas freebsd_device or fbsd_device is more descriptive and gives the struct the status it deserves. Then again, maybe it's just me. -- Cheers, Cy Schubert FreeBSD UNIX: Web: https://FreeBSD.org NTP: Web: https://nwtime.org The need of the many outweighs the greed of the few. From owner-dev-commits-src-main@freebsd.org Mon Apr 12 14:35:54 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3A8935D3340; Mon, 12 Apr 2021 14:35:54 +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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJrrT0qCBz4XqK; Mon, 12 Apr 2021 14:35:52 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2020.home.selasky.org (unknown [178.17.145.105]) (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 mail.turbocat.net (Postfix) with ESMTPSA id BF6922601D5; Mon, 12 Apr 2021 16:35:50 +0200 (CEST) Subject: Re: git: dfff37765ce4 - main - Rename struct device to struct _device To: Cy Schubert , Mark Johnston Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202104121336.13CDaI5A029079@gitrepo.freebsd.org> <202104121430.13CEUUIq030729@slippy.cwsent.com> From: Hans Petter Selasky Message-ID: <0d350998-cf6a-7493-d204-eddf81246ab2@selasky.org> Date: Mon, 12 Apr 2021 16:34:40 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <202104121430.13CEUUIq030729@slippy.cwsent.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4FJrrT0qCBz4XqK 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 [0.70 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+a:mail.turbocat.net:c]; MID_RHS_MATCH_FROM(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[selasky.org]; RBL_DBL_DONT_QUERY_IPS(0.00)[88.99.82.50:from]; RCPT_COUNT_FIVE(0.00)[5]; SPAMHAUS_ZRD(0.00)[88.99.82.50:from:127.0.2.255]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_SPAM_SHORT(1.00)[1.000]; NEURAL_SPAM_LONG(1.00)[1.000]; NEURAL_HAM_MEDIUM(-1.00)[-0.999]; 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]; RCVD_COUNT_TWO(0.00)[2]; MAILMAN_DEST(0.00)[dev-commits-src-all,dev-commits-src-main] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 14:35:54 -0000 Hi, On 4/12/21 4:30 PM, Cy Schubert wrote: > Whereas freebsd_device or fbsd_device is more > descriptive and gives the struct the status it deserves There are other non-FreeBSD OS'es using this structure too. I think freebsd_device is too specific. How about bsd_device? In this world of cross OS compatibility I see a point not being too generic when naming structures. --HPS From owner-dev-commits-src-main@freebsd.org Mon Apr 12 14:36:36 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5E4925D371B; Mon, 12 Apr 2021 14:36:36 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-qk1-x72e.google.com (mail-qk1-x72e.google.com [IPv6:2607:f8b0:4864:20::72e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FJrsH6WPTz4Y8p; Mon, 12 Apr 2021 14:36:35 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-qk1-x72e.google.com with SMTP id c123so9026595qke.1; Mon, 12 Apr 2021 07:36:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=pBXd7BmkC3jicI9CWK0tI5D+7JK9refNL/nsY0cZi2M=; b=vSlegaSCA/IFZc0UD/Cn08ttyWPrleOEyXRzG+QwHxiy0L5oCHTNXuW0msmTK+pY+V dntTWuIRZ1DmMO8m1uY8NaTGU2CM85wy5TsorOlsEiNIZxAeptkgRfdGEwnJER7BKAyr wrg7qVFrEMOtU8ZDmOsaM1mAAAnRb/Y1IRdVG8xD42OojxaqoDnfuWJLcMgV0PtQ3fWJ h3747zxXRtXlHkOeQvhSoxbLVo3PweJ6tJLt8a3Waaa2RY1DRAMjmvxjTmwctjwoz/7z 0uMjiTtcNWAwjZGaI3qVwVUD1dPd20YoH40zxc8FzE00fA1P0dFCSoGQyQDMedfzbx4l eFqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=pBXd7BmkC3jicI9CWK0tI5D+7JK9refNL/nsY0cZi2M=; b=DoomRP5mJZNySPP+QpteNTu/LY4LOY3EovXCktgFaH96h3WnHpzgNIOvQxxT96cwXu 235VfhYojM2fXDbfNWPxuBQ3CCZ6vNs0vL4UWqlzfoEd6aP58Nlk9zaUDjJsNN6Ta8C7 zwY/shXJqYhKFJHZE2dWvBNdmD2NNJhIlhfUFx3q2Iziz5240htT+bztKuNGvDTWTH1g oIsm8rRLS1BYT6ve8UNTjOKBki5DiIYNU0Z1nuUja2wwhHKS7w3x8v1EJCdGmv7RPNR2 N9Zx798HGg7p1HvK7Ilkn3VJFoZDtqUFM4ogAUQfSk3UHHrLWHWcdVlPsHCPQJdWj7Fn g2lQ== X-Gm-Message-State: AOAM533EtNK/gFhh0KuETUFldLkvogaNo+LWq1dtf97ab7gjdPs5HzHl 67pektbKZO4e30HN2jJHIAZ8HUeZm8Dt5A== X-Google-Smtp-Source: ABdhPJzQo0Kei6lVdd6kaw5xckghrnHQGtsO4D6vg6gyYU4ZHIYanDhxzn1765FO+zUr79C1QHVKmw== X-Received: by 2002:a37:a485:: with SMTP id n127mr1692853qke.454.1618238195337; Mon, 12 Apr 2021 07:36:35 -0700 (PDT) Received: from nuc ([142.126.164.150]) by smtp.gmail.com with ESMTPSA id f16sm896816qkl.25.2021.04.12.07.36.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Apr 2021 07:36:34 -0700 (PDT) Sender: Mark Johnston Date: Mon, 12 Apr 2021 10:36:35 -0400 From: Mark Johnston To: Cy Schubert Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: dfff37765ce4 - main - Rename struct device to struct _device Message-ID: References: <202104121336.13CDaI5A029079@gitrepo.freebsd.org> <202104121430.13CEUUIq030729@slippy.cwsent.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202104121430.13CEUUIq030729@slippy.cwsent.com> X-Rspamd-Queue-Id: 4FJrsH6WPTz4Y8p X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=vSlegaSC; dmarc=none; spf=pass (mx1.freebsd.org: domain of markjdb@gmail.com designates 2607:f8b0:4864:20::72e as permitted sender) smtp.mailfrom=markjdb@gmail.com X-Spamd-Result: default: False [0.15 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; NEURAL_HAM_SHORT(-0.15)[-0.147]; FORGED_SENDER(0.30)[markj@freebsd.org,markjdb@gmail.com]; MIME_TRACE(0.00)[0:+]; RBL_DBL_DONT_QUERY_IPS(0.00)[2607:f8b0:4864:20::72e:from]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[markj@freebsd.org,markjdb@gmail.com]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; SPAMHAUS_ZRD(0.00)[2607:f8b0:4864:20::72e:from:127.0.2.255]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_SPAM_LONG(1.00)[1.000]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::72e:from]; MID_RHS_NOT_FQDN(0.50)[]; RCVD_TLS_ALL(0.00)[]; MAILMAN_DEST(0.00)[dev-commits-src-all,dev-commits-src-main] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 14:36:36 -0000 On Mon, Apr 12, 2021 at 07:30:30AM -0700, Cy Schubert wrote: > In message <202104121336.13CDaI5A029079@gitrepo.freebsd.org>, Mark Johnston > wri > tes: > > The branch main has been updated by markj: > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=dfff37765ce4ea4fd7db4d293b459dc8 > > 4008f411 > > > > commit dfff37765ce4ea4fd7db4d293b459dc84008f411 > > Author: Mark Johnston > > AuthorDate: 2021-04-12 13:32:30 +0000 > > Commit: Mark Johnston > > CommitDate: 2021-04-12 13:32:30 +0000 > > > > Rename struct device to struct _device > > > > types.h defines device_t as a typedef of struct device *. struct device > > is defined in subr_bus.c and almost all of the kernel uses device_t. > > The LinuxKPI also defines a struct device, so type confusion can occur. > > > > This causes bugs and ambiguity for debugging tools. Rename the FreeBSD > > struct device to struct _device. > > > > Reviewed by: gbe (man pages) > > Reviewed by: rpokala, imp, jhb > > MFC after: 1 week > > Sponsored by: The FreeBSD Foundation > > Differential Revision: https://reviews.freebsd.org/D29676 > > --- > > share/man/man9/device.9 | 2 +- > > share/man/man9/rman.9 | 6 +++--- > > sys/kern/subr_bus.c | 15 +++++++++------ > > sys/powerpc/include/bus_dma.h | 4 +--- > > sys/sys/pcpu.h | 2 +- > > sys/sys/systm.h | 4 +--- > > sys/sys/types.h | 2 +- > > 7 files changed, 17 insertions(+), 18 deletions(-) > > Not that a name matters much but struct _device gives me a sense that the > struct is ancillary. That's really the intent. struct _device is the internal name and device_t should be used by consumers. > Whereas freebsd_device or fbsd_device is more > descriptive and gives the struct the status it deserves. > > Then again, maybe it's just me. > > > -- > Cheers, > Cy Schubert > FreeBSD UNIX: Web: https://FreeBSD.org > NTP: Web: https://nwtime.org > > The need of the many outweighs the greed of the few. > > From owner-dev-commits-src-main@freebsd.org Mon Apr 12 14:40:13 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 70F835D336A for ; Mon, 12 Apr 2021 14:40:13 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FJrxT2MkNz4Y2M for ; Mon, 12 Apr 2021 14:40:13 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: by mail-qk1-x72d.google.com with SMTP id e13so4042133qkl.6 for ; Mon, 12 Apr 2021 07:40:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=WRhPPlXE3j24G44OrhsC2zxrW7JrqVqPGVR/33728/M=; b=krSHQ/0/tGnZ834CWNauStP9Hlz6r9RdQPg1qRJKS665LJErYr/nGUR71QenVo/+lZ uDkGVdqIXDR6lGQtBrZ0omi8Py0wuUoEZEbD89E3XZ8mqE/3AHBJ6F4+qdlXLJ3wHSd2 oVaoz564oo+rIheLrc02+BOgAWMyhbtoq9hPREu/WIlDw6ks3TE2dDGGVo5cFK5RvznL 91+hM2ir9+eLGjH0kylKJQV0BzZyaUMW3uyHccyjKPCWO0EUcyW3XhvxURII3UnqT0FJ 3N46OaRtufjT7Xgs1yIP0Cb52pK9U9QR6PS1gNokIXjxrz0C+AKCSDepfOA1fANFkGYz k+uA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=WRhPPlXE3j24G44OrhsC2zxrW7JrqVqPGVR/33728/M=; b=HGDF7RPHRx1sBY7TT5J7dygWBOuoz6syyTglaAiJ/JKCzmHLil6yT3LZC/PF/gj800 1i9/0iv8uzRJRWF9e+M51GZvQsvUD+l92Y/fnivCPmTHIOyCdZBOLbbFEISrCgJGZ7ym 6P9bRhAq7VQk/tPx59Q09hWBMqSpgTGnjGU+zESRmb6DdwNU/fngINTGgwR/4vsWUG9F 5+hiU7uqIevjpapdXordM0U/fqjxiGOHYkT/hDxQyFIH0U2RV9XNSDMbqUxb7pT3tNI3 VTUCY6kYzCnyLaCw8VX4QPONcZti6xPICMKZThVSIuw84S7yJUsgdqJMtukuuu8IBaps KdAg== X-Gm-Message-State: AOAM530aFs+uYXf0v4s50BHpSzg9Tt57LwVeTPqS4zmgSoX//LxK6oaA 1sjKJ4JKBTQGMMJj7bqDSZAvug== X-Google-Smtp-Source: ABdhPJwgZzCGhd8TuPX67upCfMelSYHlz+lhmrOIHNKIQZ/lChQaPbNmgwmjeZJ2+1sPZ0HzTarvqw== X-Received: by 2002:a05:620a:a89:: with SMTP id v9mr10091211qkg.279.1618238411935; Mon, 12 Apr 2021 07:40:11 -0700 (PDT) Received: from mutt-hbsd (pool-100-16-222-53.bltmmd.fios.verizon.net. [100.16.222.53]) by smtp.gmail.com with ESMTPSA id l17sm7601037qtk.60.2021.04.12.07.40.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Apr 2021 07:40:11 -0700 (PDT) Date: Mon, 12 Apr 2021 10:40:10 -0400 From: Shawn Webb To: Kristof Provost Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 0dd13c77432a - main - libnv: Build PIC Message-ID: <20210412144010.lcv7swa5ob3eql6m@mutt-hbsd> X-Operating-System: FreeBSD mutt-hbsd 14.0-CURRENT-HBSD FreeBSD 14.0-CURRENT-HBSD X-PGP-Key: https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/blob/master/Shawn_Webb/03A4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc References: <202104100916.13A9GMOp069019@gitrepo.freebsd.org> <20210410152754.4isx26qyvz6k3qbo@mutt-hbsd> <98C59789-AF1F-4B88-B814-F0BD359A06BD@FreeBSD.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="og47aeiobytpupsd" Content-Disposition: inline In-Reply-To: <98C59789-AF1F-4B88-B814-F0BD359A06BD@FreeBSD.org> X-Rspamd-Queue-Id: 4FJrxT2MkNz4Y2M X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 14:40:13 -0000 --og47aeiobytpupsd Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Apr 12, 2021 at 01:39:50PM +0200, Kristof Provost wrote: > On 10 Apr 2021, at 17:27, Shawn Webb wrote: > > On Sat, Apr 10, 2021 at 09:16:22AM +0000, Kristof Provost wrote: > > > The branch main has been updated by kp: > > >=20 > > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D0dd13c77432ade1ae94c96= 61cbad5537e3e6ab1d > > >=20 > > > commit 0dd13c77432ade1ae94c9661cbad5537e3e6ab1d > > > Author: Kristof Provost > > > AuthorDate: 2021-04-02 15:06:02 +0000 > > > Commit: Kristof Provost > > > CommitDate: 2021-04-10 09:16:01 +0000 > > >=20 > > > libnv: Build PIC > > >=20 > > > Build libnv as position independent code so we can use it from > > > shared > > > libraries. > > >=20 > > > MFC after: 4 weeks > > > Sponsored by: Rubicon Communications, LLC ("Netgate") > > > Differential Revision: https://reviews.freebsd.org/D29561 > > > --- > > > lib/libnv/Makefile | 1 + > > > 1 file changed, 1 insertion(+) > > >=20 > > > diff --git a/lib/libnv/Makefile b/lib/libnv/Makefile > > > index b13758931c4e..854cd2c7f3f3 100644 > > > --- a/lib/libnv/Makefile > > > +++ b/lib/libnv/Makefile > > > @@ -10,6 +10,7 @@ SHLIB_MAJOR=3D 0 > > >=20 > > > .PATH: ${SRCTOP}/sys/contrib/libnv ${SRCTOP}/sys/sys > > > CFLAGS+=3D-I${.CURDIR} > > > +CFLAGS+=3D-fPIC > >=20 > > Wouldn't the better fix be renaming LIB to SHLIB like every other PIC > > lib? > >=20 > Ed pointed me at INSTALL_PIC_ARCHIVE. I=E2=80=99m also pondering just mak= ing > libpfctl a .so, which should also fix the issue this addresses. >=20 > The complication is that libpfctl is currently a .a, and can be used in a > shared library itself (for bsnmp), so it has to be - and use - PIC. Out of curiosity, is there a reason not to have the shared library depend on libnv as a shared library? Thanks, --=20 Shawn Webb Cofounder / Security Engineer HardenedBSD https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A= 4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc --og47aeiobytpupsd Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEA6TL67gupaZ9nzhT/y5nonf44foFAmB0W8gACgkQ/y5nonf4 4fp6fRAAmKuDEACIDiwZBulIBiSRtEJaXkXl53gmferwb+XV+rLGXzCP1W1hB3tD 7ZeFhs6Egvc83FDvDsk9JT4MYr6OKyLa7J31sDCY4hSGWXNxtBYJQnnlVjcSKvrp noWeP75dZ9NM+X0+GlxuE8NVOxPbLqrHmFo0iKMG0GqWo/R41vwytqvkUgP7jMPs lnK60Wk7iJJX8mI6I7DUqwN54D9468Kr6Or89hPVRZ37tZpTbaGKvy/KTCoxZImw /AgfG58dp8FylwxbfhY3TO6qc3cMu8OeMQ0l8rX+TK2nj7nvmhq4Pl2L6021xW+I IoHkj1Mk5fgFatFhZm7JNdvWf1XC9bHRNXMHsRFeiMi6LLwMJA+SL96lO7J3Ptty 910SJ1b+thh2Toaq+s1prbf19GJliHH7iCuvyCgvjoAIHHhCIyZy45SkztStY52r EhTAosfXMdruV57AKZypsAXm6Tkl52U6bsYJMmIkGmIWGKb731dalWz0nyeSS28M LLnvNbeR91tzHOgdfSywBqnaaGpHiZPYQBBMkmxnxIPtst0nKIezxA/zg2AZy5MO pfR1PpDQU+LC4i7VjHdjlLTWa5CuNdtQVkc6GTe0QrUtINtEGm2mBsqlKMg5p8pd t58l2bYUj5feJJ6jiktgvabTZVu/lkXBAHISawOFrNi/A9a6Tqg= =ddtq -----END PGP SIGNATURE----- --og47aeiobytpupsd-- From owner-dev-commits-src-main@freebsd.org Mon Apr 12 14:42:38 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3095F5D3994; Mon, 12 Apr 2021 14:42:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJs0G0wNHz4Yb8; Mon, 12 Apr 2021 14:42:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 126C4192AB; Mon, 12 Apr 2021 14:42:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CEgcxv021977; Mon, 12 Apr 2021 14:42:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CEgcvv021976; Mon, 12 Apr 2021 14:42:38 GMT (envelope-from git) Date: Mon, 12 Apr 2021 14:42:38 GMT Message-Id: <202104121442.13CEgcvv021976@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 2816bd8442bc - main - rmlock(9): add an RM_DUPOK flag MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2816bd8442bc323d50434d0e64cb4b7c10a195e8 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 14:42:38 -0000 The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=2816bd8442bc323d50434d0e64cb4b7c10a195e8 commit 2816bd8442bc323d50434d0e64cb4b7c10a195e8 Author: Mitchell Horne AuthorDate: 2021-04-08 17:41:19 +0000 Commit: Mitchell Horne CommitDate: 2021-04-12 14:42:21 +0000 rmlock(9): add an RM_DUPOK flag Allows for duplicate locks to be acquired without witness complaining. Similar flags exists already for rwlock(9) and sx(9). Reviewed by: markj MFC after: 3 days Sponsored by: NetApp, Inc. Sponsored by: Klara, Inc. NetApp PR: 52 Differential Revision: https://reviews.freebsd.org/D29683n --- share/man/man9/rmlock.9 | 5 ++++- sys/kern/kern_rmlock.c | 2 ++ sys/sys/rmlock.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/share/man/man9/rmlock.9 b/share/man/man9/rmlock.9 index 53de7c73b79a..6d128f986968 100644 --- a/share/man/man9/rmlock.9 +++ b/share/man/man9/rmlock.9 @@ -26,7 +26,7 @@ .\" $FreeBSD$ .\" .\" Based on rwlock.9 man page -.Dd December 27, 2019 +.Dd April 12, 2021 .Dt RMLOCK 9 .Os .Sh NAME @@ -186,6 +186,9 @@ will assert that the has not been initialized multiple times without intervening calls to .Fn rm_destroy unless this option is specified. +.It Dv RM_DUPOK +.Xr witness 4 +should not log messages about duplicate locks being acquired. .El .It Fn rm_rlock "struct rmlock *rm" "struct rm_priotracker* tracker" Lock diff --git a/sys/kern/kern_rmlock.c b/sys/kern/kern_rmlock.c index f661e209b633..7230a00e357b 100644 --- a/sys/kern/kern_rmlock.c +++ b/sys/kern/kern_rmlock.c @@ -289,6 +289,8 @@ rm_init_flags(struct rmlock *rm, const char *name, int opts) liflags |= LO_RECURSABLE; if (opts & RM_NEW) liflags |= LO_NEW; + if (opts & RM_DUPOK) + liflags |= LO_DUPOK; rm->rm_writecpus = all_cpus; LIST_INIT(&rm->rm_activeReaders); if (opts & RM_SLEEPABLE) { diff --git a/sys/sys/rmlock.h b/sys/sys/rmlock.h index 3e4db5d853c6..5aaf8f039026 100644 --- a/sys/sys/rmlock.h +++ b/sys/sys/rmlock.h @@ -48,6 +48,7 @@ #define RM_RECURSE 0x00000002 #define RM_SLEEPABLE 0x00000004 #define RM_NEW 0x00000008 +#define RM_DUPOK 0x00000010 void rm_init(struct rmlock *rm, const char *name); void rm_init_flags(struct rmlock *rm, const char *name, int opts); From owner-dev-commits-src-main@freebsd.org Mon Apr 12 14:44:48 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4F4CD5D3B54; Mon, 12 Apr 2021 14:44:48 +0000 (UTC) (envelope-from kp@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJs2m1npwz4YH7; Mon, 12 Apr 2021 14:44:48 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from venus.codepro.be (venus.codepro.be [5.9.86.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.codepro.be", Issuer "R3" (verified OK)) (Authenticated sender: kp) by smtp.freebsd.org (Postfix) with ESMTPSA id 14DEE216EA; Mon, 12 Apr 2021 14:44:48 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: by venus.codepro.be (Postfix, authenticated sender kp) id 75E72269C2; Mon, 12 Apr 2021 16:44:46 +0200 (CEST) From: "Kristof Provost" To: "Shawn Webb" Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 0dd13c77432a - main - libnv: Build PIC Date: Mon, 12 Apr 2021 16:44:45 +0200 X-Mailer: MailMate (1.13.2r5673) Message-ID: <508CFCEE-2639-451E-B98C-42DD3DC1B4D7@FreeBSD.org> In-Reply-To: <20210412144010.lcv7swa5ob3eql6m@mutt-hbsd> References: <202104100916.13A9GMOp069019@gitrepo.freebsd.org> <20210410152754.4isx26qyvz6k3qbo@mutt-hbsd> <98C59789-AF1F-4B88-B814-F0BD359A06BD@FreeBSD.org> <20210412144010.lcv7swa5ob3eql6m@mutt-hbsd> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 14:44:48 -0000 On 12 Apr 2021, at 16:40, Shawn Webb wrote: > On Mon, Apr 12, 2021 at 01:39:50PM +0200, Kristof Provost wrote: >> On 10 Apr 2021, at 17:27, Shawn Webb wrote: >>> On Sat, Apr 10, 2021 at 09:16:22AM +0000, Kristof Provost wrote: >>>> The branch main has been updated by kp: >>>> >>>> URL: = >>>> https://cgit.FreeBSD.org/src/commit/?id=3D0dd13c77432ade1ae94c9661cb= ad5537e3e6ab1d >>>> >>>> commit 0dd13c77432ade1ae94c9661cbad5537e3e6ab1d >>>> Author: Kristof Provost >>>> AuthorDate: 2021-04-02 15:06:02 +0000 >>>> Commit: Kristof Provost >>>> CommitDate: 2021-04-10 09:16:01 +0000 >>>> >>>> libnv: Build PIC >>>> >>>> Build libnv as position independent code so we can use it from >>>> shared >>>> libraries. >>>> >>>> MFC after: 4 weeks >>>> Sponsored by: Rubicon Communications, LLC ("Netgate") >>>> Differential Revision: https://reviews.freebsd.org/D29561 >>>> --- >>>> lib/libnv/Makefile | 1 + >>>> 1 file changed, 1 insertion(+) >>>> >>>> diff --git a/lib/libnv/Makefile b/lib/libnv/Makefile >>>> index b13758931c4e..854cd2c7f3f3 100644 >>>> --- a/lib/libnv/Makefile >>>> +++ b/lib/libnv/Makefile >>>> @@ -10,6 +10,7 @@ SHLIB_MAJOR=3D 0 >>>> >>>> .PATH: ${SRCTOP}/sys/contrib/libnv ${SRCTOP}/sys/sys >>>> CFLAGS+=3D-I${.CURDIR} >>>> +CFLAGS+=3D-fPIC >>> >>> Wouldn't the better fix be renaming LIB to SHLIB like every other = >>> PIC >>> lib? >>> >> Ed pointed me at INSTALL_PIC_ARCHIVE. I=E2=80=99m also pondering just = >> making >> libpfctl a .so, which should also fix the issue this addresses. >> >> The complication is that libpfctl is currently a .a, and can be used = >> in a >> shared library itself (for bsnmp), so it has to be - and use - PIC. > > Out of curiosity, is there a reason not to have the shared library > depend on libnv as a shared library? > That=E2=80=99s mostly an accident. Libpfctl is currently marked as = INTERNALLIB=3Dtrue, which makes it a static library and links it to the = static library. I=E2=80=99m considering making libpfctl a shared library, if only because= = there are consumers of the pf ioctl interface in ports, and I intend to = remove some of the old (for which there are now nvlist-based versions) = ioctls. That will be a lot easier for those applications if they can = just use libpfctl. The downside is that, if we consider libpfctl to be a stable ABI, we = move the previous ABI problem from the kernel to userspace, rather than = getting rid of it. Best regards, Kristof From owner-dev-commits-src-main@freebsd.org Mon Apr 12 15:12:47 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CCE2E5D4409; Mon, 12 Apr 2021 15:12:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJsg35PKbz4ZXm; Mon, 12 Apr 2021 15:12:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AC43819660; Mon, 12 Apr 2021 15:12:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CFCljP062442; Mon, 12 Apr 2021 15:12:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CFClEJ062441; Mon, 12 Apr 2021 15:12:47 GMT (envelope-from git) Date: Mon, 12 Apr 2021 15:12:47 GMT Message-Id: <202104121512.13CFClEJ062441@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Chuck Tuffli Subject: git: 0c6282e842b3 - main - bhyve: add SMBIOS Baseboard Information MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: chuck X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0c6282e842b33a1c86e01b27fc40af9c76fd404e Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 15:12:47 -0000 The branch main has been updated by chuck: URL: https://cgit.FreeBSD.org/src/commit/?id=0c6282e842b33a1c86e01b27fc40af9c76fd404e commit 0c6282e842b33a1c86e01b27fc40af9c76fd404e Author: Chuck Tuffli AuthorDate: 2021-04-12 15:09:52 +0000 Commit: Chuck Tuffli CommitDate: 2021-04-12 15:09:52 +0000 bhyve: add SMBIOS Baseboard Information Add the System Management BIOS Baseboard (or Module) Information a.k.a. Type 2 structure to the SMBIOS emulation. Reviewed by: rgrimes, bcran, grehan MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29657 --- usr.sbin/bhyve/smbiostbl.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/usr.sbin/bhyve/smbiostbl.c b/usr.sbin/bhyve/smbiostbl.c index 716fb48178c1..ca68f8d95363 100644 --- a/usr.sbin/bhyve/smbiostbl.c +++ b/usr.sbin/bhyve/smbiostbl.c @@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$"); #define SMBIOS_TYPE_BIOS 0 #define SMBIOS_TYPE_SYSTEM 1 +#define SMBIOS_TYPE_BOARD 2 #define SMBIOS_TYPE_CHASSIS 3 #define SMBIOS_TYPE_PROCESSOR 4 #define SMBIOS_TYPE_MEMARRAY 16 @@ -157,10 +158,31 @@ struct smbios_table_type1 { uint8_t family; /* family name string */ } __packed; +/* + * Baseboard (or Module) Information + */ +#define SMBIOS_BRF_HOSTING 0x1 +#define SMBIOS_BRT_MOTHERBOARD 0xa + +struct smbios_table_type2 { + struct smbios_structure header; + uint8_t manufacturer; /* manufacturer string */ + uint8_t product; /* product name string */ + uint8_t version; /* version string */ + uint8_t serial; /* serial number string */ + uint8_t asset; /* asset tag string */ + uint8_t fflags; /* feature flags */ + uint8_t location; /* location in chassis */ + uint16_t chandle; /* chassis handle */ + uint8_t type; /* board type */ + uint8_t n_objs; /* number of contained object handles */ +} __packed; + /* * System Enclosure or Chassis */ #define SMBIOS_CHT_UNKNOWN 0x02 /* unknown */ +#define SMBIOS_CHT_DESKTOP 0x03 /* desktop */ #define SMBIOS_CHST_SAFE 0x03 /* safe */ @@ -360,6 +382,30 @@ const char *smbios_type1_strings[] = { NULL }; +struct smbios_table_type2 smbios_type2_template = { + { SMBIOS_TYPE_BOARD, sizeof (struct smbios_table_type2), 0 }, + 1, /* manufacturer string */ + 2, /* product string */ + 3, /* version string */ + 4, /* serial number string */ + 5, /* asset tag string */ + SMBIOS_BRF_HOSTING, /* feature flags */ + 6, /* location string */ + SMBIOS_CHT_DESKTOP, /* chassis handle */ + SMBIOS_BRT_MOTHERBOARD, /* board type */ + 0 +}; + +const char *smbios_type2_strings[] = { + "FreeBSD", /* manufacturer string */ + "BHYVE", /* product name string */ + "1.0", /* version string */ + "None", /* serial number string */ + "None", /* asset tag string */ + "None", /* location string */ + NULL +}; + struct smbios_table_type3 smbios_type3_template = { { SMBIOS_TYPE_CHASSIS, sizeof (struct smbios_table_type3), 0 }, 1, /* manufacturer string */ @@ -518,6 +564,9 @@ static struct smbios_template_entry smbios_template[] = { { (struct smbios_structure *)&smbios_type1_template, smbios_type1_strings, smbios_type1_initializer }, + { (struct smbios_structure *)&smbios_type2_template, + smbios_type2_strings, + smbios_generic_initializer }, { (struct smbios_structure *)&smbios_type3_template, smbios_type3_strings, smbios_generic_initializer }, From owner-dev-commits-src-main@freebsd.org Mon Apr 12 15:28:44 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 050DC5D4A1D; Mon, 12 Apr 2021 15:28:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJt1R6ndzz4b7q; Mon, 12 Apr 2021 15:28:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D156119B72; Mon, 12 Apr 2021 15:28:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CFShpu076205; Mon, 12 Apr 2021 15:28:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CFShxp076204; Mon, 12 Apr 2021 15:28:43 GMT (envelope-from git) Date: Mon, 12 Apr 2021 15:28:43 GMT Message-Id: <202104121528.13CFShxp076204@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 08d9c9202755 - main - tcp_input/syncache: acquire only read lock on PCB for SYN, !ACK packets MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 08d9c9202755a30f97617758595214a530afcaea Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 15:28:44 -0000 The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=08d9c9202755a30f97617758595214a530afcaea commit 08d9c9202755a30f97617758595214a530afcaea Author: Gleb Smirnoff AuthorDate: 2021-03-19 02:06:13 +0000 Commit: Gleb Smirnoff CommitDate: 2021-04-12 15:25:31 +0000 tcp_input/syncache: acquire only read lock on PCB for SYN,!ACK packets When packet is a SYN packet, we don't need to modify any existing PCB. Normally SYN arrives on a listening socket, we either create a syncache entry or generate syncookie, but we don't modify anything with the listening socket or associated PCB. Thus create a new PCB lookup mode - rlock if listening. This removes the primary contention point under SYN flood - the listening socket PCB. Sidenote: when SYN arrives on a synchronized connection, we still don't need write access to PCB to send a challenge ACK or just to drop. There is only one exclusion - tcptw recycling. However, existing entanglement of tcp_input + stacks doesn't allow to make this change small. Consider this patch as first approach to the problem. Reviewed by: rrs Differential revision: https://reviews.freebsd.org/D29576 --- sys/netinet/in_pcb.c | 35 ++++++++++++++--------------------- sys/netinet/in_pcb.h | 3 ++- sys/netinet/tcp_input.c | 42 ++++++++++++++++++++++++------------------ sys/netinet/tcp_subr.c | 2 +- sys/netinet/tcp_syncache.c | 10 +++++----- sys/netinet6/in6_pcb.c | 34 ++++++++++++++-------------------- sys/security/mac/mac_inet.c | 2 +- 7 files changed, 61 insertions(+), 67 deletions(-) diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c index 40a0b4c0676e..43cd469e0fcf 100644 --- a/sys/netinet/in_pcb.c +++ b/sys/netinet/in_pcb.c @@ -2518,31 +2518,24 @@ in_pcblookup_hash(struct inpcbinfo *pcbinfo, struct in_addr faddr, struct inpcb *inp; inp = in_pcblookup_hash_locked(pcbinfo, faddr, fport, laddr, lport, - (lookupflags & ~(INPLOOKUP_RLOCKPCB | INPLOOKUP_WLOCKPCB)), ifp, - numa_domain); + lookupflags & INPLOOKUP_WILDCARD, ifp, numa_domain); if (inp != NULL) { if (lookupflags & INPLOOKUP_WLOCKPCB) { INP_WLOCK(inp); - if (__predict_false(inp->inp_flags2 & INP_FREED)) { - INP_WUNLOCK(inp); - inp = NULL; - } } else if (lookupflags & INPLOOKUP_RLOCKPCB) { INP_RLOCK(inp); - if (__predict_false(inp->inp_flags2 & INP_FREED)) { - INP_RUNLOCK(inp); - inp = NULL; - } + } else if (lookupflags & INPLOOKUP_RLOCKLISTEN) { + if (inp->inp_socket != NULL && + SOLISTENING(inp->inp_socket)) + INP_RLOCK(inp); + else + INP_WLOCK(inp); } else panic("%s: locking bug", __func__); -#ifdef INVARIANTS - if (inp != NULL) { - if (lookupflags & INPLOOKUP_WLOCKPCB) - INP_WLOCK_ASSERT(inp); - else - INP_RLOCK_ASSERT(inp); + if (__predict_false(inp->inp_flags2 & INP_FREED)) { + INP_UNLOCK(inp); + inp = NULL; } -#endif } return (inp); @@ -2564,8 +2557,8 @@ in_pcblookup(struct inpcbinfo *pcbinfo, struct in_addr faddr, u_int fport, KASSERT((lookupflags & ~INPLOOKUP_MASK) == 0, ("%s: invalid lookup flags %d", __func__, lookupflags)); - KASSERT((lookupflags & (INPLOOKUP_RLOCKPCB | INPLOOKUP_WLOCKPCB)) != 0, - ("%s: LOCKPCB not set", __func__)); + KASSERT((lookupflags & (INPLOOKUP_RLOCKPCB | INPLOOKUP_WLOCKPCB | + INPLOOKUP_RLOCKLISTEN)) != 0, ("%s: LOCKPCB not set", __func__)); /* * When not using RSS, use connection groups in preference to the @@ -2600,8 +2593,8 @@ in_pcblookup_mbuf(struct inpcbinfo *pcbinfo, struct in_addr faddr, KASSERT((lookupflags & ~INPLOOKUP_MASK) == 0, ("%s: invalid lookup flags %d", __func__, lookupflags)); - KASSERT((lookupflags & (INPLOOKUP_RLOCKPCB | INPLOOKUP_WLOCKPCB)) != 0, - ("%s: LOCKPCB not set", __func__)); + KASSERT((lookupflags & (INPLOOKUP_RLOCKPCB | INPLOOKUP_WLOCKPCB | + INPLOOKUP_RLOCKLISTEN)) != 0, ("%s: LOCKPCB not set", __func__)); #ifdef PCBGROUP /* diff --git a/sys/netinet/in_pcb.h b/sys/netinet/in_pcb.h index 9604a837cfb4..4959fc238dfb 100644 --- a/sys/netinet/in_pcb.h +++ b/sys/netinet/in_pcb.h @@ -761,9 +761,10 @@ int inp_so_options(const struct inpcb *inp); #define INPLOOKUP_WILDCARD 0x00000001 /* Allow wildcard sockets. */ #define INPLOOKUP_RLOCKPCB 0x00000002 /* Return inpcb read-locked. */ #define INPLOOKUP_WLOCKPCB 0x00000004 /* Return inpcb write-locked. */ +#define INPLOOKUP_RLOCKLISTEN 0x00000008 /* Rlock if listening, W if !.*/ #define INPLOOKUP_MASK (INPLOOKUP_WILDCARD | INPLOOKUP_RLOCKPCB | \ - INPLOOKUP_WLOCKPCB) + INPLOOKUP_WLOCKPCB | INPLOOKUP_RLOCKLISTEN) #define sotoinpcb(so) ((struct inpcb *)(so)->so_pcb) diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index e53296670a0f..f69262230a05 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -626,6 +626,7 @@ tcp_input(struct mbuf **mp, int *offp, int proto) int drop_hdrlen; int thflags; int rstreason = 0; /* For badport_bandlim accounting purposes */ + int lookupflag; uint8_t iptos; struct m_tag *fwd_tag = NULL; #ifdef INET6 @@ -825,6 +826,12 @@ tcp_input(struct mbuf **mp, int *offp, int proto) ) fwd_tag = m_tag_find(m, PACKET_TAG_IPFORWARD, NULL); + /* + * For initial SYN packets arriving on listening socket, + * we don't need write lock. + */ + lookupflag = (thflags & (TH_ACK|TH_SYN)) == TH_SYN ? + INPLOOKUP_RLOCKLISTEN : INPLOOKUP_WLOCKPCB; findpcb: #ifdef INET6 if (isipv6 && fwd_tag != NULL) { @@ -837,7 +844,7 @@ findpcb: */ inp = in6_pcblookup_mbuf(&V_tcbinfo, &ip6->ip6_src, th->th_sport, &ip6->ip6_dst, th->th_dport, - INPLOOKUP_WLOCKPCB, m->m_pkthdr.rcvif, m); + lookupflag, m->m_pkthdr.rcvif, m); if (!inp) { /* * It's new. Try to find the ambushing socket. @@ -847,14 +854,13 @@ findpcb: inp = in6_pcblookup(&V_tcbinfo, &ip6->ip6_src, th->th_sport, &next_hop6->sin6_addr, next_hop6->sin6_port ? ntohs(next_hop6->sin6_port) : - th->th_dport, INPLOOKUP_WILDCARD | - INPLOOKUP_WLOCKPCB, m->m_pkthdr.rcvif); + th->th_dport, INPLOOKUP_WILDCARD | lookupflag, + m->m_pkthdr.rcvif); } } else if (isipv6) { inp = in6_pcblookup_mbuf(&V_tcbinfo, &ip6->ip6_src, th->th_sport, &ip6->ip6_dst, th->th_dport, - INPLOOKUP_WILDCARD | INPLOOKUP_WLOCKPCB, - m->m_pkthdr.rcvif, m); + INPLOOKUP_WILDCARD | lookupflag, m->m_pkthdr.rcvif, m); } #endif /* INET6 */ #if defined(INET6) && defined(INET) @@ -870,8 +876,7 @@ findpcb: * already got one like this? */ inp = in_pcblookup_mbuf(&V_tcbinfo, ip->ip_src, th->th_sport, - ip->ip_dst, th->th_dport, INPLOOKUP_WLOCKPCB, - m->m_pkthdr.rcvif, m); + ip->ip_dst, th->th_dport, lookupflag, m->m_pkthdr.rcvif, m); if (!inp) { /* * It's new. Try to find the ambushing socket. @@ -881,14 +886,13 @@ findpcb: inp = in_pcblookup(&V_tcbinfo, ip->ip_src, th->th_sport, next_hop->sin_addr, next_hop->sin_port ? ntohs(next_hop->sin_port) : - th->th_dport, INPLOOKUP_WILDCARD | - INPLOOKUP_WLOCKPCB, m->m_pkthdr.rcvif); + th->th_dport, INPLOOKUP_WILDCARD | lookupflag, + m->m_pkthdr.rcvif); } } else inp = in_pcblookup_mbuf(&V_tcbinfo, ip->ip_src, th->th_sport, ip->ip_dst, th->th_dport, - INPLOOKUP_WILDCARD | INPLOOKUP_WLOCKPCB, - m->m_pkthdr.rcvif, m); + INPLOOKUP_WILDCARD | lookupflag, m->m_pkthdr.rcvif, m); #endif /* INET */ /* @@ -918,14 +922,14 @@ findpcb: rstreason = BANDLIM_RST_CLOSEDPORT; goto dropwithreset; } - INP_WLOCK_ASSERT(inp); + INP_LOCK_ASSERT(inp); /* * While waiting for inp lock during the lookup, another thread * can have dropped the inpcb, in which case we need to loop back * and try to find a new inpcb to deliver to. */ if (inp->inp_flags & INP_DROPPED) { - INP_WUNLOCK(inp); + INP_UNLOCK(inp); inp = NULL; goto findpcb; } @@ -1014,7 +1018,6 @@ findpcb: #endif #ifdef MAC - INP_WLOCK_ASSERT(inp); if (mac_inpcb_check_deliver(inp, m)) goto dropunlock; #endif @@ -1124,8 +1127,10 @@ tfo_socket_result: * Socket is created in state SYN_RECEIVED. * Unlock the listen socket, lock the newly * created socket and update the tp variable. + * If we came here via jump to tfo_socket_result, + * then listening socket is read-locked. */ - INP_WUNLOCK(inp); /* listen socket */ + INP_UNLOCK(inp); /* listen socket */ inp = sotoinpcb(so); /* * New connection inpcb is already locked by @@ -1213,6 +1218,7 @@ tfo_socket_result: ("%s: Listen socket: TH_RST or TH_ACK set", __func__)); KASSERT(thflags & (TH_SYN), ("%s: Listen socket: TH_SYN not set", __func__)); + INP_RLOCK_ASSERT(inp); #ifdef INET6 /* * If deprecated address is forbidden, @@ -1381,7 +1387,7 @@ dropwithreset: if (inp != NULL) { tcp_dropwithreset(m, th, tp, tlen, rstreason); - INP_WUNLOCK(inp); + INP_UNLOCK(inp); } else tcp_dropwithreset(m, th, NULL, tlen, rstreason); m = NULL; /* mbuf chain got consumed. */ @@ -1392,7 +1398,7 @@ dropunlock: TCP_PROBE5(receive, NULL, tp, m, tp, th); if (inp != NULL) - INP_WUNLOCK(inp); + INP_UNLOCK(inp); drop: INP_INFO_WUNLOCK_ASSERT(&V_tcbinfo); @@ -3360,7 +3366,7 @@ tcp_dropwithreset(struct mbuf *m, struct tcphdr *th, struct tcpcb *tp, #endif if (tp != NULL) { - INP_WLOCK_ASSERT(tp->t_inpcb); + INP_LOCK_ASSERT(tp->t_inpcb); } /* Don't bother if destination was broadcast/multicast. */ diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 4ed7e16f3557..05af0076b23a 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -1428,7 +1428,7 @@ tcp_respond(struct tcpcb *tp, void *ipgen, struct tcphdr *th, struct mbuf *m, if (tp != NULL) { inp = tp->t_inpcb; KASSERT(inp != NULL, ("tcp control block w/o inpcb")); - INP_WLOCK_ASSERT(inp); + INP_LOCK_ASSERT(inp); } else inp = NULL; diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c index 771ff44b8924..b1a0c1f7e229 100644 --- a/sys/netinet/tcp_syncache.c +++ b/sys/netinet/tcp_syncache.c @@ -1397,7 +1397,7 @@ syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, int tfo_response_cookie_valid = 0; bool locked; - INP_WLOCK_ASSERT(inp); /* listen socket */ + INP_RLOCK_ASSERT(inp); /* listen socket */ KASSERT((th->th_flags & (TH_RST|TH_ACK|TH_SYN)) == TH_SYN, ("%s: unexpected tcp flags", __func__)); @@ -1469,13 +1469,13 @@ syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, #ifdef MAC if (mac_syncache_init(&maclabel) != 0) { - INP_WUNLOCK(inp); + INP_RUNLOCK(inp); goto done; } else mac_syncache_create(maclabel, inp); #endif if (!tfo_cookie_valid) - INP_WUNLOCK(inp); + INP_RUNLOCK(inp); /* * Remember the IP options, if any. @@ -1528,7 +1528,7 @@ syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, } if (sc != NULL) { if (tfo_cookie_valid) - INP_WUNLOCK(inp); + INP_RUNLOCK(inp); TCPSTAT_INC(tcps_sc_dupsyn); if (ipopts) { /* @@ -1735,7 +1735,7 @@ skip_alloc: if (tfo_cookie_valid) { syncache_tfo_expand(sc, lsop, m, tfo_response_cookie); - /* INP_WUNLOCK(inp) will be performed by the caller */ + /* INP_RUNLOCK(inp) will be performed by the caller */ rv = 1; goto tfo_expanded; } diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c index 5fce9fcafa33..96be795d5757 100644 --- a/sys/netinet6/in6_pcb.c +++ b/sys/netinet6/in6_pcb.c @@ -1293,31 +1293,24 @@ in6_pcblookup_hash(struct inpcbinfo *pcbinfo, struct in6_addr *faddr, struct inpcb *inp; inp = in6_pcblookup_hash_locked(pcbinfo, faddr, fport, laddr, lport, - (lookupflags & ~(INPLOOKUP_RLOCKPCB | INPLOOKUP_WLOCKPCB)), ifp, - numa_domain); + lookupflags & INPLOOKUP_WILDCARD, ifp, numa_domain); if (inp != NULL) { if (lookupflags & INPLOOKUP_WLOCKPCB) { INP_WLOCK(inp); - if (__predict_false(inp->inp_flags2 & INP_FREED)) { - INP_WUNLOCK(inp); - inp = NULL; - } } else if (lookupflags & INPLOOKUP_RLOCKPCB) { INP_RLOCK(inp); - if (__predict_false(inp->inp_flags2 & INP_FREED)) { - INP_RUNLOCK(inp); - inp = NULL; - } + } else if (lookupflags & INPLOOKUP_RLOCKLISTEN) { + if (inp->inp_socket != NULL && + SOLISTENING(inp->inp_socket)) + INP_RLOCK(inp); + else + INP_WLOCK(inp); } else panic("%s: locking bug", __func__); -#ifdef INVARIANTS - if (inp != NULL) { - if (lookupflags & INPLOOKUP_WLOCKPCB) - INP_WLOCK_ASSERT(inp); - else - INP_RLOCK_ASSERT(inp); + if (__predict_false(inp->inp_flags2 & INP_FREED)) { + INP_UNLOCK(inp); + inp = NULL; } -#endif } return (inp); } @@ -1338,8 +1331,8 @@ in6_pcblookup(struct inpcbinfo *pcbinfo, struct in6_addr *faddr, u_int fport, KASSERT((lookupflags & ~INPLOOKUP_MASK) == 0, ("%s: invalid lookup flags %d", __func__, lookupflags)); - KASSERT((lookupflags & (INPLOOKUP_RLOCKPCB | INPLOOKUP_WLOCKPCB)) != 0, - ("%s: LOCKPCB not set", __func__)); + KASSERT((lookupflags & (INPLOOKUP_RLOCKPCB | INPLOOKUP_WLOCKPCB | + INPLOOKUP_RLOCKLISTEN)) != 0, ("%s: LOCKPCB not set", __func__)); /* * When not using RSS, use connection groups in preference to the @@ -1374,7 +1367,8 @@ in6_pcblookup_mbuf(struct inpcbinfo *pcbinfo, struct in6_addr *faddr, KASSERT((lookupflags & ~INPLOOKUP_MASK) == 0, ("%s: invalid lookup flags %d", __func__, lookupflags)); - KASSERT((lookupflags & (INPLOOKUP_RLOCKPCB | INPLOOKUP_WLOCKPCB)) != 0, + KASSERT((lookupflags & (INPLOOKUP_RLOCKPCB | INPLOOKUP_WLOCKPCB | + INPLOOKUP_RLOCKLISTEN)) != 0, ("%s: LOCKPCB not set", __func__)); #ifdef PCBGROUP diff --git a/sys/security/mac/mac_inet.c b/sys/security/mac/mac_inet.c index 97f256c118fc..2b6a70fdf1bf 100644 --- a/sys/security/mac/mac_inet.c +++ b/sys/security/mac/mac_inet.c @@ -487,7 +487,7 @@ void mac_syncache_create(struct label *label, struct inpcb *inp) { - INP_WLOCK_ASSERT(inp); + INP_LOCK_ASSERT(inp); MAC_POLICY_PERFORM_NOSLEEP(syncache_create, label, inp); } From owner-dev-commits-src-main@freebsd.org Mon Apr 12 15:28:45 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 20CED5D4648; Mon, 12 Apr 2021 15:28:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJt1T07nvz4b1B; Mon, 12 Apr 2021 15:28:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E9D4C19A3C; Mon, 12 Apr 2021 15:28:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CFSi3G076227; Mon, 12 Apr 2021 15:28:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CFSixm076226; Mon, 12 Apr 2021 15:28:44 GMT (envelope-from git) Date: Mon, 12 Apr 2021 15:28:44 GMT Message-Id: <202104121528.13CFSixm076226@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 8d5719aa74f1 - main - syncache: simplify syncache_add() KPI to return struct socket pointer directly, not overwriting the listen socket pointer argument. Not a functional change. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8d5719aa74f1d1441ee5ee365d45d53f934e81d6 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 15:28:45 -0000 The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=8d5719aa74f1d1441ee5ee365d45d53f934e81d6 commit 8d5719aa74f1d1441ee5ee365d45d53f934e81d6 Author: Gleb Smirnoff AuthorDate: 2021-03-19 05:05:22 +0000 Commit: Gleb Smirnoff CommitDate: 2021-04-12 15:27:40 +0000 syncache: simplify syncache_add() KPI to return struct socket pointer directly, not overwriting the listen socket pointer argument. Not a functional change. --- sys/netinet/tcp_input.c | 3 ++- sys/netinet/tcp_syncache.c | 32 +++++++++++++++----------------- sys/netinet/tcp_syncache.h | 4 ++-- sys/netinet/toecore.c | 4 ++-- 4 files changed, 21 insertions(+), 22 deletions(-) diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index f69262230a05..cfb0989a7203 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1341,7 +1341,8 @@ tfo_socket_result: #endif TCP_PROBE3(debug__input, tp, th, m); tcp_dooptions(&to, optp, optlen, TO_SYN); - if (syncache_add(&inc, &to, th, inp, &so, m, NULL, NULL, iptos)) + if ((so = syncache_add(&inc, &to, th, inp, so, m, NULL, NULL, + iptos)) != NULL) goto tfo_socket_result; /* diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c index b1a0c1f7e229..7c6bad415d7d 100644 --- a/sys/netinet/tcp_syncache.c +++ b/sys/netinet/tcp_syncache.c @@ -1322,24 +1322,25 @@ failed: return (0); } -static void -syncache_tfo_expand(struct syncache *sc, struct socket **lsop, struct mbuf *m, +static struct socket * +syncache_tfo_expand(struct syncache *sc, struct socket *lso, struct mbuf *m, uint64_t response_cookie) { struct inpcb *inp; struct tcpcb *tp; unsigned int *pending_counter; + struct socket *so; NET_EPOCH_ASSERT(); - pending_counter = intotcpcb(sotoinpcb(*lsop))->t_tfo_pending; - *lsop = syncache_socket(sc, *lsop, m); - if (*lsop == NULL) { + pending_counter = intotcpcb(sotoinpcb(lso))->t_tfo_pending; + so = syncache_socket(sc, lso, m); + if (so == NULL) { TCPSTAT_INC(tcps_sc_aborted); atomic_subtract_int(pending_counter, 1); } else { - soisconnected(*lsop); - inp = sotoinpcb(*lsop); + soisconnected(so); + inp = sotoinpcb(so); tp = intotcpcb(inp); tp->t_flags |= TF_FASTOPEN; tp->t_tfo_cookie.server = response_cookie; @@ -1348,6 +1349,8 @@ syncache_tfo_expand(struct syncache *sc, struct socket **lsop, struct mbuf *m, tp->t_tfo_pending = pending_counter; TCPSTAT_INC(tcps_sc_completed); } + + return (so); } /* @@ -1369,20 +1372,19 @@ syncache_tfo_expand(struct syncache *sc, struct socket **lsop, struct mbuf *m, * be ACKed either when the application sends response data or the delayed * ACK timer expires, whichever comes first. */ -int +struct socket * syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, - struct inpcb *inp, struct socket **lsop, struct mbuf *m, void *tod, + struct inpcb *inp, struct socket *so, struct mbuf *m, void *tod, void *todctx, uint8_t iptos) { struct tcpcb *tp; - struct socket *so; + struct socket *rv = NULL; struct syncache *sc = NULL; struct syncache_head *sch; struct mbuf *ipopts = NULL; u_int ltflags; int win, ip_ttl, ip_tos; char *s; - int rv = 0; #ifdef INET6 int autoflowlabel = 0; #endif @@ -1405,7 +1407,6 @@ syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, * Combine all so/tp operations very early to drop the INP lock as * soon as possible. */ - so = *lsop; KASSERT(SOLISTENING(so), ("%s: %p not listening", __func__, so)); tp = sototcpcb(so); cred = crhold(so->so_cred); @@ -1734,9 +1735,8 @@ skip_alloc: SCH_UNLOCK(sch); if (tfo_cookie_valid) { - syncache_tfo_expand(sc, lsop, m, tfo_response_cookie); + rv = syncache_tfo_expand(sc, so, m, tfo_response_cookie); /* INP_RUNLOCK(inp) will be performed by the caller */ - rv = 1; goto tfo_expanded; } @@ -1761,10 +1761,8 @@ skip_alloc: done: TCP_PROBE5(receive, NULL, NULL, m, NULL, th); donenoprobe: - if (m) { - *lsop = NULL; + if (m) m_freem(m); - } /* * If tfo_pending is not NULL here, then a TFO SYN that did not * result in a new socket was processed and the associated pending diff --git a/sys/netinet/tcp_syncache.h b/sys/netinet/tcp_syncache.h index 37575a14467c..c56dce55f1c1 100644 --- a/sys/netinet/tcp_syncache.h +++ b/sys/netinet/tcp_syncache.h @@ -43,8 +43,8 @@ void syncache_destroy(void); void syncache_unreach(struct in_conninfo *, tcp_seq); int syncache_expand(struct in_conninfo *, struct tcpopt *, struct tcphdr *, struct socket **, struct mbuf *); -int syncache_add(struct in_conninfo *, struct tcpopt *, - struct tcphdr *, struct inpcb *, struct socket **, struct mbuf *, +struct socket * syncache_add(struct in_conninfo *, struct tcpopt *, + struct tcphdr *, struct inpcb *, struct socket *, struct mbuf *, void *, void *, uint8_t); void syncache_chkrst(struct in_conninfo *, struct tcphdr *, struct mbuf *); void syncache_badack(struct in_conninfo *); diff --git a/sys/netinet/toecore.c b/sys/netinet/toecore.c index 28cbd8b43e4f..f602319ef701 100644 --- a/sys/netinet/toecore.c +++ b/sys/netinet/toecore.c @@ -348,11 +348,11 @@ void toe_syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, struct inpcb *inp, void *tod, void *todctx, uint8_t iptos) { - struct socket *lso = inp->inp_socket; INP_WLOCK_ASSERT(inp); - syncache_add(inc, to, th, inp, &lso, NULL, tod, todctx, iptos); + (void )syncache_add(inc, to, th, inp, inp->inp_socket, NULL, tod, + todctx, iptos); } int From owner-dev-commits-src-main@freebsd.org Mon Apr 12 15:30:14 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 898CA5D4BBB; Mon, 12 Apr 2021 15:30:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJt3B3Xr9z4bSn; Mon, 12 Apr 2021 15:30:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6C87F19BA6; Mon, 12 Apr 2021 15:30:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CFUEpo081340; Mon, 12 Apr 2021 15:30:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CFUBlt080266; Mon, 12 Apr 2021 15:30:11 GMT (envelope-from git) Date: Mon, 12 Apr 2021 15:30:11 GMT Message-Id: <202104121530.13CFUBlt080266@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: b856b51d1498 - main - Merge commit 'd0e943077d94e6266ece9856789c5d5313676e38' MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b856b51d149811d68ab9e72daa609f00e13c2ec3 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 15:30:14 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b856b51d149811d68ab9e72daa609f00e13c2ec3 commit b856b51d149811d68ab9e72daa609f00e13c2ec3 Merge: 8d5719aa74f1 d0e943077d94 Author: Mark Johnston AuthorDate: 2021-04-12 15:29:47 +0000 Commit: Mark Johnston CommitDate: 2021-04-12 15:29:47 +0000 Merge commit 'd0e943077d94e6266ece9856789c5d5313676e38' contrib/capsicum-test/README.md | 2 +- contrib/capsicum-test/capmode.cc | 37 ++++++++++++++++++++++++++++++++++ contrib/capsicum-test/capsicum-test.cc | 5 ++++- 3 files changed, 42 insertions(+), 2 deletions(-) diff --cc contrib/capsicum-test/README.md index 918534557725,000000000000..a8c8c6686759 mode 100644,000000..100644 --- a/contrib/capsicum-test/README.md +++ b/contrib/capsicum-test/README.md @@@ -1,62 -1,0 +1,62 @@@ +# Capsicum User Space Tests + +This directory holds unit tests for [Capsicum](http://www.cl.cam.ac.uk/research/security/capsicum/) +object-capabilities. The tests exercise the syscall interface to a Capsicum-enabled operating system, +currently either [FreeBSD >=10.x](http://www.freebsd.org) or a modified Linux kernel (the +[capsicum-linux](http://github.com/google/capsicum-linux) project). + - The tests are written in C++98, and use the [Google Test](https://code.google.com/p/googletest/) ++The tests are written in C++11 and use the [Google Test](https://code.google.com/p/googletest/) +framework, with some additions to fork off particular tests (because a process that enters capability +mode cannot leave it again). + +## Provenance + +The original basis for these tests was: + + - [unit tests](https://github.com/freebsd/freebsd/tree/master/tools/regression/security/cap_test) + written by Robert Watson and Jonathan Anderson for the original FreeBSD 9.x Capsicum implementation + - [unit tests](http://git.chromium.org/gitweb/?p=chromiumos/third_party/kernel-capsicum.git;a=tree;f=tools/testing/capsicum_tests;hb=refs/heads/capsicum) written by Meredydd Luff for the original Capsicum-Linux port. + +These tests were coalesced and moved into an independent repository to enable +comparative testing across multiple OSes, and then substantially extended. + +## OS Configuration + +### Linux + +The following kernel configuration options are needed to run the tests: + + - `CONFIG_SECURITY_CAPSICUM`: enable the Capsicum framework + - `CONFIG_PROCDESC`: enable Capsicum process-descriptor functionality + - `CONFIG_DEBUG_FS`: enable debug filesystem + - `CONFIG_IP_SCTP`: enable SCTP support + +### FreeBSD (>= 10.x) + +The following kernel configuration options are needed so that all tests can run: + + - `options P1003_1B_MQUEUE`: Enable POSIX message queues (or `kldload mqueuefs`) + +## Other Dependencies + +### Linux + +The following additional development packages are needed to build the full test suite on Linux. + + - `libcaprights`: See below + - `libcap-dev`: Provides headers for POSIX.1e capabilities. + - `libsctp1`: Provides SCTP library functions. + - `libsctp-dev`: Provides headers for SCTP library functions. + + +## Linux libcaprights + +The Capsicum userspace library is held in the `libcaprights/` subdirectory. Ideally, this +library should be built (with `./configure; make` or `dpkg-buildpackage -uc -us`) and +installed (with `make install` or `dpkg -i libcaprights*.deb`) so that the tests will +use behave like a normal Capsicum-aware application. + +However, if no installed copy of the library is found, the `GNUmakefile` will attempt +to use the local `libcaprights/*.c` source; this requires `./configure` to have been +performed in the `libcaprights` subdirectory. The local code is also used for +cross-compiled builds of the test suite (e.g. `make ARCH=32` or `make ARCH=x32`). From owner-dev-commits-src-main@freebsd.org Mon Apr 12 17:15:29 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D95D05D7D08; Mon, 12 Apr 2021 17:15:29 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJwNd5p6Nz4gjq; Mon, 12 Apr 2021 17:15:29 +0000 (UTC) (envelope-from danfe@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1618247729; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Fqm8SfMUVGMD82yvDKv0WZLSyVzZgApNx2q4pyrafBU=; b=m7NxNE5R8HMsxEdIn6uoUecGp93EquHI2QXdk2bnnuGi6vu3eeVhccEoEe3BWraXryYa6r i5bkC/XDmU0yD/M5dfDqEiIGezcqaucRIT2KgG/DnBqCvRIpLjY/7GaIyR/QOB8nKpFXn4 P+oNgM40SpBsNf8As9RgqOHwOPIgeBvQCejt+mALzaA7lRBFvPgevTorfZqwEIFQM1Pw3i qIO9hAe43NwbsBmA4uyau5UQ+LMXS8IiLGScufuoscURuGsq6twfaDe5o4g5PycX0jdZDn cfkNUJnU7R4hPbaBK9VHFmoXXqpi/0pcYSTVpWidzxMw8IeOH+MXVDA8IifDig== Received: by freefall.freebsd.org (Postfix, from userid 1033) id BDD4EFB40; Mon, 12 Apr 2021 17:15:29 +0000 (UTC) Date: Mon, 12 Apr 2021 17:15:29 +0000 From: Alexey Dokuchaev To: Cy Schubert Cc: Mark Johnston , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: dfff37765ce4 - main - Rename struct device to struct _device Message-ID: <20210412171529.GA24055@FreeBSD.org> References: <202104121336.13CDaI5A029079@gitrepo.freebsd.org> <202104121430.13CEUUIq030729@slippy.cwsent.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202104121430.13CEUUIq030729@slippy.cwsent.com> ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1618247729; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Fqm8SfMUVGMD82yvDKv0WZLSyVzZgApNx2q4pyrafBU=; b=tPRkYVVpYnwt5aXrd2crRAAPNw9LloomRaIk/ffDeaV6IeuG9tgw81L2X7oth0kWEzZwJQ fn9XjGSFQEXiREbCTqHSQ4QlF0Q21hjOYac74DupY/dfoyV+ThZHL7UM7b3GEg+gV4l/9O 7e9NwXhVWqUfiiMQ5oULYQ90LH6bqnw92WrUxJSIMskdPysO5RK0ri2r9zfr3RphWJIPKv prlV/CIy4BOuqvZStyzXs7+q+mhx9WO0D5ABL+vIL3EbkU0cRWWqgp4471RHBntrJM+tIe Rvw2ttu7fQdp9g7O9QJnNovAlQhD1F4BknPcvdfzXAiItk7FXOtDtEJ2ol2oxw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1618247729; a=rsa-sha256; cv=none; b=j+KwDgoyAYudKp9/NKDAPGL3Vah5UT2Qshz3uJsXUgeXDuhUj101+wRydt+0vyYt0QTQkx AAWr9u7HNvIAVk9+22h/Mvac4W6f1EsM/qLybLMbt2hYu5Qguyt/RfzDmOi/8tVP8VzeJG j2fal+9xdKqviRqWhlReRzRqSaMJEdHG+KbM0Ml02Gxd6csV/0znYcRlw7O57WAAOG1cVg irhIA9yAR1PKYleLMe5FRwDjjbmxpQWOeUWSTdMJ2skBMBTgNFB97X2gGshoEsGIF2JVin RkDknv6GMycpUSSLiM+Zjg0aMiYbsR1Hzs6LmbLqf6s2K0gBojCjKrnvyxywUw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 17:15:29 -0000 On Mon, Apr 12, 2021 at 07:30:30AM -0700, Cy Schubert wrote: > Mark Johnston writes: > > > > Rename struct device to struct _device > > [...] > > Not that a name matters much but struct _device gives me a sense that > the struct is ancillary. Whereas freebsd_device or fbsd_device is more > descriptive and gives the struct the status it deserves. It should not be needed, AFAIR, as device_t is one of a few properly opaque typedefs for (opaque) struct pointers. Bruce had explained this in detail a couple of times, at least: https://lists.freebsd.org/pipermail/svn-src-head/2011-October/030894.html https://lists.freebsd.org/pipermail/svn-src-head/2016-May/085790.html ./danfe From owner-dev-commits-src-main@freebsd.org Mon Apr 12 18:31:12 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 77CD25DA4CF; Mon, 12 Apr 2021 18:31:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJy4031vqz4lfZ; Mon, 12 Apr 2021 18:31:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4FE4F1C43B; Mon, 12 Apr 2021 18:31:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CIVCPo026817; Mon, 12 Apr 2021 18:31:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CIVC19026816; Mon, 12 Apr 2021 18:31:12 GMT (envelope-from git) Date: Mon, 12 Apr 2021 18:31:12 GMT Message-Id: <202104121831.13CIVC19026816@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 600bd6ce0639 - main - pfctl, libpfctl: introduce pfctl_pool MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 600bd6ce0639c84b763516477250df5964e8edf6 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 18:31:12 -0000 The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=600bd6ce0639c84b763516477250df5964e8edf6 commit 600bd6ce0639c84b763516477250df5964e8edf6 Author: Kurosawa Takahiro AuthorDate: 2021-04-12 14:03:40 +0000 Commit: Kristof Provost CommitDate: 2021-04-12 16:30:29 +0000 pfctl, libpfctl: introduce pfctl_pool Introduce pfctl_pool to be able to extend the pool part of the pf rule without breaking the ABI. Reviewed by: kp MFC after: 4 weeks Differential Revision: https://reviews.freebsd.org/D29721 --- lib/libpfctl/libpfctl.c | 4 ++-- lib/libpfctl/libpfctl.h | 12 +++++++++++- sbin/pfctl/pfctl.c | 10 +++++----- sbin/pfctl/pfctl_parser.c | 2 +- sbin/pfctl/pfctl_parser.h | 8 ++++---- 5 files changed, 23 insertions(+), 13 deletions(-) diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index 2a7b64f1cbc8..a487e5a20018 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -198,7 +198,7 @@ pf_nvrule_addr_to_rule_addr(const nvlist_t *nvl, struct pf_rule_addr *addr) static void pfctl_nv_add_pool(nvlist_t *nvparent, const char *name, - const struct pf_pool *pool) + const struct pfctl_pool *pool) { u_int64_t ports[2]; nvlist_t *nvl = nvlist_create(0); @@ -216,7 +216,7 @@ pfctl_nv_add_pool(nvlist_t *nvparent, const char *name, } static void -pf_nvpool_to_pool(const nvlist_t *nvl, struct pf_pool *pool) +pf_nvpool_to_pool(const nvlist_t *nvl, struct pfctl_pool *pool) { size_t len; const void *data; diff --git a/lib/libpfctl/libpfctl.h b/lib/libpfctl/libpfctl.h index 95f6d4e3c77f..bc27c18cfbb6 100644 --- a/lib/libpfctl/libpfctl.h +++ b/lib/libpfctl/libpfctl.h @@ -38,6 +38,16 @@ struct pfctl_anchor; +struct pfctl_pool { + struct pf_palist list; + struct pf_pooladdr *cur; + struct pf_poolhashkey key; + struct pf_addr counter; + int tblidx; + u_int16_t proxy_port[2]; + u_int8_t opts; +}; + struct pfctl_rule { struct pf_rule_addr src; struct pf_rule_addr dst; @@ -52,7 +62,7 @@ struct pfctl_rule { char overload_tblname[PF_TABLE_NAME_SIZE]; TAILQ_ENTRY(pfctl_rule) entries; - struct pf_pool rpool; + struct pfctl_pool rpool; u_int64_t evaluations; u_int64_t packets[2]; diff --git a/sbin/pfctl/pfctl.c b/sbin/pfctl/pfctl.c index bc646ab335e1..879fc876826c 100644 --- a/sbin/pfctl/pfctl.c +++ b/sbin/pfctl/pfctl.c @@ -92,7 +92,7 @@ int pfctl_load_timeout(struct pfctl *, unsigned int, unsigned int); int pfctl_load_debug(struct pfctl *, unsigned int); int pfctl_load_logif(struct pfctl *, char *); int pfctl_load_hostid(struct pfctl *, u_int32_t); -int pfctl_get_pool(int, struct pf_pool *, u_int32_t, u_int32_t, int, +int pfctl_get_pool(int, struct pfctl_pool *, u_int32_t, u_int32_t, int, char *); void pfctl_print_rule_counters(struct pfctl_rule *, int); int pfctl_show_rules(int, char *, int, enum pfctl_show, char *, int); @@ -805,7 +805,7 @@ pfctl_id_kill_states(int dev, const char *iface, int opts) } int -pfctl_get_pool(int dev, struct pf_pool *pool, u_int32_t nr, +pfctl_get_pool(int dev, struct pfctl_pool *pool, u_int32_t nr, u_int32_t ticket, int r_action, char *anchorname) { struct pfioc_pooladdr pp; @@ -840,7 +840,7 @@ pfctl_get_pool(int dev, struct pf_pool *pool, u_int32_t nr, } void -pfctl_move_pool(struct pf_pool *src, struct pf_pool *dst) +pfctl_move_pool(struct pfctl_pool *src, struct pfctl_pool *dst) { struct pf_pooladdr *pa; @@ -851,7 +851,7 @@ pfctl_move_pool(struct pf_pool *src, struct pf_pool *dst) } void -pfctl_clear_pool(struct pf_pool *pool) +pfctl_clear_pool(struct pfctl_pool *pool) { struct pf_pooladdr *pa; @@ -1272,7 +1272,7 @@ pfctl_show_limits(int dev, int opts) /* callbacks for rule/nat/rdr/addr */ int -pfctl_add_pool(struct pfctl *pf, struct pf_pool *p, sa_family_t af) +pfctl_add_pool(struct pfctl *pf, struct pfctl_pool *p, sa_family_t af) { struct pf_pooladdr *pa; diff --git a/sbin/pfctl/pfctl_parser.c b/sbin/pfctl/pfctl_parser.c index 903ea88c4b15..e0dd04cb4c3d 100644 --- a/sbin/pfctl/pfctl_parser.c +++ b/sbin/pfctl/pfctl_parser.c @@ -412,7 +412,7 @@ print_fromto(struct pf_rule_addr *src, pf_osfp_t osfp, struct pf_rule_addr *dst, } void -print_pool(struct pf_pool *pool, u_int16_t p1, u_int16_t p2, +print_pool(struct pfctl_pool *pool, u_int16_t p1, u_int16_t p2, sa_family_t af, int id) { struct pf_pooladdr *pooladdr; diff --git a/sbin/pfctl/pfctl_parser.h b/sbin/pfctl/pfctl_parser.h index f36e8f1d4ac8..43d8488dcab8 100644 --- a/sbin/pfctl/pfctl_parser.h +++ b/sbin/pfctl/pfctl_parser.h @@ -256,9 +256,9 @@ int pfctl_optimize_ruleset(struct pfctl *, struct pfctl_ruleset *); int pfctl_append_rule(struct pfctl *, struct pfctl_rule *, const char *); int pfctl_add_altq(struct pfctl *, struct pf_altq *); -int pfctl_add_pool(struct pfctl *, struct pf_pool *, sa_family_t); -void pfctl_move_pool(struct pf_pool *, struct pf_pool *); -void pfctl_clear_pool(struct pf_pool *); +int pfctl_add_pool(struct pfctl *, struct pfctl_pool *, sa_family_t); +void pfctl_move_pool(struct pfctl_pool *, struct pfctl_pool *); +void pfctl_clear_pool(struct pfctl_pool *); int pfctl_set_timeout(struct pfctl *, const char *, int, int); int pfctl_set_optimization(struct pfctl *, const char *); @@ -272,7 +272,7 @@ int parse_config(char *, struct pfctl *); int parse_flags(char *); int pfctl_load_anchors(int, struct pfctl *, struct pfr_buffer *); -void print_pool(struct pf_pool *, u_int16_t, u_int16_t, sa_family_t, int); +void print_pool(struct pfctl_pool *, u_int16_t, u_int16_t, sa_family_t, int); void print_src_node(struct pf_src_node *, int); void print_rule(struct pfctl_rule *, const char *, int, int); void print_tabledef(const char *, int, int, struct node_tinithead *); From owner-dev-commits-src-main@freebsd.org Mon Apr 12 18:44:31 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3BF535DAC8C; Mon, 12 Apr 2021 18:44:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FJyMM1FL4z4mQh; Mon, 12 Apr 2021 18:44:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 195671C3E3; Mon, 12 Apr 2021 18:44:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CIiUUI043421; Mon, 12 Apr 2021 18:44:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CIiU0p043420; Mon, 12 Apr 2021 18:44:30 GMT (envelope-from git) Date: Mon, 12 Apr 2021 18:44:30 GMT Message-Id: <202104121844.13CIiU0p043420@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: eacc27affeff - main - bhyve: Move the gdb_active check to gdb_cpu_suspend(). MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: eacc27affeff17beb3791793ba54458444df7135 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 18:44:31 -0000 The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=eacc27affeff17beb3791793ba54458444df7135 commit eacc27affeff17beb3791793ba54458444df7135 Author: John Baldwin AuthorDate: 2021-04-12 18:43:34 +0000 Commit: John Baldwin CommitDate: 2021-04-12 18:43:34 +0000 bhyve: Move the gdb_active check to gdb_cpu_suspend(). The check needs to be in the public routine (gdb_cpu_suspend()), not in the internal routine called from various places (_gdb_cpu_suspend()). All the other callers of _gdb_cpu_suspend() already check gdb_active, and this breaks the use of snapshots when the debug server is not enabled since gdb_cpu_suspend() tries to lock an uninitialized mutex. Reported by: Darius Mihai, Elena Mihailescu Reviewed by: elenamihailescu22_gmail.com Fixes: 621b5090487de9fed1b503769702a9a2a27cc7bb Differential Revision: https://reviews.freebsd.org/D29538 --- usr.sbin/bhyve/gdb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/gdb.c b/usr.sbin/bhyve/gdb.c index c4c37ab80bc7..5df10467cd62 100644 --- a/usr.sbin/bhyve/gdb.c +++ b/usr.sbin/bhyve/gdb.c @@ -731,8 +731,6 @@ static void _gdb_cpu_suspend(int vcpu, bool report_stop) { - if (!gdb_active) - return; debug("$vCPU %d suspending\n", vcpu); CPU_SET(vcpu, &vcpus_waiting); if (report_stop && CPU_CMP(&vcpus_waiting, &vcpus_suspended) == 0) @@ -807,6 +805,8 @@ void gdb_cpu_suspend(int vcpu) { + if (!gdb_active) + return; pthread_mutex_lock(&gdb_lock); _gdb_cpu_suspend(vcpu, true); gdb_cpu_resume(vcpu); From owner-dev-commits-src-main@freebsd.org Mon Apr 12 18:51:57 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F31245DAF62; Mon, 12 Apr 2021 18:51:57 +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 4FJyWx4P1Mz4mk2; Mon, 12 Apr 2021 18:51:57 +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 13CIpmkZ034867; Mon, 12 Apr 2021 11:51:48 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 13CIpmmQ034866; Mon, 12 Apr 2021 11:51:48 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202104121851.13CIpmmQ034866@gndrsh.dnsmgr.net> Subject: Re: git: 82431b7506d6 - main - rc: remove the 'archdep' script In-Reply-To: <202104121418.13CEISV0082707@gitrepo.freebsd.org> To: Edward Tomasz Napierala Date: Mon, 12 Apr 2021 11:51:48 -0700 (PDT) CC: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@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: 4FJyWx4P1Mz4mk2 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 18:51:58 -0000 > The branch main has been updated by trasz: > > URL: https://cgit.FreeBSD.org/src/commit/?id=82431b7506d646165d52f11bc2958e8ce8ec5cce > > commit 82431b7506d646165d52f11bc2958e8ce8ec5cce > Author: Edward Tomasz Napierala > AuthorDate: 2021-04-12 13:38:16 +0000 > Commit: Edward Tomasz Napierala > CommitDate: 2021-04-12 14:18:17 +0000 > > rc: remove the 'archdep' script > > It was unused since 405c3050f10, which removed iBCS support. > > This also moves the 'linux' rc script slightly earlier, which > might help in some setups. The original version of this patch > moved it even more, before 'mountcritlocal', which would fixe > mount(8) errors due to missing /dev/shm in setups with entries > for /path/to/chroot/dev/shm without the "late" flag; however, > in the end 'kldxref' turned out to depend on 'mountcritlocal' > anyway. I would think that these hintts are built and kernel/module install time, not at the much later when the system is booting. Crazy idea, but first isnt it too late for hints by the time this runs? So... change this from a _start to a _shutdown action and build the hints files on the way down so that all things are ready next time the system boots. This would fix the /usr mount issue. > > Reported By: pstef > Reviewed By: dchagin > Sponsored By: EPSRC > Differential Revision: https://reviews.freebsd.org/D29590 > --- > ObsoleteFiles.inc | 3 +++ > libexec/rc/rc.d/Makefile | 1 - > libexec/rc/rc.d/archdep | 26 -------------------------- > libexec/rc/rc.d/linux | 2 +- > libexec/rc/rc.d/sysvipc | 2 +- > 5 files changed, 5 insertions(+), 29 deletions(-) > > diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc > index 373e014ba074..1019436f1e28 100644 > --- a/ObsoleteFiles.inc > +++ b/ObsoleteFiles.inc > @@ -40,6 +40,9 @@ > # xargs -n1 | sort | uniq -d; > # done > > +# 20210410: remove unused libexec/rc.d/archdep > +OLD_FILES+=etc/rc.d/archdep > + > # 20210408: remove tcp_hostcache.h > OLD_FILES+=usr/include/netinet/tcp_hostcache.h > > diff --git a/libexec/rc/rc.d/Makefile b/libexec/rc/rc.d/Makefile > index 1a61e89aa215..7b15cab40bb8 100644 > --- a/libexec/rc/rc.d/Makefile > +++ b/libexec/rc/rc.d/Makefile > @@ -13,7 +13,6 @@ CONFS= DAEMON \ > SERVERS \ > addswap \ > adjkerntz \ > - archdep \ > bgfsck \ > ${_blacklistd} \ > bridge \ > diff --git a/libexec/rc/rc.d/archdep b/libexec/rc/rc.d/archdep > deleted file mode 100755 > index 52a7ac684eed..000000000000 > --- a/libexec/rc/rc.d/archdep > +++ /dev/null > @@ -1,26 +0,0 @@ > -#!/bin/sh > -# > -# $FreeBSD$ > -# > - > -# PROVIDE: archdep > -# REQUIRE: mountcritremote > -# KEYWORD: nojail > - > -. /etc/rc.subr > - > -name="archdep" > -start_cmd="archdep_start" > -stop_cmd=":" > - > -archdep_start() > -{ > - local _arch > - > - _arch=`${SYSCTL_N} hw.machine_arch` > - case $_arch in > - esac > -} > - > -load_rc_config $name > -run_rc_command "$1" > diff --git a/libexec/rc/rc.d/linux b/libexec/rc/rc.d/linux > index c9c45ba8b338..882cf4012495 100755 > --- a/libexec/rc/rc.d/linux > +++ b/libexec/rc/rc.d/linux > @@ -4,7 +4,7 @@ > # > > # PROVIDE: linux > -# REQUIRE: archdep > +# REQUIRE: kldxref > # KEYWORD: nojail > > . /etc/rc.subr > diff --git a/libexec/rc/rc.d/sysvipc b/libexec/rc/rc.d/sysvipc > index 0effbe7e22ca..bbec47d75e24 100755 > --- a/libexec/rc/rc.d/sysvipc > +++ b/libexec/rc/rc.d/sysvipc > @@ -4,7 +4,7 @@ > # > > # PROVIDE: sysvipc > -# REQUIRE: archdep > +# REQUIRE: kldxref > # KEYWORD: nojail > > . /etc/rc.subr > -- Rod Grimes rgrimes@freebsd.org From owner-dev-commits-src-main@freebsd.org Mon Apr 12 20:01:38 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BC3745DCAFC; Mon, 12 Apr 2021 20:01:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FK04L4sY8z4qpv; Mon, 12 Apr 2021 20:01:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 996BE1D554; Mon, 12 Apr 2021 20:01:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CK1cGJ049313; Mon, 12 Apr 2021 20:01:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CK1ciL049312; Mon, 12 Apr 2021 20:01:38 GMT (envelope-from git) Date: Mon, 12 Apr 2021 20:01:38 GMT Message-Id: <202104122001.13CK1ciL049312@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 5b20c5e1f8d5 - main - hptnr: Store the .o files directly in the repo MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5b20c5e1f8d59f14901f0c0e4b6b577eaa3f9569 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 20:01:38 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=5b20c5e1f8d59f14901f0c0e4b6b577eaa3f9569 commit 5b20c5e1f8d59f14901f0c0e4b6b577eaa3f9569 Author: Warner Losh AuthorDate: 2021-04-12 19:40:43 +0000 Commit: Warner Losh CommitDate: 2021-04-12 19:47:55 +0000 hptnr: Store the .o files directly in the repo We no longer need to use uuencode to uuencode files in our tree. Store the .o file directly instead. Adjust the build to cope with the new arrangement. Suggestions by: emaste, bz, donner Reviewed by: markm Sposnored by: Netflix, Inc Differential Revision: https://reviews.freebsd.org/D29632 --- sys/conf/files.x86 | 5 +- sys/dev/hptnr/amd64-elf.hptnr_lib.o | Bin 0 -> 494856 bytes sys/dev/hptnr/amd64-elf.hptnr_lib.o.uu | 11000 ------------------------------- sys/dev/hptnr/i386-elf.hptnr_lib.o | Bin 0 -> 355364 bytes sys/dev/hptnr/i386-elf.hptnr_lib.o.uu | 7900 ---------------------- sys/modules/hptnr/Makefile | 5 +- 6 files changed, 2 insertions(+), 18908 deletions(-) diff --git a/sys/conf/files.x86 b/sys/conf/files.x86 index a3b6c6e5603b..11538b7e40eb 100644 --- a/sys/conf/files.x86 +++ b/sys/conf/files.x86 @@ -109,10 +109,7 @@ hptmvraid.o optional hptmv \ dev/hptnr/hptnr_os_bsd.c optional hptnr dev/hptnr/hptnr_osm_bsd.c optional hptnr dev/hptnr/hptnr_config.c optional hptnr -hptnr_lib.o optional hptnr \ - dependency "$S/dev/hptnr/$M-elf.hptnr_lib.o.uu" \ - compile-with "uudecode < $S/dev/hptnr/$M-elf.hptnr_lib.o.uu" \ - no-implicit-rule +dev/hptnr/$M-elf.hptnr_lib.o optional hptnr dev/hptrr/hptrr_os_bsd.c optional hptrr dev/hptrr/hptrr_osm_bsd.c optional hptrr dev/hptrr/hptrr_config.c optional hptrr diff --git a/sys/dev/hptnr/amd64-elf.hptnr_lib.o b/sys/dev/hptnr/amd64-elf.hptnr_lib.o new file mode 100644 index 000000000000..4047e0dbcdd4 Binary files /dev/null and b/sys/dev/hptnr/amd64-elf.hptnr_lib.o differ diff --git a/sys/dev/hptnr/amd64-elf.hptnr_lib.o.uu b/sys/dev/hptnr/amd64-elf.hptnr_lib.o.uu deleted file mode 100644 index c5ec8827dfcd..000000000000 --- a/sys/dev/hptnr/amd64-elf.hptnr_lib.o.uu +++ /dev/null @@ -1,11000 +0,0 @@ -begin 644 hptnr_lib.o -M?T5,1@(!`0D```````````$`/@`!`````````````````````````.#T!``` -M`````````$```````$``$``-`(GP9HEW",9'#@!FQT<,``!FA?9T'XU0_[D` -M````9F:02(L'9HD4"$B#P0*#Z@%F@_K_=>SSPV9F9I!F9I!F9I!!B?!FB7<( -MQD<.`6;'1PP``&:%]G0>N@````"Y`````$B+!V:)%`B#P@%(@\$"9D0YPG7L -M\\-F9F:09F:09F:0@'\.`74J#[='#`^WR$B+%P^W%$J#P`%FB4<,9CM'"G(& -M9L='#```9H-O"`$/M\+#2(L7#[='"(/H`6:)1P@/M\`/MP1"PV9F9I!F9I!F -M9I"`?PX!=2H/MU<(#[='#`'"#[='"HG!B=#!^A_W^4ACTDB+!V:)-%!F@T<( -M`<-F9I`/MT<(#[?(2(L79HDT2H/``6:)1PC#9F9FD&9FD&9FD&:#?P@`#Y3` -M#[;`PY"0D)!(BP](.<]U"+D`````ZP^02(L12(M!"$B)0@A(B1!(BH0@^(_#[9!"H/@P`G0B$$*PV9F9I`/MD0+_=0AFB3&(40+K#8/``4B#P01F/8``=>4/M\##9F:09F:09F:008G0 -M#[?&2(T$AX!X`O]U$&9$B0"(2`(/M\;#9F:09I`/MM%!#[?PZ``````/M\## -M2(GYN``````X40)U$V8Y,74.QD$"_V;'`?__ZQ!F9I"#P`%(@\$$9CV``'7; -M#[?`PV9F9I!F9F:09F9FD&9FD+D`````B<@X5(\"=09F.32/=!"#P`%(@\$! -M2('Y@````'7B#[?`PV9FD&9FD&9FD`^V1S@\"'0^/"AT.CRH#X3_````/(@/ -MA#D!```\"F:0="0\*G0@/*H/A.4````\B@^$'P$``#PO=`P\CV9F9I`/A90! -M```\+P^$D@```#PO=R(\"G1?/`IW"CP(9F9FD'5$ZU$\*'1X/"IF9I!F9I!U -M-.ML/(\/A-D````\CV:0=Q4\B`^$RP```#R*9F9FD'44Z;X````\J&9F9I!F -M9I!T<3RJ=&VY`````+@`````Z1,!```/MD`(#[97.PG0#[97.8/B'\'B -M$`G0B<$/MD<\Z>\```!F9F:09F:0#[97.L'B&`^V1SO!X!`)P@^V1ST)P@^V -M1SS!X`B)T0G!#[9'/\'@"`^V5T`)T.FU````#[97.L'B&`^V1SO!X!`)P@^V -M1ST)P@^V1SS!X`B)T0G!#[97/L'B&`^V1S_!X!`)P@^V1T$)P@^V1T#!X`@) -MT.MS#[97.DC!XC@/MD<[2,'@,$@)P@^V1T%("<(/MD<\2,'@*$@)P@^V1SU( -MP>`@2`G"#[9'/DC!X!A("<(/MD<_2,'@$$@)P@^V1T!(P>`(2(G12`G!#[97 -M0L'B&`^V1T/!X!`)P@^V1T4)P@^V1T3!X`@)T$B)CX@```")AY````!F@T\B -M`?/#9F9FD$B#[%A$#[9//$0/MD<[#[9/.@^V5SD/MG)@E0!``##9F:09F:09F:0B?%(BP>+D`0!``")%0`````/MT<\9CV`9'0, -M9CV`D70&9CV`E'41#[;)@\$(N`$```#3X`G"ZQ!`#[;.@\$,N`$```#3X`G" -M2(L'B9`$`0``PV9F9I!F9F:09F:09F:0B?%(BP>+D`0!``")%0`````/MT<\ -M9CV`9'0,9CV`D70&9CV`E'41#[;)@\$(N/[____3P"'"ZQ!`#[;.@\$,N/[_ -M___3P"'"2(L'B9`$`0``PV9F9I!F9F:09F:09F:0B?%`@/[_=&]`@/X?=S*+ -MMQ@!``"Z`0```-/BB=#WT"'PB8<8`0``BX=8`0``B04`````(=!T0(F'6`$` -M`,-FD(NW'`$```^VP8/H(+H!````B<'3XHG0]]`A\(F''`$``(N'8`$``(D% -M`````"'0=`:)AV`!``#SPV9F9I!F9I!(@^PH2(E<)`A(B6PD$$R)9"083(EL -M)"!(B=6)\$R++T"`_@,/AHD```!(C1S%`````('C^`<``$V-I!T``@``0<<$ -M)`P!``"_$"<``.@`````28V<'00"```/ME4#P>(8#[9%`L'@$`G"#[9%``G" -M#[9%`<'@"`G"B1-!QP0D$`$``+\0)P``Z``````/ME4'P>(8#[9%!L'@$`G" -M#[9%!`G"#[9%!<'@"`G"B1/IA````$B-',4`````@>/X!P``3HVD*P`"``!! -MQP0D#`$``+\0)P``Z`````!*C9PK!`(```^V50/!XA@/MD4"P>`0"<(/MD4` -M"<(/MD4!P>`("<*)$T''!"00`0``OQ`G``#H``````^V50?!XA@/MD4&P>`0 -M"<(/MD4$"<(/MD4%P>`("<*)$TB+7"0(2(ML)!!,BV0D&$R+;"0@2(/$*,-( -M@^P82(E<)`A,B60D$$F)_$`/MMZ)WN@`````OQ`G``#H`````(G>3(GGZ``` -M``!(BUPD"$R+9"002(/$&,.005=!5D%505154TB#[%A)B?^(5"172(L7@'\^ -M``^$/`(``$&\`````$&]X/___T&^\/___T`/ML9(B40D2$B-@H`!``!(B40D -M0$B-BH0!``!(B4PD.$B-@J`!``!(B40D,$B-BJ0!``!(B4PD*$B-@E`"``!( -MB40D($B-BE0"``!(B4PD&$B-@N`!``!(B40D$$B!PM`!``!(B50D"&9FD$B+ -M1"1(1(GA2-/XJ`$/A(T!``!$B>6#_0-V%T2)ZD@#5"0HBP*)!0````"#X/Z) -M`NL;C13M`````(G22`-4)#B+`HD%`````(/@_HD"OQ`G``#H`````(!\)%<` -M='*#_0-V%T2)\D@#5"00BP*)!0````"#R`*)`NL;C12M`````(G22`-4)`B+ -M`HD%`````(/(`HD"1(GP2(M,)!!(`<&-!*T`````BI(BT0D,$@!T,<``0```$@#5"0HBP*)!0````"#R`&)`NLV -M9F:09F:0C03M`````(G`2(M4)$!(`<+'`@$```!(`T0D.(L0B14`````@\H! -MB1!F9F:09F:008U4)`%)@\0!08/%"$&#Q@1!#[9'/CG0#X="_O__2(/$6%M= -M05Q!74%>05_#9F:055-(@^P(B=%(BR^#_@-V((T$]>#___^)P$B-E`6@`0`` -MBP*)!0````"#X/Z)`NL>C03U`````(G`2(V4!8`!``"+`HD%`````(/@_HD" -MA,ET?H/^`W8@C02U\/___XG`2(V4!>`!``"+`HD%`````(/(`HD"ZQZ-!+4` -M````B!R`P`````#[>!R`P``$C!X`)(`X&`"P``BQ:)$`^W@<@,``") -MARP!``##9F:008G0N`````#&!`@`2(/``4B#^`1U\HGR9H'B_P\/MP%F)0#P -M"=!FB0$/ME<,P>(,BP$E_P_P_PG0B0$/MD<*@^`"2(/X`1G2@^("@\(!P>(% -M#[9!`X/@'PG0@\@0@^#WB$$#]D<*`7071(G"@^)_P>($#[=!`F8E#_@)T&:) -M00+SPV9F9I!F9F:09F:09F:0N`````#&!#``2(/``4B#^`UU\@^V1SF(!@^V -M1SJ(1@$/MD<[B$8"#[9'/(A&`P^V1SV(1@0/MD<^B$8%#[9'/XA&!O:'E@`` -M``1T(P^V1T"(1@@/MD=!B$8)#[9'0HA&"@^V1T.(1@L/MD=$B$8,N`$```## -M9F9FD&9F9I!F9I"Z`````$&Z`````$&Y_____^M2`=)$B<#3^*@!=!+WP@`` -M``%U&H'R=R?;`.L29I")T#5W)]L`]\(````!#T70@^D!1#G)=@(B$8"```2(L.2(7)=#-(BQA(P>`'2"G(2(V$!P`-``#'0`@`````A-(/A"H"``!`@/X#=D%( -MC1SM`````('C^`<``$B+!T@%``(``$@!V,<`(````+\0)P``Z`````!)BP0D -M2`4$`@``2`'#BP.)!0````#K/TB-'.T`````@>/X!P``2(L'2`4``@``2`'8 -MQP`@````OQ`G``#H`````$F+!"1(!00"``!(`<.+`XD%`````,'H$(3`>2I` -M#[;%00^V="1!C32P2,?'`````+@`````Z`````"X`````.G^`0``9I!`@/T# -M#X:F````2(T<[0````"!X_@'``!)BP0D2`4``@``2`'8QP`L````OQ`G``#H -M`````$F+!"1(!00"``!(C00#BQ")%0````!,B>E(P>$$3(GH2,'@!T@IR('B -M_P```$&)E`0(#0``28L$)$@%``(``$B-!`/'`"0```"_$"<``.@`````28L$ -M)$@%!`(``$@!PXL#B04`````B<&!X?___P#IH0```&9FD&9FD$B-'.T````` -M@>/X!P``28L$)$@%``(``$@!V,<`+````+\0)P``Z`````!)BP0D2`4$`@`` -M2(T$`XL0B14`````3(GI2,'A!$R)Z$C!X`=(*'___\`3(GH2,'@!$R)ZDC!X@=(*<*)R,'@"$$)A!0(#0``N`$` -M``#IB0```$`/MLZ)R,'@"$AC\$B)\D@#ER`+``"+`HD%`````,'H$(3`>1\/ -MMG=!C32Q2,?'`````+@`````Z`````"X`````.M%BTH,B0T`````3(GJ2,'B -M!$R)Z$C!X`=(*=!(C90'``T``(E*"$B)\$@#AR`+``"+0`2)!0````#!X`@) -MR(E""+@!````2(M<)`A(BVPD$$R+9"083(ML)"!(@\0HPV9F9I!F9F:09F:0 -M05=!5D%505154TB#[`A(B?U)B?>`?T,`="6Y`````/9&#`%T#NL800^V1PQ( -MT_BH`74,@\$!#[9%0V8YR'?H28M'*$B%P'0<2(VPN````$B+?2CH`````$F+ -M=RA(B>_H`````$F-1T!).4=`#X1*`0``2(D$)$B+/"3H`````$F)Q$B#>$`` -M#X01`0``@'AS`'1P9H-]9`!T:4&^`````$&]`````$B+A9@(``!,`>A(BQA( -MA=MT.@^W0R!F03M$)#AU+F8]@P!W*`^WP("\!7@'``#_=!O&0R0A#[=S,DB) -M[^@`````2(G>2(GOZ`````!!@\8!28/%"`^W161$.?!_HTF+1"1`2,=`:``` -M``!!]D0D3`1U&DB)[^@`````28MT)$"Z`0```$B)[^@`````28M4)$`/MH++ -M````C02`#[92`@'02)@/MH@`````#[95.@^V=3E(Q\<`````N`````#H```` -M`$F+5"1`2(NU``@``+\!````Z`````!)BU0D0$B+M0`(``"_!@```.@````` -M2<=$)$``````08!O#0%,B>9(B>_H`````$B+!"1).4=`#X6Z_O__2<='*``` -M``!(BT4`BY!8`0``B14`````A=)T"DB+10")D%@!``!(@\0(6UU!7$%=05Y! -M7\-F9F:09F9FD&9F9I!F9I!!5T%6055!5%532(/L*$B)_4B+!XN(4`$``(D- -M`````$B+%XG()?#__P")@E`!``#WP0#__P`/A.4'``"`?4,`#X3;!P``QD0D -M$`")R4B)3"0(1`^V;"0008U-"$B+1"0(2-/XJ`%U%$&-31!(BT0D"$C3^*@! -M#X22!P``@'PD$`-V+4B+10!(!8`!``!"C13M`````$ACTD@!T(L`B04````` -MP>@3@^`!ZRMF9I!FD$B+10!(!8`!``!"C13M`````$ACTD@!T(L`B04````` -MP>@3@^`!A,!T-KH`````1(GN2(GOZ`````"$P'0B26/%2(G"2,'B!$C!X`=( -M*="!C`4$#0`````(`&9FD&9FD$B+50"`?"00`W8E0HT$[0````!(F$B-A`*` -M`0``BP")!0`````E```!`.LC9F9FD$*-!.T`````2)A(C80"@`$``(L`B04` -M````)0```0"%P'1=@'PD$`-V'4*-!.T`````2)A(C80"@`$``,<````!`.G) -M!@``0HT$[0````!(F$B-A`*``0``QP````$`Z:P&``!)8\5(B<)(P>($2,'@ -M!T@IT(&,!00-``````$`@'U+`0^%.@4``(!\)!`#=B5(BT4`2`6``0``0HT4 -M[0````!(8])(`="+`(D%`````(/@`>LC2(M%`$@%@`$``$*-%.T`````2&/2 -M2`'0BP")!0````"#X`&$P`^$80$``$ECW4B)V$C!X`1(P>,'2"G#2(VT'1`- -M``!(BWTHZ`````!(B[P=X`P``$B%_W0=2(M'*$B%P'04]D!*`G4.D.@````` -MA,`/A14!``!)8\5(B<)(P>($2,'@!T@IT$B+A`7@#```2(7`='9)B<:`>`T` -M#X2,````0;\`````3(U@0$R)Y^@`````2(G#28M$)`A)B5PD"$R)(TB)0PA( -MB1CV0TP"=2Y(BU-`2(72=!5(B[4`"```OP4```#H`````(!+3`)(B=J^!@`` -M`$R)]^@`````08/'`44X?@UV)>NA#[9T)!"Z`0```$B)[^@`````OZ"&`0#H -M`````+X`+3$!ZP6^0$M,`$ECU4B)T$C!X`1(P>('2"G"2(T,*HFQ$`T``$C' -M@2`-````````#[9$)!!(B<9(P>8$2,'@!T@I\$B-A`70#```2(F!*`T``$B- -MM!40#0``2(M]*.@`````@'PD$`-V/4*-%.T`````2&/22(M%`$@%@`$``$@! -MT(L`B04`````2(M%`$@%@`$``$@!PHL"B04`````P>@'@^`!ZSM"C13M```` -M`$ACTDB+10!(!8`!``!(`="+`(D%`````$B+10!(!8`!``!(`<*+`HD%```` -M`,'H!X/@`83`='N`?"00`W8W0HT,[0````!(8\E(BT4`2`6$`0``2`'(BP") -M!0````!(BU4`2('"A`$``$@!T0T```$`B0'K1$*-#.T`````2&/)2(M%`$@% -MA`$``$@!R(L`B04`````2(M5`$B!PH0!``!(`=$-```!`(D!ZS9F9I!F9I"` -M?"00`W8I2(M%`$@%@`$``$*-%.T`````2&/22`'0BP")!0````#!Z!*#X`'K -M)Y!(BT4`2`6``0``0HT4[0````!(8])(`="+`(D%`````,'H$H/@`83`#X0F -M`@``#[9-04&-3(T`#[95.@^V=3E(Q\<`````N`````#H`````(!\)!`#=C=" -MC0SM`````$ACR4B+10!(!8`!``!(`LU0HT,[0````!(8\E(BT4`2`6``0``2`'(BP")!0`````-```$ -M`$B+50!(@<*``0``2`'1B0%)8\5(B<)(P>($2,'@!T@IT$B+A`7@#```2(7` -M=!!(@W@H``^%I````.EC`0``@'PD$`-V2D*-%.T`````2&/22(M%`$@%@`$` -M`$@!T(L(B0T`````2(M%`$@%@`$``$B-!`*)"$B+10!(!8`!``!(`<*+`HD% -M`````.DO`@``0HT4[0````!(8])(BT4`2`6``0``2`'0BPB)#0````!(BT4` -M2`6``0``2(T$`HD(2(M%`$@%@`$``$@!PHL"B04`````Z>4!``!F9F:03(M@ -M*$'V1"1*`@^$D@```,9$)!``08!\)#H`=$/&1"00``^V1"0028MZ`````!!QX0DN````$!+3`!)QX0DR``````` -M``!-B:0DT````$B+?2A(B=[H`````.LB#[9-04&-3(T`#[95.@^V=3E(Q\<` -M````N`````#H`````(!\)!`##X:"````#[9<)!!(P>,#@>/X!P``2(M%`$@% -M@`$``$@!V(L0B14`````2(M%`$@%@`$``$B-!`.)$$B+10!(!8`!``!(C00# -MBP")!0````!(BT4`2`4P`@``2(T$`\<``````+\0)P``Z`````!(BT4`2`4T -M`@``2`'#BP.)!0````#I?0````^V7"002,'C`X'C^`<``$B+10!(!8`!``!( -M`=B+$(D5`````$B+10!(!8`!``!(C00#B1!(BT4`2`6``0``2(T$`XL`B04` -M````2(M%`$@%4`(``$B-!`/'``````"_$"<``.@`````2(M%`$@%5`(``$@! -MPXL#B04`````@$0D$`$/MD0D$#A%0P^',?C__TB+10"+B%`!``")#0````!( -MBU4`B<@E\/__`(F"4`$``/?!`/__`'0CZ>'W__^0N@$```!$B>Y(B>_H```` -M`(3`#X4\^?__Z5/Y__^X`````$B#Q"A;74%<05U!7D%?PV9F9I!F9F:09F9F -MD&9FD$%455-(B?M,BR>`?SH`="V]`````$`/ML5(BU3#6$B%TG012(N[@``` -M`+XA````Z`````"#Q0%`.&LZ=]A(B[N`````N@````"^(0```.@`````9L=# -M2B$`QD-"$4B)WDR)Y^@`````6UU!7,-F9I!!5T%6055!5%532(/L"$B)_4R+ -MIX````!-BRPD00^V1"0+J!!T"<9'30;I)P$```^V5TV`^@1T#H#Z!@^%A`$` -M`.D0`0``@^#W@\@008A$)`N+E^P```"-0@&)A^P```"#^@(/A^T```!)BX6P -M````2(EP"$B)!DF-A;````!(B48(28FUL````(!_0@!T#;L`````@'\Z`'4; -MZSM!O@````!-C7PD0$&`?"0-`'4_D.F1````#[;#2(M4Q5A(A=)T#;XA```` -M3(GGZ`````"#PP$X73IWWKH`````OB$```!,B>?H`````.G7````3(G_Z``` -M``!(B<-)BT0D2$F)7"1(3(D[2(E#"$B)&$B+4T!(A=)T%4F+M0`(``"_!0`` -M`.@`````@$M,`DB)VKX&````3(GGZ`````!!@\8!13AT)`UWJ/9%2@)T>4B) -M[^@`````ZV]!@&0D"_?'A>P`````````28N%L````$B)<`A(B09)C86P```` -M2(E&"$F)M;````"`?3H`=">[``````^VPTB+5,582(72=`V^!@```$R)Y^@` -M````@\,!.%TZ=]ZZ`````+X&````3(GGZ`````!(@\0(6UU!7$%=05Y!7\-F -M9F:09F9FD&9F9I!(@^PH2(E<)`A(B6PD$$R)9"083(EL)"!)B?Q(B?-)B=4/ -MMW8X9H'^X0%U%`^V0SJ#Z!$\`0^&%0$``&9FD&:0#[=#(+G_````9CV#`'<, -M#[?`00^VC`1X!P``#[?!2(T4P$B-%)!(P>(#2(G520.L)$@(``!F@?[A`74+ -M#[9#.H/H`3P!=BEF@?G_`'0&]D5+!'4`<```^W=3AF@?[A`74/#[9%.H/H$3P!#X:E````9H'Y@P!W -M40^WP4$/MH0$>`<``#S_=$%F@_E_=QX/MM!)BXPD2`@``$B-!-)(C02"2(M$ -MP5`/MD`(ZR(/ML!)BY0D<`@``$C!X`A(BX00@`````^V0`CK!;C_____#[;` -M00^VA`3\!P``2(G"2,'B!TB-A,)0`0``28U$!`A(B40D$`^WQTB-%,!(C120 -M2,'B`TF)UTT#O"1("```9H'^X0%U/.LH#[?'2,'@"$D#A"1P"```2(E$)!A( -MBX"`````2(E$)!!!OP````#K-P^V53J-0N\\`78CC4+_/`%V'&:!__\`=`=! -M]D=+!'4.QD4D!K@`````Z=0"``!(QT0D&`````!(C70D2$R)Y^@`````08G& -M9HE%,DR+;7@/M]!(B50D"$AIPK`$``!(C1P82(U#($DKA"10"P``20.$)%@+ -M``!(BU0D2(E"($C!Z"!(BU0D2(E")$F+11A(BU0D2(E"*$C!Z"!(BU0D2(E" -M+$B+1"1(9D2)<`BX`````&9F9I#&!!@`2(/``4@]L`0``'7P9H%]..$!=5@/ -MMD4Z@^@1/`%W34B-3"0P2(M$)$@/ME`(2(GN3(G_Z`````!(C8,@!```22N$ -M)%`+``!)`X0D6`L``$B+5"1(B4(02,'H($B+5"1(B4(4Z98```!F9F:02(M$ -M)!#V0`H!#X2#````]H66````('0/2(UT)#!(B>_H`````.L92(U,)#!(BT0D -M2`^V4`A(B>Y,B?_H`````$B-@R`$``!)*X0D4`L``$D#A"18"P``2(M4)$B) -M0A!(P>@@2(M4)$B)0A1(B=A)*X0D4`L``$D#A"18"P``2(M4)$B)0AA(P>@@ -M2(M4)$B)0AP/ME592(M$)$AFB5`"@'U9`'0ROP````")^$B-!$!(P>`"28MU -M$$B+36!(BQ0(2(D4!HM4"`B)5`8(@\H%@>+_!P``1(GI@^$?N`$```!(T^!!"824 -MH`@``&:!?3CA`74^#[9%.H/H$3P!=S-(BW0D&$R)Y^@`````2(U,)$!(BT0D -M&`^V4$Q$B>Y(BWPD$.@`````@ST``````G4DZU!,B?Y,B>?H`````$B-3"1` -M00^V5V9$B>Y(BWPD$.@`````2(UT)$!,B>?H`````$B+05_#9F9FD$%4 -M55-(B?U,C:>P````Z0T!``!,B>?H`````$B)PP^V4"!FB5`@9H/Z?W849H%X -M..$!=2,/MD`Z@^@1/`%W&)!F@?J#`'<0#[?"#[:4!7@'``"`^O]U&<9#)`9( -MB=Y(B>_H`````.FU````9F:09I!F@7LXX0%U&`^V2SJ-0>\\`0^'J````.LW -M9F9FD&9FD`^VPDB-%,!(C1202,'B`TB)T$@#A4@(``#V0$L$=1'&0R0&2(G> -M2(GOZ`````#K8$B)WDB)[^@`````@_@"9I!W!X/X`7,;ZPN#^`-F9F:0=3[K -M,$B)WDB)[^@`````D.LN2(V5L````$B+A;````!(B5@(2(D#2(E3"$B)G;`` -M``#K/4B)WDB)[^@`````D$PYI;`````/A>;^___K(DB+M4@(``"-0?\\`7:# -M#[;"2(T4P$B-%)!(C036Z5C___];74%?`0`` -MZQ*+402-0@&)002#^B@/AXL!``!)BX6P````2(EP"$B)!DF-A;````!(B48( -M28FUL````,9&)(!(B>J^(0```$R)Y^@`````A=L/A:D(`="'V0DH"#X2"`0``#[9-<;@!````T^`)0E"`34P0 -MZ6L!``!!#[9$)`N#X/>#R!!!B$0D"T&`?"0-`'130;X`````38U\)$!,B?_H -M`````$B)PTF+1"1(28E<)$A,B3M(B4,(2(D82(M30$B%TG0528NU``@``+\% -M````Z`````"`2TP"08/&`44X="0-=[A(BU582(72=2W&14H#9L>%N``````` -M2(GJOB$```!,B>?H`````$B)[DR)[^@`````Z`$B+15A(QX#(`````````$B+15A(B8#0````2(MU6$B!QK@```!)BWTH -MZ`````#K6V9FD`^V74I!@&0D"^])BX6P````2(EP"$B)!DF-A;````!(B48( -M28FUL````$B)ZKX&````3(GGZ`````"`^_]U$4B)ZDR)YDR)[^@`````9F:0 -M3(GOZ`````!(BUPD"$B+;"003(MD)!A,BVPD($R+="0H3(M\)#!(@\0XPV9F -MD&:005=!5D%505154TB#[`A(B?U)B?=(BX]("```#[=&(+K8)@$`9CV#`'<7 -M#[?`#[:$!W@'``!(C13`2(T4D$C!X@-,C2013(GF2(GOZ`````!,B>9(B>_H -M`````$$/MW?H`````+@!```` -M2(/$"%M=05Q!74%>05_#9F:09F:02(/L:$B)7"0X2(EL)$!,B60D2$R);"10 -M3(ET)%A,B7PD8$B)5"0H3(LG#[?V2,'F`TD#M"28"```2(LN9H%]..$!=2X/ -MMD4Z@^@1/`%W(TB+5RA$#[9Z3$&^`````$B#?"0H`'5AQD)-`$&^`````.M5 -M28N,)$@(``"XV"8!`&:!?2"#`'<=#[=%($$/MH0$>`<``$B-%,!(C1202(T$ -MU0````!,C30!10^V?F:Z`````$B#?"0H`'4-0<:&Q`````"Z`````(!])(%U -M!(!G"_=(@WPD*``/A7,!``#&120`@ST``````7479H%]..$!=0\/MD4Z@^@1 -M/`%W!,9%)"'VA98````@#X1"!```2(M%:$B%P`^$-00``$B)P_:`L0````)T -M'4B+N*````!(A?]T$4B+=4A(A?9T"(M5-.@`````28N4)"`+``!(@<)`"``` -M00^V1F;!X`A(F$@!PHL"B04`````B<+!ZA"(DYL```#!Z!AFB8.0````28N4 -M)"`+``!(@<)$"```00^V1F;!X`A(F$@!PHL2B14`````#[;"9HF#E`````^V -MQF:)@Y8```")T,'H$`^VP&:)@Y@```#!ZAB(DYH```!)BY0D(`L``$B!PDP( -M``!!#[9&9L'@"$B82`'"BP*)!0`````/ML!FB8.2````28N4)"`+``!(@<)( -M"```00^V1F;!X`A(F$@!PHL"B04`````B<+!X@AF"9.4````B<*!X@#_``!F -M"9.6````P>@()0#_``!F"8.8````Z0(#``!FD`^W13)(:<"P!```38NL)%`+ -M``!)`<5)C9T@!```@'TD@'4$QD4D(4V%]@^$D0```$F+5D!(A=)T0`^V@LL` -M``"-!(`/ME("`=!(F`^VB`````!!#[94)#I!#[9T)#E,BT0D*$C'QP````"X -M`````.@`````Z8<```!(BU<@00^V1"1!#[92"(T$@HT$@$$/ME9Q`=!(F`^V -MB`````!!#[94)#I!#[9T)#E,BT0D*$C'QP````"X`````.@`````ZS](A=)T -M.DB+1R!!#[9,)$$/MD`(C0R(00^V5"0Z00^V="0Y3(M$)"A(Q\<`````N``` -M``#H`````&9F9I!F9I"+2PB+4P2+,T2+0PQ(Q\<`````N`````#H`````$'V -M12(!=1-!@'TG`'D,#[=U,DR)Y^@`````#[9$)"NH`0^$7`$``$R)^DC!X@B! -MX@#_``!)BX0D(`L``$@%0`@``$@!T(LPB34`````08GW0<'O$(GPP>@8B$0D -M$$F+A"0@"P``2`5$"```2(T$`D2+*$2)+0````!)BX0D(`L``$@%2`@``$B- -M!`*+&(D=`````$F+A"0@"P``2`5,"```2`'"1(LR1(DU``````^V1"00B00D -M10^VST6)\(G91(GJ2,?'`````+@`````Z`````!F@7TXX0%U#P^V13J#Z!$\ -M`0^&^0```,9%)`+VA98````@=&E(BTUH1(BYFP````^V1"009HF!D````(G8 -MP>`(00^VU0'09HF!E````(G>0(#F`$R)Z`^VU(T$%F:)@98```")VL'J$,'B -M"$2)Z,'H$`^VP`'"9HF1F````$$/ML9FB8&2````Z8,```!F@7TXX0%U"P^V -M13J#Z!H\`79P2(GN3(GGZ`````#K8V9FD(3`>5Q!@/\?=RI)BP0DBY!8`0`` -MB14`````N`$```!$B?G3X"'"=#A)BP0DB9!8`0``ZRQ)BP0DBY!@`0``B14` -M````00^VSX/I(+@!````T^`APG0*28L$)(F08`$``$B+7"0X2(ML)$!,BV0D -M2$R+;"103(MT)%A,BWPD8$B#Q&C#9F9FD&9FD&9FD&9FD$%7059!54%455-( -M@^P82(G]2(E\)`A$#[>OR@P``$B+A[`+``"+`(D%`````&8E_P]FB8?*#``` -M9D0YZ'4^2(L'BX!0`0``B04`````2(L7)?#__P")@E`!``"Z`````(7`#X1$ -M!```2(M\)`CH`````+H!````Z3`$``!F@;_*#```_P\/A:4#``#IO@,``$R+ -MA5`+``!!@\4!9D0[KD00?;!"`^$M@```$B+10"+B%`!``")#0````!(BU4`B<@E\/__`(F" -M4`$``(7`=&V`?4,`=&>)SO?&``$``'4NOP````#WQ@```0!T1.L?#[?7C4H( -M2(GP2-/XJ`%U%(U*$$B)\$C3^*@!=0?K([\`````#[?'2(G"2,'B!TB-A,)0 -M`0``2(UL,@\R2(M\)`CH`````.G0`@``2(M\ -M)`CH`````(A##F9FD.F[`@``08G/9D&!Y_\/00^WQTAIT+`$``!-BT00($B- -M-,4`````2(N%F`@``$@!\$B+&$B%VP^%QP```$$/M_>)\DC'QP````"X```` -M`.@`````9H-]9``/A&("``!!OP````!!#[;73(TTU0````!(BX68"```3`'P -M2(LP2(7V=&I(:=JP!```2`.=4`L```^V3B5%#[;G1(GB2,?'`````+@````` -MZ`````!,B?!(`X68"```2(LXZ`````"+BR0$``"+DR`$``!$BXLL!```1(N# -M*`0``$2)YDC'QP````"X`````.@`````08/'`4$/ML=F.T5D#X/"`0``Z6'_ -M__](B?!(`X68"```2(L`#[=0(&:!^H,`=W@/M\(/MH0%>`<``#S_=&EF@_I_ -M=R`/ML!(C13`2(T4D$C!X@-(`Y5("```2(M"4`^V0`CK+TB)\$@#A9@(``!( -MBP`/MT`@#[:$!7@'``!(P>`(2`.%<`@``$B+@(`````/MD`(//]T$`^VT$AC -MPH"\!?P'``#_=1S&0R0&2(G?Z`````!(B=Y(B>_H`````.D1`0``2&/"#[:$ -M!?P'``!(B<)(P>('2(V$PE`!``!(C7P%"$V%P'0-0?;!`K@`````3`]$P/9' -M"@(/A=8```!!#[?'B40D%$R)PHG&Z`````!(BX7`````2#D$)'180;P````` -M08/$`4B+`$@Y!"1U\T6$Y'1`0;X`````2(L\).@`````2(U(\$B+-"1(BU8( -M2(E&"$B),$B)4`A(B0)(.=FX`0```$0/1/!!@.P!=S+_#V9FD'1.2(L$)$B+4`A(C4,02(L,)$B)00A(B4L02(E0"$B)`D2)^F;! -MZ@6#XG^+3"04@^$?N`$```!(T^`)1)5HZQ!(C;?`````2(DT)&9FD&:09D0Y -MK_H`````+H!````B=!(@\086UU!7$%=05Y!7\-F9I!54TB#[`A(BY<` -M"```2(M""(LHB2T`````]\4```"0=`9(BT((B2A(BY\`"```]\4```0`="M( -MBP.+D%`!``")%0````"%TG082(L#B9!0`0``2(L#BX!0`0``B04`````]\4` -M``@`=#=(@`' -M2"G02`'X2(NHX`P``$0/MKC:#```2(L'0(#^`W8,QX!P`0``Q`$``.L*QX!P -M`0``J`$``$B)1"0P2`5T`0``2(E$)"!(BU0D,(N"=`$``(D%`````$2)Z8/A -M`[L'````T^-!B=Q!"<1$B:)T`0``O^@#``#H`````/?31"'C2(M,)#")F70! -M``"`?"0?`W970HT$K0````!(F$B-E`'0`0``BP*)!0````"#R`B)`D*-'.T` -M````2&/;2(V$&0`"``#'`#@```"_$"<``.@`````2(M4)#!(C80:!`(``,<` -M`````.M:0HT$K0````!(F$B+3"0P2(V4`=`!``"+`HD%`````(/("(D"0HT< -M[0````!(8]M(C809``(``,<`.````+\0)P``Z`````!(BU0D,$B-A!H$`@`` -MQP``````2(7M#X27`P``08!^0P!T,+L`````9I`/MLL/MD4,2-/XJ`%T$KH! -M````B($2,'@!T@IT$J-%#"+@@`-``"I```0`'0+)?__ -M[_^)@@`-``!(B>Y,B??H`````$ECQ4B)PDC!X@1(P>`'2"G02<>$!N`,```` -M````Z>H"``!(Q\#^____1(GI2-/`1"#XB$0D+P^%G@$``+H`````O@8```!( -MB>_H`````$2)[DR)]^@`````26/%2(G"2,'B!$C!X`=(*=!*C10PBX(`#0`` -MJ0``$`!T"R7__^__B8(`#0``2(U%,$@Y13!U^DB-14!(.45`#X04`0``0;\` -M````2(D$)$B+/"3H`````$F)Q(!X9,B??H`````$B+%"1(.55`#X7V -M_O__2(GN3(GWZ`````!)8\5(B<)(P>($2,'@!T@IT$G'A`;@#````````$&` -M?D,`#X0G`0``0;\`````#[9,)"](B4PD$$B+1"0P2`70`0``2(E$)`A%B?U! -M#[;O2(M$)!")Z4C3^*@!=0M$.'PD'P^%U0```$&`_0-V:$B+1"0PQX!P`0`` -MQ`$``$B+5"0@BP*)!0````")Z8/A`XT,2;L'````T^-!B=Q!"<1$B2*_Z`,` -M`.@`````]]-$(>-(BTPD((D9C12M`````$ACTD@#5"0(BP*)!0````"#R`B) -M`NMG2(M$)##'@'`!``"H`0``2(M4)""+`HD%`````(GI@^$#C0Q)NP<```#3 -MXT&)W$$)Q$2)(K_H`P``Z`````#WTT$AW$B+3"0@1(DAC12M`````$ACTD@# -M5"0(BP*)!0````"#R`B)`D&#QP%!C44!03A&0P^'^?[__TB#Q#A;74%<05U! -M7D%?PV9F9I!F9F:005154TF)_$B)]0^V=T-`A/9T)@^V50R[`````/;"`70. -MZQ9(B=")V4C3^*@!=0^#PP%`./-U[.L%NP````#V10L"=0I(C45`2#E%0'5E -M2(GOZ`````"$P'1.3(GGZ`````!(B<9(A_H`````.L+ -M#[;S3(GGZ`````!;74%@4@^`!A,!U -M"H/#`6:!^RP!=:A$B?9(B>_H`````$B)[^@`````26/&2(G"2,'B!$C!X`=( -M*=!(`>CV@-D,```!=`](B[#@#```2(GOZ`````!;74%<05U!7L-F9F:09F9F -MD&9FD&9FD$%6055!5%5308GU2(G]1`^V]DECQDB)PDC!X@1(P>`'2"G03(ND -M!^`,``!-A>0/A`@!``!(Q\#^____1(GQ2-/`081$)`P/A?````!!@'PD#0`/ -MA.@!``!!O0````!)C5PD0$B)W^@`````2(G"2(M#"$B)4PA(B1I(B4((2(D0 -M@'I)``^%G@````^W0CA(@[S%>`,```!U!TB#>D``=',/MT(X2(N$Q7@#``!( -M@[B``````'1&QH+$``````^V2DA(B"+ -M`(D%`````,'H%(/@`83`=0J#PP%F@?LL`76G1(GV2(GOZ`````!(B>_H```` -M`$ECQDB)PDC!X@1(P>`'2"G03(ND!>`,``!-A>1T9H!]0P!T++L`````#[;+ -M00^V1"0,2-/XJ`%T#[H`````B_H`````(/#`3A=0W?900^VQ4B)PDC! -MX@1(P>`'2"G02(V$!=`,``!)B40D($'V1"0*`70-3(GF2(GOZ`````!FD%M= -M05Q!74%>PV9F9I!F9I!(@^P(3(L'1(M/-$$/MG!#0(3V=&A)C8#0#```N0`` -M``!(.?AU(.M5#[;!2(G"2,'B!$C!X`=(*=!)C80`T`P``$@Y^'0(@\$!0#CQ -M==J`^0-V+TF+`$@%T`$``$B-%(T`````@>+\`P``2`'0BP")!0````#!Z!2# -MX`'K+;D`````28L`2`70`0``2(T4C0````"!XOP#``!(`="+`(D%`````,'H -M%(/@`83`=!`/MO%$B2(UT)%\/MW\\2(U$)%)(B40D.$B-1"142(E$)#!( -MC40D3$B)1"0H2(U$)$Y(B40D($B-1"182(E$)!A(C40D6DB)1"002(U$)%M( -MB40D"$B-1"162(D$)$R-3"1<3(U$)%#H``````^V1"1?2(T4P$B-%)!(P>(# -M2(MS($B-NR@(``"Y`0```.@`````#[94)%U(P>((2(MS($B-NU`(``"Y`0`` -M`.@`````#[=4)%A(P>(#2(MS($B-NW@(``"Y`0```.@`````#[=$)%!(C12` -M2(T44$C!X@1(BW,@2(V[4`D``+D!````Z``````/ME0D7`^W1"102`^OT$B- -M%%)(P>("2(MS($B-N^`(``"Y`0```.@`````2(MS($B-NP@)``"Y`0```+H` -M`@``Z``````/ME0D6TC!X@5(BW,@2(V[>`D``+D!````Z`````!(BW,@2(V[ -MH`D``+D!````N@`!``#H``````^W5"162(T4DDC!X@-(BW,@2(V[R`D``+D! -M````Z``````/MU0D6$@!TDB+(&2(MS -M($B-N]`*``!!N`$```"Y0````.@`````2(MS($B-NP`+``!!N`$```"Y``$` -M`+H`20``Z``````/MU0D6$AITK`$``!(BW,@2(V[,`L``$&X`0```+F````` -MZ``````/MU0D5$C!X@)(BW,@2(V[8`L``$&X`0```+D$````Z``````/MU0D -M4DC!X@)(BW,@2(V[D`L``$&X`0```+D$````Z``````/ME0D6\'B#$B+X````2(FWN````$B-A[````!( -MB09(B58(2(DRZ`````!(@\0(PV9FD$%7059!54%455-(@^P82(G]2,=$)!`` -M````2(M$)!`/MI0H_`<``(#Z_P^$Z0````^VRDB)R$C!X`=(C83(4`$``$B- -M1`4(2(E$)`@/MO)(8\9(B<)(P>('2(T$PH"\!64!````#X2N````0;P````` -M2(G(2,'@!TB-!,A,C;0%F`$``$R-+"A(8\9(B<)(P>('2(T$PDR-O`50`0`` -M3(GWZ`````!(B<-)BX6@`0``28F=H`$``$R),TB)0PA(B1A(BU-`2(72=!5( -MB[4`"```OP4```#H`````(!+3`)(B=J^(0```$B+?"0(Z`````"`>W,`=!A( -MB>_H`````+\!````Z`````"`>W,`=>A!@\0!13AG%7>%2(-$)!`!2(-\)!`$ -M#X7O_O__2(GOZ`````!(@\086UU!7$%=05Y!7\-F9F:09F9FD&9FD&9FD$%7 -M059!54%455-(@^P828G]2(E\)!!,BV=028LL)$B+A;`+``!$BS!(B?Y(B>_H -M`````$F-72!!OP````!).5T@=!Y(B=_H`````$F)QTF+12!,B7@(28D'28E? -M"$V)?2!)BU5`2(72=$1!N/__``!-A?]T!44/MT5R@P``$$YUG1B#[>US@P``$B+C;`+``"#P@$Y\K@`````#T/0C4(!BP2! -MJ0``"`!U-68E_P]F1#G@=2M).=]U*TB)[^@`````00^W=S)(Q\<`````N``` -M``#H`````.G0````9F:01#GR=:QF@?^#`&9FD&9FD'=V#[?'@+P%>`<``/]T -M:4B#?"00`'1A00^V14BH`718J`1T5$PY^W0L2(L#2(M3"$B)4`A(B0)(BX6P -M````2(E8"$B)`TB+1"0(2(E#"$B)G;`````/MW,R2(GOZ``````/MW,R2(GO -MZ`````!FQT,R_P]!@&US`4&#Q`%F1#EE9`^'V?[__TB#?"00`'0N00^V14BH -M`70EJ`1T(4'&A<0````$28L728M'"$B)0@A(B1!,B?Y,B>_H`````$B#Q!A; -M74%<05U!7D%?PV9F9I!!5T%6055!5%532(/L:$B)^\9'2P#&1TH`QH>A#@`` -M`$B-E]`,``"X`````&9F9I#&!!``2(/``4@]P`$``'7P2(V#L````$B)@[`` -M``!(B8.X````2(V#P````$B)@\````!(B8/(````3(VCT````$R)H]````!, -MB:/8````2(V#X````$B)@^````!(B8/H````3(V[\````$R)N_````!,B;OX -M````2(V#``$``$B)1"1`2(F#``$``$B)@P@!``!,C;,0`0``3(FS$`$``$R) -MLQ@!``!(C4PD7DB-5"1@2(UT)&$/MWL\2(U$)&)(B40D.$B-1"1D2(E$)#!( -MC40D5$B)1"0H2(U$)%I(B40D($B-1"1F2(E$)!A(C40D7$B)1"002(U$)%U( -MB40D"$B-1"182(D$)$R-3"1?3(U$)%;H``````^V1"1AB$-&#[9$)%Z(@ZL` -M```/MT0D9F:)0V0/MT0D9&:)@\P,```/MT0D8H/H`6:)@\X,```/MT0D5F:) -M0TP/MT,\9CV`D70*9CV`E`^%RP8``,9#2`3&0T,$QD-)0,9#1P#&@ZH````) -MQD-$`$B-NR@(``#H`````$B)P4B)@T@(```/MD0D84B-%,!(C1202,'B`TB% -MTG002(G(Q@``2(/``4B#Z@%U\TB-NU`(``#H`````$B)P4B)@W`(```/MD0D -M7DB)PDC!X@A(A=)T$$B)R,8``$B#P`%(@^H!=?-(C;MX"```Z`````!(B<%( -MB8.8"```#[=$)&9(C13%`````$B%TG002(G(Q@``2(/``4B#Z@%U\TB-NP@) -M``#H`````$B)@R@)``!(C;O@"```Z`````!(B<5(B8,`"0``2(V[4`D``.@` -M````2(G"2(F#<`D``&:#?"16`'1(N0````!(B6I@#[9$)%^(0EA(BX/8```` -M2(F3V````$R)(DB)0@A(B1`/MD0D7TB-!$!(C6R%`$B!PK````"#P0%F.4PD -M5G>]2(V[>`D``.@`````2(G"2(F#F`D``(!\)%T`="ZY`````$B+@_@```!( -MB9/X````3(DZ2(E""$B)$$B#PB"#P0$/MD0D768YR'?72(V[H`D``.@````` -M2(G"2(F#P`D``$B-B``!``!(BX,(`0``2(F3"`$``$B+="1`2(DR2(E""$B) -M$$B#PB!(.`V`$```````!(C8P3B`$``$B)B(@!``!(B8B0`0``2(V4$Y@!``!( -MB9"8`0``2(F0H`$``,9&$@*#QP$/MD,^9CGX=X;&0T<`QH/\!P``_\:#_0<` -M`/_&@_X'``#_QH/_!P``_X!\)&$`#X23````O@`````/M\Y(C03)2(T$@4C! -MX`-(BY-("```QD0"2P%(BY-("```QD002@!(BY-("```QD00$$+@``````$C'A,MX`P```````$B)P4@#BT@(``!( -MC5$@2(E1($@#@T@(``!(C5`@2(E0*(/&`0^V1"1A9CGP#X=R____9L>#J``` -M````N`````#&A!AX!P``_TB#P`%(/80```!U[(!\)%X`='Z^``````^WUDC! -MX@A(BX-P"```9L=$$$H$`$B+@W`(``#&1`)"`$B+@W`(``#&1`)#_TB+@W`( -M``#&1`),_TB)T4@#BW`(``!(C4$H2(E!*$B)T4@#BW`(``!(C4$H2(E!,$B+ -M@W`(``!,B80"@````(/&`0^V1"1>9CGP=X=(C;/X"@``2(V[T`H``.@````` -M2(F#\`H``$B-LR@+``!(C;L`"P``Z`````!(B8,@"P``2(VS6`L``$B-NS`+ -M``#H`````$B)@U`+``!(C;.("P``2(V[8`L``.@`````2(F#@`L``$B-L[@+ -M``!(C;N0"P``Z`````!(B8.P"P``2(VSZ`L``$B-N\`+``#H`````$F)Q$B) -M@^`+``!(BZOH"P``@'PD70!T2T&]`````$R)_^@`````3(E@$$B):!A(BY/X -M````2(F#^````$R).$B)4`A(B0))@<0`$```2('%`!```$&#Q0$/MD0D769$ -M.>AWNTB-LQ@,``!(C;OP"P``Z`````!)B<1(B8,0#```2(NK&`P``$&]```` -M`$B+?"1`Z`````!,B6`02(EH&$B+DP@!``!(B8,(`0``2(M,)$!(B0A(B5`( -M2(D"28'$```!`$B!Q0```0!!@\4!9D&#_0AUN$B-LT@,``!(C;L@#```Z``` -M``!(B8-`#```3(NC2`P``&:#?"18`'1(2(G%0;4`3(GWZ`````!(B6@03(E@ -M&$B+DQ@!``!(B8,8`0``3(DP2(E0"$B)`DB!Q8P!``!)@<2,`0``08/%`69$ -M.6PD6'>^2(/$:%M=05Q!74%>05_#9F:09F:09F:005=!5D%505154TB#[`A) -MB?U,BZ>`````28LL)$B+A;`+``!$BSA(B?Y(B>_H`````$F-72A).5TH#X2Q -M````2(G?Z`````!)B<9)BT4H3(EP"$F)!DF)7@A-B74H387V#X3[`0``#[9- -M04F+1"0@#[9`"(T,B`^V53H/MG4Y10^W1C)(Q\<`````N`````#H`````$4/ -MMV8R36GDL`0``$P#I5`+``!)C9PD(`0``$R)]^@`````BTL$00^W=C)$BTL, -M1(M#"$&+E"0@!```2,?'`````+@`````Z`````!F@WUD`'4]Z54!``!F9F:0 -M#[9-04F+1"0@#[9`"(T,B`^V53H/MG4Y0;C__P``2,?'`````+@`````Z``` -M``#I;`$``$&\`````$B-A;````!(B00D00^WU$B+A9@(``!(BQS02(7;#X3E -M````00^W?4!F.WL@#X76````#[>5R@P``$$YUW1?#[>US@P``$B+C;`+``"# -MP@$Y\K@`````#T/0C4(!BP2!J0``"`!U,F8E_P]F1#G@=2A).=YU*$B)[^@` -M````00^W=C)(Q\<`````N`````#H`````.G.````1#GZ=:]F@?^#`&9F9I!W -M8`^WQX"\!7@'``#_=%-).=YT*TB+`TB+4PA(B5`(2(D"2(N%L````$B)6`A( -MB0-(BP0D2(E#"$B)G;`````/MW,R2(GOZ``````/MW,R2(GOZ`````!FQT,R -M_P]!@&U$`4&#Q`%F1#EE9`^']/[__TF+%DF+1@A(B4((2(D00<9%301,B?9, -MB>_H`````.LO#[9-04F+1"0@#[9`"(T,B`^V53H/MG4Y0;C__P``2,?'```` -M`+@`````Z`````!(@\0(6UU!7$%=05Y!7\.00(#^`1G`]]`E```,@$B+5PB) -M0@S#D)"0D)"0D)"0D)!32(M<)"!,BU0D*$R+7"0X9H'_(B=W6V:!_R`G#X.0 -M````9H'_0"$/A(4```!F@?]`(7<>9H'_("%T=V:!_R(A='!F@?]0!W5O9F9F -MD&9FD.M@9H'_1"%T66:!_T0A9I!R5HV'\-C__V:#^`%W2F:0ZT!F@?^")W0Y -M9H'_@B=FD'<29H'_)"=T*6:!_X`G9I!U)NL>9H'_@)%F9F:09F:0=!!F@?^` -ME'0)9H'_@')FD'4&Q@84Q@(`Q@$$9H'_4`=T!<8#`.L)#[8&B`-F9F:09D'' -M`H``9D''`P``0<8!($B+1"009L<```$/MA9(BT0D&(@0#[8&9D$#`F9!`P-( -MBU0D,&:)`F9!B0!!#[<22(M$)$!FB1!!#[<2@\(+2(M$)$AFB1!;PV9F9I!F -M9F:0\\-F9F:09F9FD&9FD&9FD$&Y`````$$/MH0Y^`<``#S_=&`/ML!(P>`( -M28G`3`.'<`@``$&`>#H`=#ZY``````^VP4F+5,!82(72=".+0D@E`/__`#T` -M`/\`=13V0DL$=`Y(BT)`2(7`=`5`B'`!D(/!`4$X2#IWQT&(L/@```"#Q@%) -M@\$!28/Y!'6)2(N'``@``$@Y^'4,2(VXP`X``.AK____\\-F9I!F9I!F9I"X -M`````,8$.`!(@\`!2#T``0``=?#&1T/_QD=,_TB-1RA(B4````9F:09F:0@\$!@_D@=:Q( -MBP-$BX`<`0``1(D%`````+$`9F:09I"X`0```(G'T^=!A?AU,HA.3$B+$XGX -M1`G`B8(<`0``2(L#BX!@`0``B04`````B?HAPG1$2(L#B9!@`0``ZSF0@\$! -M@_D@=;A(BT,(BP!(BP.+D!P!``"+L!@!``")-0````")\8GR2,?'`````+@` -M````Z`````"`0T0!6\-FD%-(B?L/ME9(2(G0@^`&2(/X!G4,]L(!#X0$`0`` -M9F:0@'YF_P^%]P```$B+`T2+@!@!``!$B04`````N0````"X`0```(G'T^=! -MA?AU.(A.9DB+$XGX1`G`B8(8`0``2(L#BX!8`0``B04`````B?HAP@^$I0`` -M`$B+`XF06`$``.F7````@\$!@_D@=;)(BP-$BX`<`0``1(D%`````+$`BH%#[?V@>+_!P`` -MB?^X`0```$C3X/?0(827H`@``$B!QQ@*``#H`````$B#Q`C#9F9FD$B# -M[`@/MD8(#[:T!_P'``#&A`?\!P``_P^W]DB!Q\`*``#H`````$B#Q`C#9F9F -MD$B#[!A(B5PD"$B);"002(G[2(GU#[9&3#S_=!,/MO!(BS_H`````,9%3/^` -M:T0!2(M<)`A(BVPD$$B#Q!C#9I!(@^P82(E<)`A(B6PD$$B)^TB)]0^V1F8\ -M_W03#[;P2(L_Z`````#&16;_@&M$`4B+7"0(2(ML)!!(@\08PV:055-(@^P( -M2(G]2(GS2#E^*'0N2(-^<`!T)X"^@`````!U'H%^-``0``!W"TB-=G#H```` -M`.L*2(UV<.@`````D&:!>SCA`0^%E`````^W0R!F/8,`#X=X````#[?`#[:$ -M!7@'```\_W1I2(N-2`@``(![)`!U7`^VP$B-%,!(C1202(T$T0^V4SJ`^@=T -M&X#Z!W<'@/H&=2_K&(#Z#&9FD'0@@/H-=2#K$&:#8&+]9I#K%6:#2&("ZPYF -M@V!B]V:0ZP5F@TAB"&:!>SCA`69FD'4.@'LZ"W4(QD,D`&9F9I!(BWLH2(G> -M_Y.@````9H%[..$!=4L/MD,Z@^@1/`%W0`^W0R!F/8,`=W8/M\`/MH0%>`<` -M`#S_=&`(2(G&2`.U<`@``(!^1`!U4$B)[^@`````ZT9F9I!F9I`/ -MMT,@9CV#`'`'2(V$^%`!``!(C50%"+@`````Q@00`$B#P`%( -M/8@```!U\`^WP4B)PDC!X@=(C03"2(V,!8@!``!(C10H2(F*B`$``$B)BI`! -M``!(C80%F`$``$B)@I@!``!(B8*@`0``0(BR8`$``$B)^$C!X`=(C83X4`$` -M`$B-1`4(ZP=FD+@`````2(/$"%M=PV9F9I!(@^P82(D<)$B);"0(3(ED)!!( -MB?U(C9]0"@``2(G?Z`````"$P`^%U````$B)W^@`````B<*X`````&9FD&:0 -MB<.`O"AX!P``_W45#[;`9CF%J````',89HF%J````.L/@\,!2(/``4@]@``` -M`'70@/N`#X2'````#[;#B)0%>`<```^WPDB-%,!(C1203(TDU0````!,B>=( -M`[U("```Z`````!(BY5("```#[;#9D&)1!0X2(N%2`@``$'&1`1*`$B+A4@( -M``!!QD0$9/](BX5("```0<9$!&7_@'U+`74-2(N%2`@``$&`3`1,`4R)X$@# -MA4@(``#K"F9FD&:0N`````!(BQPD2(ML)`A,BV0D$$B#Q!C#9F9FD&9F9I!3 -M2(G[Z.?V__](B[L`"```Z`````!;PV9FD&9FD&9FD$B#[!A(B1PD2(EL)`A, -MB60D$$B)_4B-GX@*``!(B=_H`````(3`#X6T````2(G?Z`````")PDB)Z$&\ -M@/___Y"`N/@'``#_=!1!@\0!2(/``4&`_(0/A(4```#KXT&`_(1T?4$/ML2( -ME`5X!P``#[?:2,'C"$B)WT@#O7`(``#H`````$B+E7`(``!!#[;$9HE$$T!( -MBX5P"```QD0#0@!(BX5P"```9L=$`TH``$B+A7`(``!FQX0#Z```````2(N] -M``@``+X`````Z`````!(B=A(`X5P"```ZPEF9F:0N`````!(BQPD2(ML)`A, -MBV0D$$B#Q!C#9F9FD&9F9I!54TB#[`A(B?T/MT9`#[:`<``$B+E,=X`P``2(72=!9(@[J``````'4,2,>$QW@#````````00^W1"0X -MQH0#>`<``/\/M_5(C;M0"@``Z``````/M\5(C13`2(T4D$B-+-4`````2(GN -M2`.S2`@``(!^9O]T"$B)W^@`````3(GF2(G?Z`````!(BX-("```QD0%2@!( -MBX-("```QD0%2P%(BQPD2(ML)`A,BV0D$$B#Q!C#9F9FD&9F9I!F9I!(@^PH -M2(E<)`A(B6PD$$R)9"083(EL)"!)B?U(B?-F@7XXX0$/AY,B>_H -M`````$P[92@/A!@!``#'A8@`````$GH`2,>%F`````````!(B:V@````2(VU -MB````$F+?2CH`````,9%0P#IXP```&:02(M%*$B)4`A(B0),B6((2(E5*$B+ -M$TB+0PA(B4((2(D0Z;L````/MT,@9CV#``^'K0````^WP$$/MH0%>`<``$F+ -MC4@(```\_P^$D@````^VP$B-%,!(C1202(TLT8!M@```!)BWTHZ`````#&17``ZRAF9F:09F:02(M%($B)4`A( -MB0),B6((2(E5($B+$TB+0PA(B4((2(D02(M<)`A(BVPD$$R+9"083(ML)"!( -M@\0HPV9FD&9FD$B#[!A(B5PD"$B);"002(G]2(GS#[=.,F:!^?\/=!$/M]%( -MBX>8"```2(,\T`!U(`^WR4B)VDC'Q@````!(Q\<`````N`````#H`````.LD -M#[?QZ`````!FQT,R_P](B=Y(B>_H`````$B)WDB)[^@`````2(M<)`A(BVPD -M$$B#Q!C#9F9FD&9FD&9FD&9FD$%7059!54%455-(@^P(28G^28G50(AT)`=( -MBQ]F@WMD``^$P````$&\`````$&______T$/M]1(BX.8"```2(LLT$B%[0^$ -MC0````^W=2!F@?Z#`'=.#[?&#[:$`W@'```\_W0_9H/^?W<=#[;02(N+2`@` -M`$B-!-)(C02"2(M$P5`/MD`(ZQ\/ML!(BY-P"```2,'@"$B+A!"`````#[9` -M".L#1(GX03I&"'4K387M=`=F03MU.'4?#[9$)`>(121!#[?T2(G?Z`````!( -MB>Y(B=_H`````$&#Q`%F1#EC9`^'3/___X!\)`>!#X0:`0``2(N#L````$B- -MJ[````!(.>@/A`,!``!!O`````"008/$`4B+`$@YZ'7T9D6%Y`^$Y@```$&_ -M_____V9F9I!(B>_H`````$B)Q@^W>"!F@?^#`'=.#[?'#[:$`W@'```\_W0_ -M9H/_?W<=#[;02(N+2`@``$B-!-)(C02"2(M$P5`/MD`(ZQ\/ML!(BY-P"``` -M2,'@"$B+A!"`````#[9`".L#1(GX387M="1F03M].'0=2(N#N````$B)L[@` -M``!(B2Y(B48(2(DPZSMF9I!!.D8(=1J`?B2`=0@/MD0D!XA&)$B)W^@````` -MZQIFD$B+@[@```!(B;.X````2(DN2(E&"$B),&9!@^P!=`U(.:NP````#X4D -M____2(/$"%M=05Q!74%>05_#9F:09I!54TB#[`A(B?5F@7XXX0$/A:L````/ -MMD8Z@^@1/`$/AYP````/MT8@NO\```!F/8,`=PL/M\`/MI0'>`<``(G02,'@ -M"$B)PT@#GW`(``"`>T/_=4D/MI68````C002A-*Z"`````]$P@^VP&G`0$(/ -M`(F#B````$C'@Y@`````````2(F;H````$B-LX@```!(BW\HZ`````#&0T,` -M2(M3,$B):S!(C4,H2(E%`$B)50A(B2J`0T0!Z9\```!F9I`/MT4@NO\```!F -M/8,`=PL/M\`/MI0'>`<``(G02(T4P$B-%)!(P>(#2(G32`.?2`@``(![#^``````` -M``!(B9L``0``2(VSZ````$B+?RCH`````,9#<`!(BU,H2(EK*$B-0R!(B44` -M2(E5"$B)*H!#`,```````!(QX.````` -M`````$B+NY````"Z_____TB)WO_1Z4(!```/MT4X2<>$QW@#````````2,># -MB`````````!(B[N0````_]+V14P"=!5(BU5`28NW``@``+\&````Z`````!( -MQT5``````$C'0V@`````ZSU!#[9'04F+5B`/ME((C02"C02`#[95<0'02)@/ -MMH@`````00^V5SI!#[9W.4C'QP````"X`````.@`````2(M56$B%TG0-#[9% -M<4C'1,)8`````$B+50!(BT4(2(E""$B)$$$/ME8-@^H!08A6#4B+15A(A$H"=5F$TG150;P`````38UN0$R)[^@`````2(G#28M&2$F)7DA,B2M( -MB4,(2(D82(7;=!_V0TP"=!E(BU-`28NW``@``+\&````Z`````"`8TS]08/$ -M`44X9@UWM4B)[DR)_^@`````2(/$"%M=05Q!74%>05_#2(N3B````$B%T@^% -MKO[__^G-_O__4TB)\TB+E]@```!(B;?8````2(V'T````$B)!DB)5@A(B3)( -M@WYX`'0)2(UV>.@`````QH.H`````%O#9F9FD$B#[`A(C9?P````N`````!( -M.9?P````=`A(B=?H`````$B#Q`C#9F9FD&9FD&9FD$B#[`A(C9<``0``N``` -M``!(.9<``0``=`A(B=?H`````$B#Q`C#9F9FD&9FD&9FD$%44TB#[`A)B?1( -MBY_P"@``2(''&`H``.@`````B<$/M\!(P>`&2`'828D$)+H`````Q@0"`$B# -MP@%(@_I`=?(/M\%(@\0(6T%Z`^0-V)$B-!(T`````)?P# -M``!)C80`T`$``(L`B04`````ZR*Y`````$B-!(T`````)?P#``!)C80`T`$` -M`(L`B04`````P>@4@^`!PY`/M@?`Z`2#X`L-9F9FD&9FD+@`````P[@!````9F:09I##9F9FD&9F9I!F9F:09F:0 -M08G0A=)T);D`````9F9FD`^V%P^V1P&(!HA6`4B#Q@)(@\<"@\$!1#G!=>3S -MPV:02(/L&$B)'"1,B60D"$R);"0028G]B?-(BX>`````3(L@3(GGZ`````!( -MB<;&0#CAQD`Y`<9`.A+&0#L/QD`\H,9`/0,/ML>(1CZ)V,'H$(A&/XG8P>@8 -MB$9`B%Y!00^W14!FB48@3(EF*,=&-`````!(QT9(`````$C'AJ`````````` -M3(GGZ`````!(BQPD3(MD)`A,BVPD$$B#Q!C#D$B#["A(B5PD"$B);"003(ED -M)!A,B6PD($B)]4&)U$&)S4B+'TB)W^@`````2(G"2(7`=1#&A<4````!QD5* -M`^F,````QD`XX<9`.0%!@/P!&<#WT(/``HA".D6$[75)N`````!(@WU8`'0$ -M#[9%<8A".P^W13AFB4(@2(E:*,="-`````!(QT)(`````$C'P`````!(B8*@ -M````2(G62(G?Z`````#K*,9".P\/MT4X9HE"($B)6BC'0C0`````2,="2``` -M``!(Q\``````Z\1(BUPD"$B+;"003(MD)!A,BVPD($B#Q"C#9F9FD&9FD$B# -M[#A(B5PD"$B);"003(ED)!A,B6PD($R)="0H3(E\)#!(B?U%B<5,B0PD08GV -M08G708G,2(N'@````$B+&$B)W^@`````2(G"2(7`='K&0#CAQD`Y`4&`_@$/ -ME,"#P!&(0CJX#P```$6$_W4$#[9%18A".T2(8CQ,B>$/ML6(0CU!@/X!=1], -MB>D/ML6(0CY$B>C!Z!"(0C]$B>C!Z!B(0D!$B&I!#[=%0&:)0B!(B5HH2(L$ -M)$B)@J````!(B=9(B=_H`````$B+7"0(2(ML)!!,BV0D&$R+;"0@3(MT)"A, -MBWPD,$B#Q#C#9F9FD$B#["A(B1PD2(EL)`A,B60D$$R);"083(ET)"!(B?5- -MB<9!B=1!B/X!P``2(V$'3`"``#'``P` -M``"_$"<``.@`````2(V$'30"``!$BP!$B04`````ZSA*C1SE`````('C^`<` -M`$B-A"M0`@``QP`,````OQ`G``#H`````$B-G"M4`@``1(L#1(D%`````$$/ -MMO1(8\9(B<)(P>($2,'@!T@IT$F-C`70#```O_S___]`(GD)0(AY"42)P"4` -M`#\`/0``$`!U#HGX@\@"B$$)ZR)F9F:02&/&2(G"2,'B!$C!X`=(*=")^H/* -M`4&(E`79#```2(M<)`A(BVPD$$R+9"083(ML)"!(@\0HPV9FD&9FD&9FD$%5 -M05154TB#[`A(B?U!B?1(BX>`````3(LH9H._\`````!T,(GSO^@#``#H```` -M`$6%Y'0%@_L!=AI,B>]F9I#H`````&:#O?``````=`6#ZP+KTDB#Q`A;74%< -M05W#D$B#[`A)B?`/MT8@NO\```!F/8,`=PL/M\`/MI0'>`<```^WTDC!X@A( -M`Y=P"```2(NW(`L```^V0DS!X`A(F$B-A`9,"```BPB)#0````"!X?\````/ -MMD),P>`(2)A(C;0&1`@``(L&B04`````P>`("0LE`!\``,'X -M"(A'24B-?71)C54428M%%$B)171(BT((2(E'"(M"$(E'$$R-I;````!)BT4N -M2(F%L````$B-G8@```!)C54V28M%-DB)A8@```!(BT((2(E#"$B+0A!(B4,0 -M2(M"&$B)0QA(BT(@2(E#(+H*````2(G^Z.GY__^Z!````$R)YDR)Y^C9^?__ -MNA0```!(B=Y(B=_HR?G__V;'16```&;'16(``&9!@[ZR`0```0^4PL'B`P^V -M14R#X/<)T(A%3$'VA:<````$=`9FQT5@`0!!]H6D`````70H9H--8`)!]H6J -M`````70%9H--8@%!]H6H`````70*9H%-8``!9F9FD$'VA:0````@=!9F@TU@ -M!$'VA:H````@=`=F@TUB`F:00?:%I````$!T%F:!36"``$'VA:H```!`=`9F -M@TUB")#&17(!]D5@`70-28N%R````$B)16CK"$&+17A(B45H00^WA=0````E -M`-```+H``@``/0!0``!U&$$/MX7L````P>`000^WE>H````!T(T4`(F5O``` -M`$$/MY74````B=`E`.```#T`8```=12)T(/@#XB%P````.L.9F9FD&9FD,:% -MP`````!FQX7"```````/MHW`````@/D!=C1!#[>5H@$``(G0)0#````]`$`` -M`'4>9H'B_S]T%V:X`0#3X&8IT&:)A<(```!F9F:09F:02(-M:`'&160"0?9% -M:@)T&$$/MX6`````J`]T#&:#^`(9P(/`!(A%9,9%9?]!]D5J!'0?N0````!! -M#[>%L````$C3^*@!=`.(366#P0&#^0=UYL:%(`$```!!]H:F````('0900^W -MAJP```"#X""#^`$9P(/``HB%(`$``+@!````6UU!7$%=05[#9F:09F:005=! -M5D%505154TB#[#B)]4F)U$B+#XT4[0````"-0N")P$B-G`@@`@``2(D<)$B- -MA`@D`@``2(E$)`B)TDR-O`H``@``3(VL"@0"``"[`````$R-="00@_T#=B6- -M@QP!``!(BQ0DB0*_$"<``.@`````2(M4)`B+`HD%`````.L=C8,<`0``08D' -MOQ`G``#H`````$&+10")!0````!"B00S2(/#!$B#^QQUJTB+1"0028D$)$B+ -M1"0828E$)`A(BT0D($F)1"00BT0D*$&)1"082(/$.%M=05Q!74%>05_#9F9F -MD&9F9I!F9F:09F:005=!5D%505154TB#[#B)]4F)U$B+#XT4[0````"-0N") -MP$B-G`@@`@``2(D<)$B-A`@D`@``2(E$)`B)TDR-O`H``@``3(VL"@0"``"[ -M`````$R-="00@_T#=B6-@P`!``!(BQ0DB0*_$"<``.@`````2(M4)`B+`HD% -M`````.L=C8,``0``08D'OQ`G``#H`````$&+10")!0````!"B00S2(/#!$B# -M^QQUJTB+1"0028D$)$B+1"0828E$)`A(BT0D($F)1"00BT0D*$&)1"082(/$ -M.%M=05Q!74%>05_#9F9FD&9F9I!F9F:09F:0059!54%455-(@^P@2(G]08GV -M3(LO1`^VYDECQ$B)PDC!X@1(P>`'2"G02`'X2(V0T`P``$"(<@A(B;C0#``` -MQD(*`$2)YN@`````2(G@2(GBQ@``2(/``4B)TTB-3"0@2#G(=>Q!#[;V2(GB -M2(GOZ`````!(B>?H`````$ECU$B)T4C!X01(P>('2"G*2(T,*HF!Z`P``$B+ -M0PQ(B805[`P``$&`_@-V/$*-!*4`````2)A)C80%T`$``(L`B04`````B8$` -M#0``0HT$Y0````!(F$F-A`6``0``BPB)#0````#K3$*-!*4`````2)A)C80% -MT`$``(L(B0T`````26/$2(G"2,'B!$C!X`=(*=")C`4`#0``0HT$Y0````!( -MF$F-A`6``0``BPB)#0````!)8\1(B<)(P>($2,'@!T@IT$@!Z(F(!`T``/:` -M`@T``!`/A.````#V@-D,```"=0K'@/0,```!``(`08#^`W8U0HT($2,'@!T@IT(GQ@>'____?B?*!R@```"#WA`4`#0`` -M```#``]$T4&`_@-V%D*-!.4`````2)A)C80%-`(``(D0ZQ1"C03E`````$B8 -M28V$!50"``")$$B#Q"!;74%<05U!7L-F9F:09F9FD&9FD$%7059!54%455-( -M@^P828G^3(L_28L'QD9)`,9&2`7&1DL&2(E^4+D`````O0````!(C9```@`` -M2(E4)!!(!00"``!(B40D".L69F:09F:000^V1@Q(T_BH`74*@\$!D$$Z3T-R -MZH#Y`W9Z2(T`( -M08'D_P```$$)Q$''10`@````OQ`G``#H`````(L;B1T`````ZWA(C1S-```` -M`('C^`<``$R+;"0020'=0<=%`"P```"_$"<``.@`````2`-<)`A$BR-$B24` -M````0<=%`"0```"_$"<``.@`````BP.)!0````#!X`A!@>3_````00G$0<=% -M`"````"_$"<``.@`````BQN)'0````!!@?P!`6F6=1I!@$X+!HG8P>@0/%`/ -ME,`/MMCK7F9FD&9FD$&!_`$!``!U#XG8P>@0/%`/E,`/MMCK0+^($P``Z``` -M``"#Q0%`@/T$=PJY`````.FK_O__B=C!Z!`\4`^4P`^VV(G:1(GF2,?'```` -M`+@`````Z`````")V$B#Q!A;74%<05U!7D%?PV9F9I!F9I!!5T%6055!5%53 -M2(/L2$F)_4B+!X!_0P`/A#\#``#'1"1$`````$B-D``"``!(B50D$$@%!`(` -M`$B)1"0(9F:0#[9,)$2(3"1##[;!B40D-$B82(G"2,'B!$C!X`=(*=!*C30H -M]H8"#0``$`^$U0(``$B-EM`,``"X`0````^V3"0T2-/@"$(*2(NVX`P``$B) -M="0X]D()`@^$(`$```^V1"1#C6@!03AM0P^&#@$``$AC1"0T2(G"2,'B!$C! -MX`=(*=!(B40D*$F-E`7X#```2(E4)"!)C8P%[`P``$B)3"081`^V]4ECQDB) -MPDC!X@1(P>`'2(G#2"G33HTD*T'VA"0"#0``$`^$I````$R+?"0H30'O0?>' -M]`P`````#@`/A(L```!)C;0=^`P``+H(````2(M\)"#H`````(3`='!)C;0= -M[`P``+H(````2(M\)!CH`````(3`=%6X`0```$2)\4C3X$F-E]`,```*0@J( -M0@I!B(0DV@P``$B#?"0X`'4/38ND).`,``!,B60D..L>26/&2(G"2,'B!$C! -MX`=(*=!(BU0D.$F)E`7@#```@\4!03AM0P^')/___TB#?"0X``^%U@```$R) -M[^@`````2(E$)#A(A<`/A'T!``!(8U0D-$B)T$C!X`1(P>('2"G"3`'J2(M, -M)#A(B8K@#```#[9$)$-(B<%(P>$$2,'@!T@IR$F-A`70#```2(M,)#A(B4$@ -M#[:"V0P``(A!"L9!"0!,B2G&00T`#[9$)$.-<`%!.'5#=G=(8T0D-$B)PDC! -MX@1(P>`'2"G028V\!=`,``!`#[;.#[9'"DC3^*@!=!Y(8\%(B<)(P>($2,'@ -M!T@IT$B+5"0X28F4!>`,``"#Q@%!.'5#=B;KR&9F9I!(8T0D-$B)PDC!X@1( -MP>`'2"G02(M,)#A)B8P%X`P``$AC1"0T2(G"2,'B!$C!X`=(*=!)C90%T`P` -M``^V0@I(BTPD.(A!#`^V:@J`?"1#`W8KBUPD-,'C`TACVTB+1"002`'8QP`X -M````OQ`G``#H`````$@#7"0(B2OK*8M<)#3!XP-(8]M(BT0D$$@!V,<`.``` -M`+\0)P``Z`````!(`UPD"(DK@T0D1`$/MD0D0X/``4$X14,/A^/\__](@\1( -M6UU!7$%=05Y!7\-F9F:005=!5D%505154TB#[&A)B?Y(BP_&1"104,9$)%$! -MQD0D4I/&1"13P,9$)%01QD0D50/&1"16`,9$)%<`2#N_``@```^%DP```$B- -ME\`.``!(BT0D4$B)AR`(``"+!0``````AR,(``"#P`&)!0`````/MH<@"``` -MB((@"```#[:'(0@``(B"(0@```^VAR((``"(@B((```/MH`'`$```````"_D-`#`.@`````0<>' -M<`$``!@!``!!BX=T`0``B04`````@.3]@,P$B40D7$''AW`!```8`0``BT0D -M7$&)AW0!``!!QX=P`0``*`$``$''AW0!``!_?P``0<>'<`$``"0!``!!BX=T -M`0``B04`````9K@```W_/P``B40D7$''AW`!```D`0``BT0D7$&)AW0!``!! -MQX=P`0``/`$``$''AW0!`````'H`0<>'<`$``*0!``!!QX=T`0``?;_O_T'' -MAW`!``"X`0``08N'=`$``(D%`````"7__P``#0``^@")1"1<0<>'<`$``+@! -M``"+1"1<08F'=`$``$''AYP```#_````0<>'D`(``$0!``!!QX>4`@``!A`` -M"$''AY`"``"T`0``0<>'E`(``%]P``!!QX>0`@``,````$&+AY0"``")!0`` -M```PY(#,,XE$)%Q!B8>4`@``08!^0P`/A(,"``#'1"1(`````$F-AU`"``!( -MB40D.$F-EU0"``!(B50D,$F-AB`(``!(B40D*$F-EX`!``!(B50D($F-AX0! -M``!(B40D&$F-ES`"``!(B50D$$F-AS0"``!(B40D"&9FD`^V5"1(B%0D3X#Z -M`P^&]0````^VZHT<[0````!(8]M,BVPD$$D!W4''10`(````OQ`G``#H```` -M`$B+1"0(3(TD`T&+!"2)!0````")1"1<#0``@`!!B00D2(M4)"B)[DR)]^@` -M````B>Y,B??H`````$''10!$`0``OQ`G``#H`````$''!"0&$``(0<=%`+0! -M``"_$"<``.@`````0<<$)%]P``!!QT4`"````+\0)P``Z`````#'1"1<_U2` -M`$''!"3_5```N@$```")[DR)]^@`````2(M$)"!(C10#BP*)!0`````E___^ -M_XD"QT0D7`4!R`!(`UPD&,<#!0'(`.GR````#[9L)$^-'.T`````2&/;3(ML -M)#A)`=U!QT4`"````+\0)P``Z`````!(BU0D,$R-)!-!BP0DB04`````B40D -M7`T``(``08D$)$B+5"0HB>Y,B??H`````(GN3(GWZ`````!!QT4`1`$``+\0 -M)P``Z`````!!QP0D!A``"$''10"T`0``OQ`G``#H`````$''!"1?<```0<=% -M``@```"_$"<``.@`````QT0D7/]4@`!!QP0D_U0``+H!````B>Y,B??H```` -M`$B+1"0@2(T4`XL"B04`````)?___O^)`L=$)%P%`<@`2`-<)!C'`P4!R`"_ -MH(8!`.@`````B>Y,B??H`````(-$)$@!#[9$)$^#P`%!.$9##X?<_?__3(GW -MZ`````!!BX<$`0``B04`````@\@"B40D7$&)AP0!``!(BU0D0(L"B04````` -M)?#___T-#0```HE$)%R)`HL"B04`````28N&^`H``$&)AP@!``!!BX;\"@`` -M08F'#`$``$F+AB@+``!!B8<0`0``08N&+`L``$&)AQ0!``!!QX<@`0`````` -M`$$/MX;,#```)?\/```-```!`$&)AR`!``!)BX:("P``08F')`$``$&+AHP+ -M``!!B8'3`$````!``!!BX<$`0``B04`````@\A908F' -M!`$``,=$)%S[_P`,0<>'5`$``/O_``Q!QX=<`0``__\``+H`````9F9FD&9F -MD$ACPD''A(:@"````````(/"`8/Z$'7I9D''AL@,``#_#V9!QX;*#```_P^X -M`0```$B#Q&A;74%<05U!7D%?PY!!5T%6055!5%532(/L"$F)_DF)]$R++TR) -M[^@`````2(G#2(7`=0Y!QH0DQ0````'IL0```$R)[^@`````2(G%2(7`=1E! -MQH0DQ0````%(B=Y,B>_H`````.F(````3(U[6,9#..'&0SD!QD,Z`T$/MT0D -M.&:)0R#&@Y@````/28L&2(E#*,=#-``"``!(BU402(E32+@`````9F:09F:0 -MQ@00`$B#P`%(/0`"``!U\$B):W!(QX.@`````````+X`````3(G_Z`````"+ -M4S1(BW483(G_Z`````!(B=Y,B>_H`````$B#Q`A;74%<05U!7D%?PV9F9I!F -M9F:09F:005=!5D%505154TB#["A)B?Q(B?-(A?9T%P^V1@F$P'0///\/A1T' -M``#I1P$``&:0N0````!"#[:$(?P'```\_W07#[;`2(G"2,'B!TB-A,)0`0`` -M28U`,``$B%]G1C2(N&@````$B%P'0G2,>&@`````````!)QX3< -M>`,```````!(B[Z0````NO______T.LP2(N&B````$B%P'0D2,>&B``````` -M``!)QX3<>`,```````!(B[Z0````_]!F9F:02(/#`4B#^Q0/A.@%``#K@,9# -M"?](B=Y,B>?H`````)#IT04``+D`````9F:09F:00@^VA"'\!P``//\/A(,` -M```/MM!(B=!(P>`'2(T$T$F-A`10`0``@'@1_W1G@'@5``^$CP4``+T````` -M2(G02,'@!TB-!-!-C:P$F`$``$J-'"!,C:-0`0``3(GOZ`````!(BY.@`0`` -M2(F#H`$``$R)*$B)4`A(B0*`>$K_#X5"!0``@\4!03AL)!4/AC0%``#KQDB# -MP0%(@_D$#X5>____2,=$)!``````08!\)$L`#X6J````NP````!F9F:028NT -MW'@#``!"#[:$(W@'``!(A?9T(#2(G020.$)$@(``#V0$L$=!.`>$D`=0T/M]=,B>?H -M`````.LE2<>$W'@#````````2,>&@`````````!(B[Z0````NO______T4B# -MPP%(@_L4#X5J____0<9$)$L!Z64$``!(BU0D$$(/MH0B_`<``#S_#X0]!``` -M#[;02(G02,'@!TB-!-!)C8P$6`$``$B)3"0@08"\!&4!````#X03!```QD0D -M'P!(B=!(P>`'2(T$T$F-E`28`0``2(D4)$Z--"!-C;Y0`0``2(L\).@````` -M2(G#28N&H`$``$F)GJ`!``!(BPPD2(D+2(E#"$B)&(![2O\/A:8#``!$#[=K -M.$ECQ4$/MI0$>`<``&:)5"0.28NLQ'@#``#V0TP$=')(A>UT;4B#O8`````` -M=&-(@WUH`'5<@&-,^_9#2P1T$@^W5"0.2(GN3(GGZ`````#K0$B+A8````!) -M8]5)QX34>`,```````!(QX6``````````$C'0T``````2(N]D````+K_____ -M2(GN_]!F9I!F9I#V0TL$#X1F`0``QH/$`````$&`9Q/G]D-,`0^$]P```(!C -M3/Y(BU-`2(72=$N`>TD`=2[V0TL$="A!#[94)$&-%))!C525`$ACTDF+M"0` -M"```OP<```#H`````.GC````28NT)``(``"_`0```.@`````ZUT -M8DB+C8````!(A[_T>ME@'M)`'5?]D-+!&9F9I!F9I!T4D$/ME0D08T4DD&-5)4`2&/2 -M28NT)``(``"_`@```.@`````ZRU(BT-`2(7`="1(BY"(````2(72=!A(QX"( -M`````````$B+0T!(B[B0````_]+V0TP"#X3"`0``2(M30$F+M"0`"```OP8` -M``#H`````(!C3/WI?P$``&9FD$B+0T!(A<`/A&\!``!(@[B(``````^$80$` -M`,9#2P'&0TH`2(G:O@8```!(BWPD(.@`````@'MS`'0=9F:09I!,B>?H```` -M`+\!````Z`````"`>W,`=>A(BVM`2(7M#X3C````]D-,!'5.3(GGZ`````!( -MBW-`N@$```!,B>?H`````$B+0T`/ME`"#[9P`4C'QP````"X`````.@````` -M2(M30$F+M"0`"```OP$```#H`````.LO#[95`@^V=0%(Q\<`````N`````#H -M`````$B+4T!)B[0D``@``+\!````Z`````!(BY6(````2(72="0/MT,X2<>$ -MQ'@#````````2,>%B`````````!(B[V0````_]+V0TP"=!I(BU-`28NT)``( -M``"_!@```.@`````@&-,_4C'0T``````2,=%:`````!(BU-82(72=`T/MD-Q -M2,=$PE@`````2(L32(M#"$B)0@A(B1!!@&\5`4B)WDR)Y^@`````]D-,`G0> -M2(M30$F+M"0`"```OP8```#H`````(!C3/UF9F:0@$0D'P$/MDPD'T$X3Q4/ -MAQ3\__](@T0D$`%(@WPD$`0/A9O[__^X`0```$B#Q"A;74%<05U!7D%?PV9F -MD&9FD$B#[#A(B5PD"$B);"003(ED)!A,B6PD($R)="0H3(E\)#!)B?U(B?-, -MBV90#[=&.+H`````@+P'>`<``/\/A*('```/MD9*/`D/A*$%```\"7=-/`4/ -MA)H````\!69FD'<>/`,/A*X````\!&9F9I`/A5H'``#IT````&9FD&:0/`(&``!FD.F9`P``#[9W0T"$]F9F9I`/A($```!!#[94 -M)`R]`````/;"`71GZV])BT0D((%@-/___O](BWY0N0````"Z`0```.@````` -MOP4```#H`````+H!````Z9H&``"Y`````+H`````3(GGZ`````"_4,,``.@` -M````N@$```#I=`8``$B)T(GI2-/XJ`%U#X/%`4`X]77LZP6]``````^V4TA( -MB="#X`9(@_@&=0GVP@$/A?X!P``0;X0)P``9F9FD&9FD$F+50!`@/T#=A=) -MC807@`$``(L`B04`````)0```0#K%4F-A!>``0``BP")!0`````E```!`(7` -M="Q`@/T#=A-)C807@`$``,<````!`.FD!0``28V$%X`!``#'`````0#ID04` -M`+_H`P``Z`````!!@^X!=8K&0TL"QD-*_TB)WDR)[^@`````N@$```#I<@4` -M`$'V1"0*`70T2(G>3(GGZ`````"$P'4E0;[Z````2(G>3(GGZ`````"$P'40 -MO^@#``#H`````$&#[@%UX4"`_0-V)TF+10!(!8`!``!(C13M`````('B^`<` -M`$@!T(L0B14`````B1#K)4F+10!(!8`!``!(C13M`````('B^`<``$@!T(L0 -MB14`````B1!(BWM02(G>Z)/T__^Z`0```.G.!```#[9'04F+5"0@#[92"(T$ -M@HT$@`^V5G$!T$B8#[:(``````^V5SH/MG!H`````````!(B?H`````+H!````Z1@$```/MD=!28M4)"`/ME(( -MC02"C02`#[96<0'02)@/MH@`````#[97.@^V=SE(Q\<`````N`````#H```` -M`$B+:U!,BV4`3(GGZ`````!(B<%(A! -MH`````````!(B_H`````+H!````Z>`"``!)BRPD2(GOZ`````!(B<$/ -MMD-E2(7)=1'&@\4````!N@$```#IMP(``,9!..'&03D!QD$Z!(A!.P^W0SAF -MB4$@28L$)$B)02C'030`````2,=!2`````!(QX&@`````````$B)SDB)[^@` -M````N@$```#I:0(``$F++"1(B>_H`````$B)P4B%P'41QH/%`````;H!```` -MZ40"``#&0#CAQD`Y`<9`.@8/MT,X9HE!($F+!"1(B4$HQT$T`````$C'04@` -M````2,>!H`````````!(B_H`````+H!````Z?D!``!F9F:028LL)$B) -M[^@`````2(G!2(7`=1'&@\4````!N@$```#IT`$``,9`..'&0#D!QD`Z#`^W -M0SAFB4$@28L$)$B)02C'030`````2,=!2`````!(QX&@`````````$B)SDB) -M[^@`````N@$```#IA0$``$F++"1(B>_H`````$B)P4B%P'41QH/%`````;H! -M````Z6`!``#&0#CAQD`Y`<9`.A;&0#P!#[=#.&:)02#&@9@````/28L$)$B) -M02C'030`````2,=!2`````!(QX&@`````````$B)SDB)[^@`````N@$```#I -M"@$``,9&2O]FQX.X``````"`>TL"=1)(BW-02(G:3(GOZ`````!F9I!!]D0D -M"P)U%[L`````28UL)$!!@'PD#0!U)NF3````28MT)"B`1D4!3(GOZ`````"Z -M`0```.FK````9F:09F:02(GOZ`````!(B<))BT0D2$F)5"1(2(DJ2(E""$B) -M$(!Z2O]T0X!Z20!U-H"ZQ0````!T7`^V2DA(B.0<9$)`G_ -M3(GF3(GOZ`````"Z`0```.L;9F:09F:0N@$```#K#D6%]@^$=OK__^F.^O__ -MB=!(BUPD"$B+;"003(MD)!A,BVPD($R+="0H3(M\)#!(@\0XPV9FD&9FD$B# -M["A(B5PD$$B);"083(ED)"!(B?M(B?5(BW9(1`^V13H/MTT@9H'Y@P`/AXH# -M```/M\$/MKP'>`<``$"`__\/A'4#``!F@_E_=R1`#[;72(N+2`@``$B-!-)( -MC02"2(M$P5`/MD`(ZR%F9I!F9I!`#[;'2(N3<`@``$C!X`A(BX00@`````^V -M0`@\_P^$*`,```^VP`^VA`/\!P``//]T$4"`__]T"T0/MDTD08#Y!G4^//\/ -MA``#``!`@/__D`^$]0(``$`/ML=(C13`2(T4D$C!X@-)B=1,`Z-("```0<9$ -M)$L"0<9$)$K_Z;\"``!`#[;'2(T4P$B-%)!(P>(#28G43`.C2`@``$6$R0^$ -MK@```$&`^`8/A*0```!!@/@,#X38`0``10^V1"1*#[9#04F+5"102(M2(`^V -M4@B-!(*-!(!!#[94)'$!T$B8#[:(``````^V4SH/MG,Y00^WA"2X````B00D -M10^VR4C'QP````"X`````.@`````00^WE"2X````C4(!9D&)A"2X````9H/Z -M`78908!\)$H&=!%!QD0D2P)!QD0D2O_I_0$``+_H`P``Z`````#I[@$``$&` -M^`%U#4'&1"1*!&:0Z=L!``!!@/@"=0M!QD0D2@7IR@$``$&`^`,/A1`!``!! -M@'PD2AIU(&:!?@3(-V:0=19F0<>$)+@``````$'&1"1*!NF8`0``3(GGZ``` -M``!)C;PDB````+XH````Z$[4__^$P'5*28U\)'2^%````.@[U/__A,!U-TF- -MO"2P````O@@```#H)=3__X3`=2%)@WPD:`!T&69!QX0DN```````0<9$)$H7 -MZ3,!``!F9I`/MD-!28M4)%!(BU(@#[92"(T$@HT$@$$/ME0D<0'02)@/MH@` -M````#[93.@^V$)+@```!(Q\<`````N`````#H`````&9!@[PDN``` -M`!UV$4'&1"1+`D'&1"1*_^G)````O^@#``#H`````&9!@X0DN`````'IL``` -M`$&`^!=U%F9!QX0DN```````0<9$)$H5Z90```!!@/@8=1-F0<>$)+@````` -M`$'&1"1*%NM[08#X!'439D''A"2X``````!!QD0D2@?K8D&`^`5U$V9!QX0D -MN```````0<9$)$H(ZTE!@/@&=1-F0<>$)+@``````$'&1"1*">LP08#X#'43 -M9D''A"2X``````!!QD0D2@KK%T&`^!9U$69!QX0DN```````0<9$)$H43(GF -M2(G?Z`````!(@WUP`'0,2(UU<$B)W^@`````2(GN2(G?Z`````!(BUPD$$B+ -M;"083(MD)"!(@\0HPV9FD$B#[!A(B1PD2(EL)`A,B60D$$F)_$B)]4B+OH`` -M```/MTY*]L$@2,?"`````$C'P`````!(#T70@'Y"&@^'/@4```^V1D+_),4` -M````#[9610^V1CHXP@^#U00```^VPDB+=,982(7V#X2V!```Z9H$``#&1D(! -MQD5%`$G'P0````!!N`````"Y`@```+H!````O@````!(B>_H`````+@````` -MZ=P$``!)Q\$`````0;@`````N0````"Z`0```+X`````2(GOZ`````"X```` -M`.FN!```2_H`````+@` -M````Z5($``!)Q\$`````0;CDJ`8!N<0#``"Z`0```+X!````2(GOZ`````"X -M`````.DD!```2_H```` -M`+@`````Z<@#``!)Q\$`````1`^V1D:Y8````+H!````O@$```!(B>_H```` -M`+@`````Z9L#``!)Q\$`````0;@```$$N2$```"Z`0```+X!````2(GOZ``` -M``"X`````.EM`P``2_H -M`````+@`````Z1$#``!)B=%!N`````"Y`````+H`````O@````!(B>_H```` -M`+@`````Z><"``!(BT<@@6`T___V_TG'P0````!!N/____^Y`0```+H````` -MO@$```!(B>_H`````+@`````Z:X"``!$#[9.14B+1R!$#[9`"$$/MD0D04&- -M!("-!(!$`%N````$!"#P!(QX7(`````````$B)K=````!)BWPD*$B)WN@`````N`$` -M``#IL`$``/9%2B!T9H-]4`"0=%#&14(2#[9].D"$_W1OBW50N@````"Y```` -M`$#VQ@%U#^L?#[;*2(GP2-/XJ`%T%XA514C'P/[___](T\`A15#K.[H````` -M@\(!0#CZ==3K+,9%10#&14(99H-E2M_K'0^V146#P`&(144Z13IR"L9%10#& -M14(9ZP3&14(+2(GN3(GGZ`````"X`0```.D2`0``2_H`````+@`````Z;8```!)Q\$`````0;C_____ -MN0$```"Z`````+X!````2(GOZ`````"X`````.F(````9F:0#[;"2(MTQ5A( -MA?9T%\9&2AK&1DL&3(GGZ`````"X`0```.MA@\(!B%5%#[9%.CC0=\XXPG5* -MQD5%`,9%0A%(B>Y,B>?H`````+@!````ZS6)R(/(`F:)1DK&1D(`2(N&@``` -M`,9`"?](B[:`````3(GGZ`````"X`0```.L'9I"X`0```$B+'"1(BVPD"$R+ -M9"002(/$&,-F9F:09F9FD$B#[!A(B1PD2(EL)`A,B60D$$B)_4R+)TB+AX`` -M``!(BU`@]T(T```)`'5+#[:'^@```#P*=EE$#[9/140/MD((00^V1"1!08T$ -M@(T$@$0!R$B8#[:(`````$$/ME0D.D$/MG0D.4C'QP````"X`````.@````` -MQD5"$$B)[DB+?0#H`````.M-9F9FD&9FD(/``8B'^@```$B-G[@```!)BWPD -M*$B)WN@`````QX6X````0$(/`$C'A<@`````````2(FMT````$F+?"0H2(G> -MZ`````!(BQPD2(ML)`A,BV0D$$B#Q!C#9F9FD&9FD$%6055!5%532(/L$$F) -M_$F)]0^W5B!F@?J#`'=9#[?"#[:$!W@'```\_W1*9H/Z?W<@#[;`2(T4P$B- -M%)!(P>(#2`.72`@``$B+0E`/ME`(ZRD/MT8@#[:$!W@'``!(P>`(2`.'<`@` -M`$B+@(`````/ME`(ZP6Z_____[G_____9D&!?2"#`'<.00^W12!!#[:,!'@' -M```/ML)!#[:$!/P'``!(B<)(P>('2(V$PE`!``!-C70$"`^VP4C!X`A)BZPD -M<`@``$@!Q4&`?20`#X2R````#[9]140/MD5"28M&($0/MD@(00^V3"1!08T, -MB4$/ME0D.D$/MG0D.8D\)$C'QP````"X`````.@`````@'TZ`'0JNP````!F -M9I!FD`^VPTB+5,582(72=`M,B?9,B>?H`````(/#`3A=.G?@28-]<`!T#$F- -M=7!,B>?H`````$R)[DR)Y^@`````9H--2@+&14(`2(N%@````,9`"?](B[6` -M````3(GGZ`````#IM0$``$F+E"0@"P``2('"0`@```^V14S!X`A(F$@!PHL" -MB04`````28N4)"`+``!(@<)$"```#[9%3,'@"$B82`'"BPJ)#0````!)BY0D -M(`L``$B!PD@(```/MD5,P>`(2)A(`<*+`HD%`````$F+E"0@"P``2('"3`@` -M``^V14S!X`A(F$@!PHL2B14`````#[9%0CP1="L\$7<-/`L/A?\```#IIP`` -M`#P29F:0='X\$P^%ZP```&9FD&9FD.F#````BY,B>?H`````$B)[DR)Y^@` -M````2(/$$%M=05Q!74%>PV9F9I!F9F:02(/L"$B)_DB+/^@`````2(/$",-F -M9F:09F9FD&9F9I!(@^P(QD=""$B)_DB+/^@`````2(/$",-F9F:09F9FD$B# -M[`C&1T(.2(G^2(L_Z`````!(@\0(PV9F9I!F9F:055-(@^P(2(G[2(LOZ``` -M``"$P'09#[9U0T"$]G0T#[93#+D`````]L(!=![K),9#"?](B=Y(B>_H```` -M`.M?D$B)T$C3^*@!=0B#P0%`./%U[DB)[^@`````2(G&2(7`=#Q(BU-(2(E# -M2$B-0T!(B09(B58(2(DR@$,-`4B)7E#&1D@%QD9)`,9&<0^Y`0```+H!```` -M2(G?Z`````!(@\0(6UW#9F9FD&9F9I!F9I!!54%455-(@^P(2(G]28GT3(LO -MNPH```!,B>9(B>_H`````(3`=0^_Z`,``.@`````@^L!=>)!#[9U0T"$]G0B -M#[95#+D`````]L(!=`SK$DB)T$C3^*@!=0B#P0%`./%U[DF+%"1)BT0D"$B) -M0@A(B1"`;0T!3(GF3(GOZ`````#V10L"=$9(BW4H2(7V=1A,B>_H`````$B) -MQDB%P`^$4`$``$B)12A,B2Y(B:Z`````QD9%`,9&0@!FQT9*`0!,B>_H```` -M`.DG`0``2(M%*$B%P`^$N0```$B-L+@```!)BWTHZ`````!(BW4H3(GOZ``` *** 17992 LINES SKIPPED *** From owner-dev-commits-src-main@freebsd.org Mon Apr 12 20:01:41 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 021535DCEC1; Mon, 12 Apr 2021 20:01:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FK04N4trFz4qZy; Mon, 12 Apr 2021 20:01:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 97FA41D8CC; Mon, 12 Apr 2021 20:01:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CK1e5Z049336; Mon, 12 Apr 2021 20:01:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CK1dJ5049333; Mon, 12 Apr 2021 20:01:39 GMT (envelope-from git) Date: Mon, 12 Apr 2021 20:01:39 GMT Message-Id: <202104122001.13CK1dJ5049333@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 550cb4ab85c7 - main - hpt27xx: store the .o files directly in the tree MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 550cb4ab85c7e514629c8bacbbb07085b81d916b Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 20:01:41 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=550cb4ab85c7e514629c8bacbbb07085b81d916b commit 550cb4ab85c7e514629c8bacbbb07085b81d916b Author: Warner Losh AuthorDate: 2021-04-12 19:41:14 +0000 Commit: Warner Losh CommitDate: 2021-04-12 19:47:55 +0000 hpt27xx: store the .o files directly in the tree Store the .o files directly in the tree. We no longer need to play uuencode games like we did in the CVS days. Adjust the build infrastructure to match. Reviewed by: markj@ Sposnored by: Netflix, Inc Differential Revision: https://reviews.freebsd.org/D29634 --- sys/conf/files.x86 | 5 +- sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o | Bin 0 -> 1128536 bytes sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o.uu | 25082 --------------------------- sys/dev/hpt27xx/i386-elf.hpt27xx_lib.o | Bin 0 -> 820212 bytes sys/dev/hpt27xx/i386-elf.hpt27xx_lib.o.uu | 18230 ------------------- sys/modules/hpt27xx/Makefile | 5 +- 6 files changed, 2 insertions(+), 43320 deletions(-) diff --git a/sys/conf/files.x86 b/sys/conf/files.x86 index 11538b7e40eb..363698332a6f 100644 --- a/sys/conf/files.x86 +++ b/sys/conf/files.x86 @@ -93,10 +93,7 @@ dev/gpio/chvgpio.c optional chvgpio dev/hpt27xx/hpt27xx_os_bsd.c optional hpt27xx dev/hpt27xx/hpt27xx_osm_bsd.c optional hpt27xx dev/hpt27xx/hpt27xx_config.c optional hpt27xx -hpt27xx_lib.o optional hpt27xx \ - dependency "$S/dev/hpt27xx/$M-elf.hpt27xx_lib.o.uu" \ - compile-with "uudecode < $S/dev/hpt27xx/$M-elf.hpt27xx_lib.o.uu" \ - no-implicit-rule +dev/hpt27xx/$M-elf.hpt27xx_lib.o optional hpt27xx dev/hptmv/entry.c optional hptmv dev/hptmv/mv.c optional hptmv dev/hptmv/gui_lib.c optional hptmv diff --git a/sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o b/sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o new file mode 100644 index 000000000000..60f97e086a52 Binary files /dev/null and b/sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o differ diff --git a/sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o.uu b/sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o.uu deleted file mode 100644 index a258142332d9..000000000000 --- a/sys/dev/hpt27xx/amd64-elf.hpt27xx_lib.o.uu +++ /dev/null @@ -1,25082 +0,0 @@ -begin 644 hpt27xx_lib.o -M?T5,1@(!`0D```````````$`/@`!`````````````````````````)A?"P`` -M`````````$```````$``$``-`(G0Q@<(QD0/A!0"``!,B>_H`````$B)1"002(7`=15, -MB>9,B>_H`````+@`````Z>T!``!!QD0D1!I!QD0D10A!QD0D1@A!QD0D1P!! -MQD0D2/]!QD0D20!!QD0D):M!#[=&.&9!B40D($V);"0P0<=$)$#_````0<>$ -M)*P````(````2(M$)!!(BT`028E$)%A(!?\```!)B40D8&9!QT0D."0`2(M$ -M)!!)B80DB````$G'A"2X`````````$'&1"0D@$F-7"1HO@````!(B=_H```` -M`$B+1"002(MP&+K_````2(G?Z`````!,B>9,B>_H`````+O(____ZQMFD+_H -M`P``Z`````"#ZP%,B>_H`````(3;=`Y!#[9$)"0\@'3=A,!T,4B-="003(GO -MZ`````!!#[=T)#Q)BWY0Z`````!,B>9,B>_H`````+@`````Z9,B>_H`````$B+1"002(M8$$$/MMP3H```` -M`$&)Q,8#`,9#`0#&0P(`QD,#`$B)[DR)[^@`````2(U51+@`````Q@00`$B# -MP`%(@_@0=?)!C40D!,9%1!7&1441B$5(QD5)`$B-76A$#[;@1(EE0,>%K``` -M``````!(BU0D$$B+0A!(B4582(F5B````+X`````2(G?Z`````!(BT0D$$B+ -M)(B=_H`````+@!````2(/$&%M=05Q!74%>05_#D)"0D)"0D)"0D)"0 -MD)"0B?!FB7<(QD<.`&;'1PP``&:%]G0?C5#_N0````!F9I!(BP=FB10(2(/! -M`H/J`6:#^O]U[//#9F9FD&9FD&9FD$&)\&:)=PC&1PX!9L='#```9H7V=!ZZ -M`````+D`````2(L'9HD4"(/"`4B#P0)F1#G"=>SSPV9F9I!F9I!F9I"`?PX! -M=2H/MT<,#[?(2(L7#[<42H/``6:)1PQF.T<*<@9FQT<,``!F@V\(`0^WPL-( -MBQ3K"[@`````9F:09I##N`$```##9F:09F:09F:0QD`(#[971PG0#[9718/B'\'B -M$`G0B<$/MD=(Z>\```!F9F:09F:0#[971L'B&`^V1T?!X!`)P@^V1TD)P@^V -M1TC!X`B)T0G!#[9'2\'@"`^V5TP)T.FU````#[971L'B&`^V1T?!X!`)P@^V -M1TD)P@^V1TC!X`B)T0G!#[972L'B&`^V1TO!X!`)P@^V1TT)P@^V1TS!X`@) -MT.MS#[971DC!XC@/MD='2,'@,$@)P@^V1TU("<(/MD=(2,'@*$@)P@^V1TE( -MP>`@2`G"#[9'2DC!X!A("<(/MD=+2,'@$$@)P@^V1TQ(P>`(2(G12`G!#[97 -M3L'B&`^V1T_!X!`)P@^V1U$)P@^V1U#!X`@)T$B)CZ````")AZ@```!F@T\B -M`?/#9F9FD+K_____9H7V=#%(B?F_`````+K_____2)@E0!``##9F:09F:09F:0B?%(BP>+D`0!``")%0`````/MT<\ -M9CV`9'0,9CV`D70&9CV`E'41#[;)@\$(N`$```#3X`G"ZQ!`#[;.@\$,N`$` -M``#3X`G"2(L'B9`$`0``PV9F9I!F9F:09F:09F:0B?%(BP>+D`0!``")%0`` -M```/MT<\9CV`9'0,9CV`D70&9CV`E'41#[;)@\$(N/[____3P"'"ZQ!`#[;. -M@\$,N/[____3P"'"2(L'B9`$`0``PV9F9I!F9F:09F:09F:0B?%`@/[_=&]` -M@/X?=S*+MQ@!``"Z`0```-/BB=#WT"'PB8<8`0``BX=8`0``B04`````(=!T -M0(F'6`$``,-FD(NW'`$```^VP8/H(+H!````B<'3XHG0]]`A\(F''`$``(N' -M8`$``(D%`````"'0=`:)AV`!``#SPV9F9I!F9I!(@^PH2(E<)`A(B6PD$$R) -M9"083(EL)"!(B=6)\$R++T"`_@,/AHD```!(C1S%`````('C^`<``$V-I!T` -M`@``0<<$)`P!``"_$"<``.@`````28V<'00"```/ME4#P>(8#[9%`L'@$`G" -M#[9%``G"#[9%`<'@"`G"B1-!QP0D$`$``+\0)P``Z``````/ME4'P>(8#[9% -M!L'@$`G"#[9%!`G"#[9%!<'@"`G"B1/IA````$B-',4`````@>/X!P``3HVD -M*P`"``!!QP0D#`$``+\0)P``Z`````!*C9PK!`(```^V50/!XA@/MD4"P>`0 -M"<(/MD4`"<(/MD4!P>`("<*)$T''!"00`0``OQ`G``#H``````^V50?!XA@/ -MMD4&P>`0"<(/MD4$"<(/MD4%P>`("<*)$TB+7"0(2(ML)!!,BV0D&$R+;"0@ -M2(/$*,-(@^P82(E<)`A,B60D$$F)_$`/MMZ)WN@`````OQ`G``#H`````(G> -M3(GGZ`````!(BUPD"$R+9"002(/$&,.005=!5D%505154TB#[%A)B?^(5"17 -M2(L7@'\^``^$/`(``$&\`````$&]X/___T&^\/___T`/ML9(B40D2$B-@H`! -M``!(B40D0$B-BH0!``!(B4PD.$B-@J`!``!(B40D,$B-BJ0!``!(B4PD*$B- -M@E`"``!(B40D($B-BE0"``!(B4PD&$B-@N`!``!(B40D$$B!PM`!``!(B50D -M"&9FD$B+1"1(1(GA2-/XJ`$/A(T!``!$B>6#_0-V%T2)ZD@#5"0HBP*)!0`` -M``"#X/Z)`NL;C13M`````(G22`-4)#B+`HD%`````(/@_HD"OQ`G``#H```` -M`(!\)%<`='*#_0-V%T2)\D@#5"00BP*)!0````"#R`*)`NL;C12M`````(G2 -M2`-4)`B+`HD%`````(/(`HD"1(GP2(M,)!!(`<&-!*T`````BI(BT0D,$@!T,<``0```$@#5"0HBP*)!0````"# -MR`&)`NLV9F:09F:0C03M`````(G`2(M4)$!(`<+'`@$```!(`T0D.(L0B14` -M````@\H!B1!F9F:09F:008U4)`%)@\0!08/%"$&#Q@1!#[9'/CG0#X="_O__ -M2(/$6%M=05Q!74%>05_#9F:055-(@^P(B=%(BR^#_@-V((T$]>#___^)P$B- -ME`6@`0``BP*)!0````"#X/Z)`NL>C03U`````(G`2(V4!8`!``"+`HD%```` -M`(/@_HD"A,ET?H/^`W8@C02U\/___XG`2(V4!>`!``"+`HD%`````(/(`HD" -MZQZ-!+4`````B!F!(``(/``6:)@9@2``!F.X&<$@``<@EFQX&8$@`````/MX&8$@``2,'@ -M`D@#@5`1``"+%HD0#[>!F!(``(F'+`$``,-F9I!!B="X`````,8$"`!(@\`! -M2(/X!'7RB?)F@>+_#P^W`68E`/`)T&:)`0^V5PW!X@R+`27_#_#_"=")`0^V -M1PJ#X`)(@_@!&=*#X@*#P@'!X@4/MD$#@^`?"="#R!"#X/>(00/V1PH!=!=$ -MB<*#XG_!X@0/MT$"9B4/^`G09HE!`O/#9F9FD&9F9I!F9I!F9I"X`````,8$ -M,`!(@\`!2(/X#77R#[9'18@&#[9'1HA&`0^V1T>(1@(/MD=(B$8##[9'28A& -M!`^V1TJ(1@4/MD=+B$8&]H>N````!'0C#[9'3(A&"`^V1TV(1@D/MD=.B$8* -M#[9'3XA&"P^V1U"(1@RX`0```,-F9F:09F9FD&9FD+H`````0;H`````0;G_ -M____ZU(!TD2)P-/XJ`%T$O?"`````74:@?)W)]L`ZQ)FD(G0-7D````B(:8`0``#[;`PP'`03C`<^1!#[;`\\-F9F:09F9F -MD&9FD&9FD$B#[`A(BX:(````1`^V1T-%A,!T(@^V4`VY`````/;"`70,ZQ)( -MB=!(T_BH`74(@\$!1#C!=>[&1D(,Z`````!(@\0(PV9F9I!F9F:09F:02(/L -M"$B)^$B+/V;'0$X!`,9`0AU(B<;H`````$B#Q`C#9F9FD&9F9I!F9F:09F:0 -M2(/L"$B+/P^W]DC!Y@-(`[>8"0``2(LV2(7V=#U(BQ_H`````$F-1F!).49@#X1<`0``28G'3(G_Z`````!(B<-( -M@WA```^$*0$``("X@P`````/A*(```!F@WU4``^$EP```$&]`````$&\```` -M`)!(BX68"0``3`'@2(LP2(7V=&,/MT8@9CM#.'599CV%`'=3#[?`@+P%2`@` -M`/]T1DB+50`/MT8\9L'H!0^WP(T$A0`#``")@G`!``!(BU4`#[=./(/A'[@! -M````2-/@B8)T`0``QD8D(;H`````2(GOZ`````!!@\4!28/$"`^W151$.>@/ -MCW;___](BT-`2,=`<`````#V0TP$=1E(B>_H`````$B+ -M2(GOZ`````!-.7Y@#X6G_O__2<=&0`````!(BT4`BXA8`0``B0T`````A#K!;D`````#[;!2(T40$B-%)!(C035`````$F+ -MM`"H$@``2(7V='WV1@H"='=)C80`H!(``$@Y1B!U:0^V1EB$P'0(@\`!B$98 -MZUE(BU9(2(/J.$B-3DA(C4(X2#G(=$1(@WH0`'4LZPIF9I!(@WH0`'4@QD98 -M`0^VBKL```!)B[B8$```2`%2(N$$(@` -M```/MD`(ZP6X_P```$B81`^VI`/."```2(NUB````$B%]G0(2(G?Z`````!( -MB>Y(B=_H`````$$/ML1(C3R`2(T\N$B-O/NH`0``3(GN0?^5H````$B+7"0( -M2(ML)!!,BV0D&$R+;"0@2(/$*,-F9F:09F:005154TB)]4B)TV:!?D3A`741 -M#[9&1H/H$4&\`````#P!=C1(BS=(B[X@"0``#[=%(+I@G@$`9CV%`'<7#[?` -M#[:$!D@(``!(C11`2(T4D$C!X@5,C207QD,$!8!C!?Z`(]^X`````&:!?43A -M`741#[9%1H/H`3P!#Y;`#[;`9I#!X`?H`````&:)0PCK!&:)2P@/MT,(B$4E9H%] -M1.$!=24/ME5&C4+_/`%W"@^V54>#X@_K*I"-0N^Z#P```#P!=AUF9F:0N@`` -M``!)@WPD8`!T#$$/MI0D@0```(/B#P^V`X/@\`G0B`-;74%T1F@?_A`74<#[9#1H/H$3P!=Q&# -MBZP````(N`````#I204``$2+0T1!@>#___\`08'XX0$0``^%Y@````^W2R!F -M@?F%``^'\@0```^WP4$/MKP$2`@``(GX0(#__W1N9H/Y?W`%2(M$"%`/MD`(ZT5F@?F!`'<>0`^VQTF+E"1P"0`` -M2&G`R`\``$B+1!`(#[9`".L@0`^VQTF+E"1("0``2(T$P$C!X`5(BX00B``` -M``^V0`@/ML!!#[:$!,X(``!(C12`2(T4D$F-M-2H`0``28N4)'`)``!`#[;' -M2&G`R`\``$&]`````/9$`ET0#X5@`@``QD,D!$''!P````"X`0```.E+!``` -M#[=3(+G_````N/____]F@?J%``^'BP````^WPD$/MK0$2`@``(GP0(#^_W1S -M9H/Z?W`%2(M$"%`/MD`(ZTIF9I!F -MD&:!^H$`=QY`#[;&28N4)'`)``!(:<#(#P``2(M$$`@/MD`(ZR!`#[;&28N4 -M)$@)``!(C03`2,'@!4B+A!"(````#[9`"$`/MLY$#[;P26/&00^VK`3."``` -M2(U$K0!(C42%`$F-M,2H`0``#[?!2(T40$B-%)!(P>(%28G530.L)"`)``!F -M@?_A`74+#[9#1H/H`3P!=BEF@?G_`'0'0?9%2P1U&\9#)`9!QP<`````N`$` -M``#I-@,``&9FD&9FD$$/ME5(B=�%T)/;"!'0?00^V1"1$03I$)$IR$D'' -M!P$```"X`0```.D!`P``D$V%[0^$]P```(7)#X3O````]L($#X3F````2(G> -M3(GOZ`````"$P'45QD,D!$''!P````"X`0```.G"`@``08"]@P```!]V$4'' -M!P$```"X`0```.FG`@``]H.N`````7072(U$K0!(C42%`$'VA,2T`0```70; -MZU](C42M`$B-1(4`0?:$Q+0!```!#X2_`0``1(GV3(GGZ`````"$P'010<<' -M`0```+@!````Z4X"``#V@ZX````!#X22`0``2(U$K0!(C42%`$'VA,2T`0`` -M`0^$>0$``$R)[^@`````9H/X'P^&9P$``$''!P$```"X`0```.D%`@``9F:0 -M9I#V1@H"=#)!@?CA`1``9F:0#X0[`0``00^VA8,```!!.H6"````T4! -M#X7S````2-'H2(G"@^(!#[9#1H/H!CP)#X?&````#[;`_R3%`````$&X`0`` -M`+D!````2(G:3(GN3(GGZ`````"$P`^%L````$''!P(```"X`0```.E.`0`` -M0;@!````N0````!(B=I,B>Y,B>?H`````(3`#X5^````0<<'`@```+@!```` -MZ1P!```/MLI!N`$```!(B=I,B>Y,B>?H`````(3`=5)!QP<"````N`$```#I -M\`````^VRD&X`````$B)VDR)[DR)Y^@`````A,!U)D''!P(```"X`0```.G$ -M````QD,D!$''!P````"X`0```.FO````28V\)(@/``#H`````(3`=!%!QP8(#[9#1P'&#[?V3(GGZ`````!(.T-X=05(A`%20.%2`D``$B) -M1"083(NPB````$C'1"0(`````$C'1"00`````.M$#[951HU"[SP!=B>-0O\\ -M`78@9H'^_P!T"TB+1"0(]D!+!'4.QD4D!K@`````Z2H)``!(QT0D$`````!( -MQT0D&`````!(C70D2$R)[^@`````08G'9HE%/$R)[^@`````28G$N`(```!- -MA>0/A.L(``!,B:60````00^WUTB)%"1(:<*P!```2(T<&$B-0R!)*X4@$0`` -M20.%*!$``$B+5"1(B4(@2,'H($B+5"1(B4(D28M$)!A(BU0D2(E"*$C!Z"!( -MBU0D2(E"+$B+1"1(9D2)>`BX`````,8$&`!(@\`!2#VP!```=?!F@7U$X0%U -M5`^V14:#Z!$\`7=)2(U,)#!(BT0D2`^V4`A(B>Y(BWPD".@`````2(V#(`0` -M`$DKA2`1``!)`X4H$0``2(M4)$B)0A!(P>@@2(M4)$B)0A3I/0$``$$/ME8* -M]L(!=2R+140E____`#WA`1``#X3-````2(M,)`@/MD%(J`$/A+P```"H!`^$ -MM````/:%K@```"!T#TB-="0P2(GOZ`````#K&TB-3"0P2(M$)$@/ME`(2(GN -M2(M\)`CH`````$B-@R`$``!)*X4@$0``20.%*!$``$B+5"1(B4(02,'H($B+ -M5"1(B4(49H%]1.$!=0\/MD5&@^@1/`$/AI0```!(BT0D"`^V4$A(B="#X`9( -M@_@&=7_VP@%T>DB)V$DKA2`1``!)`X4H$0``2(M4)$B)0AA(P>@@2(M4)$B) -M0ASK4_;"`G1.2(G822N%(!$``$D#A2@1``!(BU0D2(E"&$C!Z"!(BU0D2(E" -M'$B-@R`$``!)*X4@$0``20.%*!$``$B+5"1(B4(02,'H($B+5"1(B4(42(M$ -M)$B`2`$"#[95:4B+1"1(9HE0`H!]:0!T,[\`````B?A(C01`2,'@`DF+="00 -M2(M-<$B+%`A(B10&BU0("(E4!@B#QP$/MD5I.?AWTHM50$B+1"1(B5`,9H%] -M1.$!=3X/MD5&@^@1/`%W,T$/M\](BU0D2$B)[DR)]^@`````2(U,)#!(B=I( -MB>Y,B??H`````$&`9@S^Z<4$``!FD$$/MD8*J`(/A%T$``!(BT0D2,9`!OY( -MBT0D2(!@!_Y(@WPD"``/A+@```!(BTPD"`^V44A(B="#X`9(@_@?```` -M]L(!#X26````00^WSTB+5"1(2(GN3(GWZ`````#VA:X````!=!!(BT0D2`^W -M0`C!X`.(1"0Q2(U,)#!(B=I(B>Y,B??H`````/:%K@````%T!T&`3@P!ZP5! -M@&8,_L8#H4B+5"0(#[:"Z@```(/@#P^V4P&#XO`)PHA3`4B+3"0(#[=!.(/` -M`6;!P`AFB4,"28G,28'$U````.EX`P``9H%]1.$!#X4D`@``#[9%1CP/=!-! -MO``````\$`^%5@,``.FN````#[952,'B"`^V14#Z`(\`7=$ZU<\%V9FD'<[ZUX\A70N/(5F9I!F9I!W$#R!=$,\@G4C9F:0 -M9F:0ZR(\D'(7OB@````\DF9FD'8U/)-U![Z,````ZRJ^!````.LC#[9"!(TT -MA0@```"0ZQ6^"````.L.O@P```!FD.L%OAP```")\L'J`DB+1"1(B%`$2(M, -M)$AFP>H(@^(!#[9!!8/@_@G0B$$%2(V[(`0``(GR2(MU6.@`````Z4@!```/ -MMD5$@^@$/*MW2P^VP/\DQ0````!(BT0D2(!(`03K/P^V14S!X`@/ME5-C0P0 -M@_D-=QBX`0```$C3X*G8/@``=`E(BT0D2(!(`01(BT0D2(!(`0'K"4B+1"1( -M@&`!^_:%K@```!!T"4B+1"1(@$@!!$B+1"1(QD`$#4B+1"1(@&`%_DB+5"1( -M#[9%)4$/MHW:````T^!F"4((2(M$)$B`8`$?QH,@!```!DR+9"0(28'$U``` -M`$B-NR$$``!,B>;H`````$B-NR4$``!,B>;H`````$B+141(B8-$!```2(M% -M3$B)@TP$``!(BU0D"$B#NMP`````=!!(BX+<````2(F#.`0``.L22(-])@!T -M"TB+129(B8,X!```Q@.12(M,)`@/MH'J````@^`/#[93`8/B\`G"B%,!#[=! -M.(/``6;!P`AFB4,"387D=&-)BP0D2(E#!.M9J`%T54$/M\](BU0D2$B)[DR) -M]^@`````]H6N`````7002(M$)$@/MT`(P>`#B$0D,4B-3"0P2(G:2(GN3(GW -MZ`````#VA:X````!=`=!@$X,`>L%08!F#/Y)BX68"0``2(L4)$B)+-!$B?IF -MP>H%00^WWX'B_P<``(G9@^$?N`$```!(T^!!"825H`D``(M%1"7___\`/>$! -M$`!U*$B-3"1`N@````")WDR)]^@`````#[9$)$.#X!^#R$"(1"1#Z_H`````$B-3"1`2(M$)!@/ME!0 -MB=Y,B??H`````.F1````9F9FD$B+="0(3(GOZ`````!(C4PD0$B+1"0(#[90 -M3(GWZ`````!(BTPD"`^V44A(B="#X`9(@_@&=5/VP@%T*P^V1"1#@^`? -M@\A@B$0D0P^V47*#XG_!X@0/MT0D0F8E#_@)T&:)1"1"ZR-(BW0D"$R)]^@` -M````#[;`P>`,BU0D0('B_P_P_PG"B50D0$B-="1`3(GOZ`````"X`P```.LI -M00^VA?H`````$B)PTB#N(``````=3M(B>_H`````$B)@X````!(A````!(BX7@````2(E8"$B)`TB)4PA(B9W@````Z9$!$``/A-4````/MT,@9CV```^$QP````^VR&:)2R!F@_E_=A-F@7M$ -MX0%U(@^V0T:#Z!$\`7<79H'YA0!W$`^WP0^VE`5("```@/K_=1C&0R0&2(G> -M2(GOZ`````#I_````&9F9I`/MW-$9H'^X0%U%0^V>T:-1^\\`0^'[0```.L? -M9F9FD`^VPDB-%$!(C1202,'B!4F)U4P#K2`)``#K!XU'_SP!=C9F@?F``'0O -M9H'^X0%FD'4+#[9#1H/H$3P!=AM!]D5+!'44QD,D!DB)WDB)[^@`````Z8`` -M``!(B=Y(B>_H`````(/X`G<*@_@!_H`````&9FD.M&2(.[D`````!T#TB-LY````!(B>_H`````$B-E>`` -M``!(BX7@````2(E8"$B)`TB)4PA(B9W@````ZSA(B=Y(B>_H`````$PYI>`` -M```/A3O^___K'@^VPDB-%$!(C1202,'B!4F)U4P#K2`)``#I%O___TB#Q`A; -M74%<05W#2(/L2$B)7"082(EL)"!,B60D*$R);"0P3(ET)#A,B7PD0$B)]4F) -M_4R+9U!-BS0D00^V1"0,J!!T#,:'Z`````;I?`(```^VE^@```"`^@$/A((` -M``"`^@%R&H#Z!`^$HP```(#Z!@^%K`(``&9FD.E-`@``QH?H`````4B)_DR) -M]^@`````QD4D@4&`3"0,"$B#O9``````=`](C;60````3(GWZ`````!)BX;@ -M````2(EH"$B)10!)C8;@````2(E%"$F)KN````!,B??H`````.E!`@``@^#W -M08A$)`R`A^L````!QH?H`````,9&)`),B??H`````$R)]^@`````Z1("``#& -MA^L`````2(.^D`````!T#TB-MI````!,B??H`````$F+34!(A?H`````.F' -M`0``00^V1"0,@^#W@\@008A$)`Q)BW582(7V=11!@'PD#@!U+.GE````9F9F -MD&9FD$$/MI6!````0;@`````N0(```!,B>?H`````.DY`0``0;\`````QD0D -M%P!)C40D8$B)1"0(2(M\)`CH`````$B)Q4F+1"1H28EL)&A(BU0D"$B)50!( -MB44(2(DH2(M50$B%TG0528NVV`@``+\%````Z`````"`34P"2(GJO@8```!, -MB>?H`````("]@P````!T-D&-7P%!@?]_EI@`=R9,B??H`````+\!````Z``` -M``"`O8,`````=`N#PP&!^X&6F`!UVD&)WX!$)!?H`````(#[_W4.3(GJ3(GF3(GWZ`````!,B??H`````$B+7"082(ML)"!, -MBV0D*$R+;"0P3(MT)#A,BWPD0$B#Q$C#9F9FD$%7059!54%455-(@^PH2(G] -M28GU2(N/(`D``+A@G@$`9H%^((4`=QL/MT8@#[:$!T@(``!(C11`2(T4D$B) -MT$C!X`5,C20!2(N5\!```$B!PD`(``!!#[9$)'+!X`A(F$@!PHLRB34````` -M08GW0<'O$$B+E?`0``!(@<)`"```00^V1"1RP>`(2)A(`<*+0@2)!0````"( -M1"00B<+!Z@B(5"01P>@0B$0D$DB+E?`0``!(@<)`"```00^V1"1RP>`(2)A( -M`<*+0@B)!0````"(1"03B<+!Z@B(5"04P>@0B$0D%<9$)!8`QD0D%P"+3"00 -M08GV0<'N&$$/MM]$BT0D%$2)\HG>2,?'`````+@`````Z`````")V(/P`8G" -M@^(!=!1%A/]T#T'&120`N`````#IJ`(``$&`?22!9F:0=2%(C4PD$$2)\HG> -M3(GOZ`````!!QD4D`K@`````Z7T"``!!BT5$)?___P`]X0$.`'4/0<9%)"&X -M`````.E>`@``0?:%K@````%U*(32=21!@'PD2O]T'$B-3"001(GRB=Y,B>_H -M`````+@`````Z2P"``!,B>9(B>_H`````$R)YDB)[^@`````2(M5`$$/MT4\ -M9L'H!0^WP(T$A0`#``")@G`!``!(BT4`00^W33R#X1^Z`0```$B)TTC3XXF8 -M=`$``$$/MT4\2,'@`T@#A9@)``!(QP``````00^W33R)R&;!Z`4E_P<``(/A -M'TB)UDC3YDB)\??1(8R%H`D``$$/MTT\B@%)?\'``"#X1](T^+WTB%4 -MA5A)BU4`28M%"$B)0@A(B1!!#[=U/$B-O8@/``#H`````$&`K"2#`````4'& -M122!28.]D`````!T#TF-M9````!(B>_H`````$F-1"0@23E$)"`/A`D!``!) -MB<9(C86(#P``2(E$)`A,C;W@````9F9FD&9FD$R)]^@`````2(G#2(M5``^W -M0#QFP>@%#[?`C02%``,``(F"<`$``$B+10`/MTL\@^$?N@$```!(B=9(T^:) -ML'0!```/MT,\2,'@`T@#A9@)``!(QP``````#[=+/(G(9L'H!27_!P``@^$? -M2(G62-/F2(GQ]]$AC(6@"0``#[=+/(G(9L'H!27_!P``@^$?2-/B]](A5(58 -M#[=S/$B+?"0(Z`````!!@*PD@P````%(@[N0`````'0/2(VSD````$B)[^@` -M````2(N%X````$B)6`A(B0-,B7L(2(F=X````$TY="0@#X44____08&EK``` -M`/___O]!QH0DZ`````1,B>Y,B>?H`````+@!````2(/$*%M=05Q!74%>05_# -MD$B#[%A(B5PD*$B);"0P3(ED)#A,B6PD0$R)="1(3(E\)%!(B50D$$B++T0/ -MM\9):<"P!```2(G#2`.=(!$``/9#(@$/A*<```!(BT4`QX!P`0``N`$``(GP -MP>`&)<#_`0"#R`Q(BU4`B8)T`0``2(M%`,>`<`$``*P!``!(BT4`QX!T`0`` -M```@`$B+10#'@'`!``"T`0``2(M%`(N`=`$``(D%`````$&)P4'!Z0=*C13% -M`````$B+A9@)``!(`=!(BP!$.TA`,(``!F9I`/ML!( -MC11`2(T4D$C!X@5,BYT@"0``20'3@'PD$P!Y;D$/ME-(2(G0@^`&2(/X!G4C -M]L(!=!Y(BT4`BY!8`0``B14`````A=)T"DB+10")D%@!``!(BT4`BX!0`0`` -MB04`````@\@"2(M5`(F"4`$``$B+10"+@`0!``")!0````"`S/](BU4`B8($ -M`0``9O=#(`((#X3L````@'U#``^$X@```+L`````0;D`````D$6)R$$/MLD/ -MMD<-2-/XJ`%T84&`^0-V*$B+10!(!=`!``"-%(T`````2&/22`'0BP")!0`` -M``#!Z!2#X`'K)I!(BT4`2`70`0``C12-`````$ACTD@!T(L`B04`````P>@4 -M@^`!A,!T"K@!````2-/@"<-!@\$!08U``3A%0W>`A-MT4CA?#75-B?!FP>@% -M)?\'``"+1(58B?](T_BH`74R08"[Z`````)W"$'&@^@````#3(G02`.% -MF`D``$B+,$R)W^@`````Z6`'``!!NP````#V1"03`0^$3P<``$R)T$@#A9@) -M``!(BS#&1B0ABT9$)?___P`]X0$.``^$*P<``$B+E?`0``!(@<)`"```00^V -M0W+!X`A(F$@!PHL"B04`````2(N5\!```$B!PD0(``!!#[9#`(2)A(`<*+`HD%`````$B) -M[^@`````Z;4&``!F9I!FD$Z-),4`````2(N%F`D``$P!X$B+$&:!>D3A`0^% -M[P````^V2D:`^1`/AX(&``"X`0```$C3X*G`,```#X6U````J0```0!U2?;$ -M@`^$7P8```^V0S.(0B1,B>!(`X68"0``2(L`]D`C!`^$008``(!X)``/A#<& -M``!(BU!@2(72#X0J!@``#[9#,X@"Z1\&``!,C6LH3(G@2`.%F`D``$B+$$$/ -MMD4"B$(D3(G@2`.%F`D``$B+`$B#>%@`#X3N!0``#[:[(00``.@`````3(GB -M2`.5F`D``$B+"HM10#G0#T?"B<)(BWE83(GNZ`````#IN@4``$R)X$@#A9@) -M``!(BP#&0"0`Z:0%``!F9F:03(G@2`.%F`D``$R+*$V+?7BX_____V9!@7T@ -MA0!W&4R)X$@#A9@)``!(BP`/MT`@#[:$!4@(```/ML!(C11`2(T4D$C!X@5, -MB[4@"0``20'60<:&Z`````!!#[962$B)T(/@!DB#^`8/A:,!``#VP@$/A)H! -M``!!QD4D`$'VA:X````@#X06!0``387_#X0-!0``0?:'N0````(/A+````!! -MBT5`A<`/A*0```!)B[^@````2(7_=!")PDF+=5CH`````.F(````28-]6`!F -MD'1_0?:'N0````%U=4F#O\``````=0I)@[_(`````'1A38ME6$F+A\````!( -MAPB+$TR)YN@`````BP-)`<2+0P1(@\,0A;````P>@8 -M9D&)AY````!(BY7P$```2('"1`@``$$/MD9RP>`(2)A(`<*+$HD5``````^V -MPF9!B8>4````#[;&9D&)AY8```")T,'H$`^VP&9!B8>8````P>H808B7F@`` -M`$B+E?`0``!(@<),"```00^V1G+!X`A(F$@!PHL"B04`````#[;`9D&)AY(` -M``#ICP,```^V0S.$P`^%Z@```$R)X$@#A9@)``!(BP#&0"0`0?:%K@```!`/ -MA&0#``!-A?\/A%L#```/MD,S08B'D@```$&+14!!.X>4````=`=!B8>4```` -M00^VA[D```"H`@^$+`,``$&#?4``#X0A`P``J`$/A1D#``!)@[_``````)!U -M#DF#O\@`````#X0``P``38ME6$F+A\````!(APB+$TR) -MYN@`````BP-)`<2+0P1(@\,0A<`/A9L"``#KW#P"#X5&`@``#[9#0(A$)`N+ -M0SB)1"0D#[94)"`(08G600G& -M387_#Y5$)`]!]H6N````$'0Z@'PD#P!T,T&+34!!BY>4````.=%T)$$/MK>8 -M````2,?'`````+@`````Z`````!!BT5`08F'E`````^V1"0+@^!_/'%V.<9$ -M)`P`08/^`78+#[9#08/@#XA$)`S&1"0-`$&#_@)V"`^V0T*(1"0-08/^`W9A -M#[9#0XA$)`[K7,9$)`P`08/^`G8+#[9#0H/@#XA$)`S&1"0-`,9$)`X`08/^ -M!W8V#[9#1X/`"$$YQD0/1_#&1"0-`$&#_@QV"`^V0TR(1"0-08/^#78*#[9# -M38A$)`[K!<9$)`X`3(G@2`.%F`D``$B+`&:#>#@`=$5%A?9T0,9`)"!,B>!( -M`X68"0``2(L`#[=`.$$YQD0/1_!,B>!(`X68"0``2(L`2(MX8$B%_W0?1(GR -M2(US0.@`````ZQ%,B>!(`X68"0``2(L`QD`D(H!\)`P$=1M!]H6N````$'41 -M3(G@2`.%F`D``$B+`,9`)`))BT4P@'PD#P`/A-,```!(.>@/A,H```!!]H6N -M````$'0+#[9#,T&(AY(```"`?"0,"W=9#[9$)`S_),4`````0<:'N@````'I -ME0```(!\)`T$=1&`?"0.`G4*0<:'N@```!'K?4'&A[H````"ZW-!QH>Z```` -M$.MI0<:'N@````OK7T'&A[H````&ZU5!QH>Z````#>M+/"AU)4$/MH:#```` -M@^@!08B&@@```$R)X$@#A9@)``!(BP#&0"2!ZR(\"'4*OQ`G``#H`````$R) -MX$@#A9@)``!(BP#&0"0A9F:02(M<)"A(BVPD,$R+9"0X3(ML)$!,BW0D2$R+ -M?"102(/$6,-F9F:09F:09F:09F:005=!5D%505154TB#["A(B?M(B7PD&$0/ -MMZ>:$@``2(N'@!$``(L`B04`````9B7_#V:)AYH2``!F1#G@=5)(BP>+L%`! -M``")-0````!(BP>)\H'B\/__`(F04`$``+@`````A=(/A"D'``!(Q\<````` -MN`````#H`````$B+?"08Z`````"X`0```.D$!P``9H&_FA(``/\/#X5A!@`` -MD.F)!@``2(NS(!$``$&#Q`%F1#NCGA(``+@`````1`]#X$B+DX`1``!(@\($ -M00^WQ(L$@D&)P$'!Z!!!]L`(#X2M````2(L#BXA0`0``B0T`````2(L3B<@E -M\/__`(F"4`$``(7`=&F`>T,`=&.)SO?&``$``'4NOP````#WQ@```0!T0.L? -M#[?7C4H(2(GP2-/XJ`%U%(U*$$B)\$C3^*@!=0?K'[\`````#[?'2(T4@$B- -M%)!(C:S3J`$``$B%[74=ZPR#QP$/MD-#9CGX=[9(BWPD&.@`````Z:$%``!( -MBWPD&.@`````B$4/Z8\%``")P6:!X?\/#[?!2&G0L`0``$R+3!8@2(T\Q0`` -M``!(BX.8"0``2`'X2(LH2(7M#X1;!0``0?;`(`^$@@$``(!])($/A5P!``#& -M120A#[=%/$C!X`-(`X.8"0``2,<```````^W33R)R&;!Z`4E_P<``(/A'[H! -M````2(G62-/F2(GQ]]$AC(.@"0``#[=-/(G(9L'H!27_!P``@^$?2-/B]](A -M5(-8#[=U/$B+?"00Z`````!(@[V0`````'0/2(VUD````$B)W^@`````#[=5 -M(&:!^H4`#X?(````#[?"#[:$`T@(```\_P^$M0```&:#^G]W(P^VP$B-%$!( -MC1202,'B!4@#DR`)``!(BT)0@'@(_P^5P.M9#[=%(&8]@0!W)@^WP`^VA`-( -M"```2&G`R`\``$@#@W`)``!(BT`(@'@(_P^5P.LI#[=%(`^VA`-("```2(T$ -MP$C!X`5(`X-("0``2(N`B````(!X"/\/E<"$P'0O2(GN2(G?Z`````!(BX/@ -M````2(EH"$B)10!(BT0D"$B)10A(B:O@````Z>L#``!)BU8(2(U%$$F)1@A, -MB7402(E0"$B)`NG/`P``B@%#[?`B40D($B8#[?QB?*#XA^)5"0DBT2# -M6(G12-/XJ`$/A:,#``!(B?A(`X.8"0``2(L`#[=0(&:!^H4`#X>Z````#[?" -M#[:$`T@(```\_P^$IP```&:#^G]W(`^VP$B-%$!(C1202,'B!4@#DR`)``!( -MBT)0#[9`".MM2(GX2`.#F`D``$B+``^W0"!F/8$`=R,/M\`/MH0#2`@``$AI -MP,@/``!(`X-P"0``2(M`"`^V0`CK,TB)^$@#@Y@)``!(BP`/MT`@#[:$`T@( -M``!(C03`2,'@!4@#@T@)``!(BX"(````#[9`"#S_=!`/MM!(8\*`O`/."``` -M_W4_2&-$)""+1(-8#[9,)"1(T_BH`0^%M`(``,9%)`:^`````$B)[^@````` -MN@````!(B>Y(B=_H`````.F.`@``2&/"#[:$`\X(``!(C12`2(T4D$B-O-.H -M`0``387)=`U!]L`"N`````!,#T3(]D<*`@^$F0$``$R)RN@`````2&-$)""+ -M1(-8#[9,)"1(T_BH`0^%-@(``(!])($/A=<```"X_P```&:!?2"%`'<,#[=% -M(`^VA`-("```B`#2`.#F`D``$C'```````/MTT\BH%@>+_ -M!P``@^$?N`$```!(T^#WT"&$DZ`)```/MW4\2(M\)!#H`````$B)[DB)W^@` -M````2(.]D`````!T#TB-M9````!(B=_H`````$B+@^````!(B6@(2(E%`$B+ -M="0(2(EU"$B)J^````#I50$``$B+@_````!,.?!T5D&]`````$&#Q0%(BP!) -M.<9U]$6$[70_0;\`````3(GWZ`````!(C4CP28M6"$F)1@A,B3!(B5`(2(D" -M2#GIN`$```!$#T3X08#M`770183_#X7S````28M6"$B-11!)B48(3(EU$$B) -M4`A(B0)(8U0D(+@!````#[9,)"1(T^`)A).8````Z;X```!,B(#P``2(ET)!!(C8?@````2(E$)`B0 -M9D0YHYH2```/A7?Y__](C8/P````2#F#\````'1)2(G%2(GOZ`````!(C7#P -M#[=./(G*9L'J!8'B_P<``(/A'[@!````2-/@]]`AA).8````N@````!(B=_H -M`````$@YJ_````!UNDB)W^@`````N`$```!(@\0H6UU!7$%=05Y!7\-F9F:0 -M9F:09F:09F:055-(@^P(2(N7V`@``$B+0@B+*(DM`````/?%````D'0&2(M" -M"(DH2(N?V`@``/?%```$`'0K2(L#BY!0`0``B14`````A=)T&$B+`XF04`$` -M`$B+`XN`4`$``(D%`````/?%```(`'0W2('#:!0``$B+`XN04`$``(D5```` -M`(72=!U(BP.)D%`!``!(BP.+@%`!``")!0````!F9I!FD$B+N]@(``"^```` -M`.@`````2(N;V`@``$B)W^@`````2(V[:!0``.@`````2(N[V`@``+X!```` -MZ`````"%[0^5P`^VP$B#Q`A;7<-F9F:005=!5D%505154TB#["A)B?Q(BP>+ -MB%`!``")#0````!(BQ>)R"7P__\`B8)0`0``]\$`__\`#X0H"0``08!\)$,` -M#X0<"0``QD0D$`")R4B)3"0(1`^V;"0008U-"$B+1"0(2-/XJ`%U%$&-31!( -MBT0D"$C3^*@!#X31"```@'PD$`-V*TF+!"1(!8`!``!"C13M`````$ACTD@! -MT(L`B04`````P>@3@^`!ZREF9I!)BP0D2`6``0``0HT4[0````!(8])(`="+ -M`(D%`````,'H$X/@`83`="9,B>?H`````$ECU4B-!%)(C02"08&,Q-`2```` -M``@`9F9FD&9FD$F+%"2`?"00`W8E0HT$[0````!(F$B-A`*``0``BP")!0`` -M```E```!`.LC9F9FD$*-!.T`````2)A(C80"@`$``(L`B04`````)0```0"% -MP'1!@'PD$`-V'4*-!.T`````2)A(C80"@`$``,<````!`.D;"```0HT$[0`` -M``!(F$B-A`*``0``QP````$`Z?X'``!!@'PD30$/A:@&``"`?"00`W8I28L$ -M)$@%@`$``$*-%.T`````2&/22`'0BP")!0````"#X`'K)V9F9I!)BP0D2`6` -M`0``0HT4[0````!(8])(`="+`(D%`````(/@`83`#X15`0``26/%2(T<0$B- -M')A(P>,#28VT'-@2``!)BWPD*.@`````28N\'*@2``!(A?]T'4B+1T!(A_H`````$B)PTB+10A(B5T(2(DK -M2(E#"$B)&/9#3`)U+TB+4T!(A=)T%DF+M"38"```OP4```#H`````(!+3`)( -MB=J^!@```$R)]^@`````08/'`44X?@YV)>NB#[9T)!"Z`0```$R)Y^@````` -MOZ"&`0#H`````+H`+3$!ZP6Z0$M,`$ECQ4B-#$!(C0R(2,'A`TJ--"&)EM@2 -M``!(QX;H$@````````^V1"002(T40$B-%)!)C934H!(``$B)EO`2``!)C;0, -MV!(``$F+?"0HZ`````!F9I"`?"00`W8]0HT4[0````!(8]))BP0D2`6``0`` -M2`'0BP")!0````!)BP0D2`6``0``2`'"BP*)!0````#!Z`>#X`'K.T*-%.T` -M````2&/228L$)$@%@`$``$@!T(L`B04`````28L$)$@%@`$``$@!PHL"B04` -M````P>@'@^`!A,!T=8!\)!`#=C="C0SM`````$ACR4F+!"1(!80!``!(`L^0HT,[0````!(8\E)BP0D -M2`6$`0``2`'(BP")!0````!)BQ0D2('"A`$``$@!T0T```$`B0'K+X!\)!`# -M=BA)BP0D2`6``0``0HT4[0````!(8])(`="+`(D%`````,'H$H/@`>LF28L$ -M)$@%@`$``$*-%.T`````2&/22`'0BP")!0````#!Z!*#X`&$P`^$(@(``(!\ -M)!`#=C="C0SM`````$ACR4F+!"1(!8`!``!(`LU0HT,[0````!(8\E)BP0D2`6``0``2`'(BP")!0`` -M```-```$`$F+%"1(@<*``0``2`'1B0%)8\5(C11`2(T4D$F+A-2H$@``2(7` -M=!-)B<5(@WA```^%H@```.F$`0``@'PD$`-V2D*-%.T`````2&/228L$)$@% -M@`$``$@!T(L(B0T`````28L$)$@%@`$``$B-!`*)"$F+!"1(!8`!``!(`<*+ -M`HD%`````.G0`P``0HT4[0````!(8]))BP0D2`6``0``2`'0BPB)#0````!) -MBP0D2`6``0``2(T$`HD(28L$)$@%@`$``$@!PHL"B04`````Z88#``!FD$B+ -M2$`/MT%.#[?0]L8!#X73````2(G-]L("#X3'````@^#]9HE!3DB-L<````!) -MBWPD*.@`````QD0D$`"`?3L`='?&1"00``^V1"002(M%P````$!+3`!(QX70`````````$B)K=@```!(C;7`````28M\)"CH -M`````(!\)!`#=C))BP0D2`6``0``#[94)!!(P>(#@>+X!P``2`'0BP")!0`` -M``#!Z`B#X`'K,&9FD&9FD$F+!"1(!8`!```/ME0D$$C!X@.!XO@'``!(`="+ -M`(D%`````,'H"(/@`83`#X06`0``@'PD$`-V+$F+!"1(!8`!```/ME0D$$C! -MX@.!XO@'``!(`="+`(D%`````(/P`8/@`>LJ28L$)$@%@`$```^V5"002,'B -M`X'B^`<``$@!T(L`B04`````@_`!@^`!A,`/A+$````/MD0D$$B-%$!(C120 -M38V\U*`2``!)BT<(2(7`#X2/````28G&28UW.$F+?"0HZ`````!!@'X.`'15 -M0;T`````28UN8&9FD&:02(GOZ`````!(B<-(BT4(2(E="$B)*TB)0PA(B1A( -MBU-`2(72=!9)B[0DV`@``+\%````Z`````"`2TP"08/%`44X;@YWND''1SB` -MA!X`2<='2`````!-B7]028UW.$F+?"0HZ`````"`?"00`P^&?P````^V7"00 -M2,'C`X'C^`<``$F+!"1(!8`!``!(`=B+$(D5`````$F+!"1(!8`!``!(C00# -MB1!)BP0D2`6``0``2(T$`XL`B04`````28L$)$@%,`(``$B-!`/'``````"_ -M$"<``.@`````28L$)$@%-`(``$@!PXL#B04`````ZWT/MEPD$$C!XP.!X_@' -M``!)BP0D2`6``0``2`'8BQ")%0````!)BP0D2`6``0``2(T$`XD028L$)$@% -M@`$``$B-!`.+`(D%`````$F+!"1(!5`"``!(C00#QP``````OQ`G``#H```` -M`$F+!"1(!50"``!(`<.+`XD%`````(!$)!`!#[9$)!!!.$0D0P^'\/;__TF+ -M!"2+B%`!``")#0````!)BQ0DB<@E\/__`(F"4`$``/?!`/__`'0AZ9[V__]) -M8]5(C0122(T$@D&!C,30$@`````!`.GF]___N`````!(@\0H6UU!7$%=05Y! -M7\-F9F:09F9FD&9FD&9FD$%7059!54%455-(@^QH28G]0(AT)$M`#[;&B40D -M3$B82(T40$B-%)!(C1373(NZJ!(```^VJLD2``!(BP=`@/X#=@S'@'`!``#$ -M`0``ZPK'@'`!``"H`0``2(E$)&!(!70!``!(B40D4$B+5"1@BX)T`0``B04` -M````BTPD3(/A`[L'````T^-!B=Q!"<1$B:)T`0``O^@#``#H`````/?31"'C -M2(M,)&")F70!``"`?"1+`W95BT0D3,'@`DB82(V4`=`!``"+`HD%`````(/( -M"(D"BUPD3,'C`TACVTB-A!D``@``QP`X````OQ`G``#H`````$B+5"1@2(V$ -M&@0"``#'``````#K6(M$)$S!X`)(F$B+3"1@2(V4`=`!``"+`HD%`````(/( -M"(D"BUPD3,'C`TACVTB-A!D``@``QP`X````OQ`G``#H`````$B+5"1@2(V$ -M&@0"``#'``````!-A?\/A#8(``!!@'U#`'0LNP`````/MLM!#[9'#4C3^*@! -M=`^Z`0```(G.3(GOZ`````"#PP%!.%U#=]E!]D<*`71G3(G^3(GOZ`````"+ -M="1,3(GOZ`````!(8T0D3$B-%$!(C12028V4U<`2``"+0@RI```0`'0()?__ -M[_^)0@Q,B?Y,B>_H`````$AC1"1,2(T40$B-%)!)QX35J!(```````#IE0<` -M`$&`?U@`=!1)B[V8$```3(G^Z`````!!@&]8`4C'P/[___\/MDPD3$C3P$`@ -MZ(A$)%L/A+T"``"+="1,3(GOZ`````!(8T0D3$B-%$!(C12028V4U<`2``"+ -M0@RI```0`'0()?__[_^)0@P/MD0D6T&(1PU!@'U#``^$[P$``,=$)%P````` -M#[;02(E4)#!(BTPD8$B!P0`"``!(B4PD*$B+1"1@2`4$`@``2(E$)"`/ME0D -M6XE4)!Q(BTPD8$B!P=`!``!(B4PD$$0/MG0D7$$/MNY(BT0D,(GI2-/XJ`$/ -MA$T!``!(8\5(C11`2(T4D`^V1"1;08B$U"<`$``*@!``!(BTPD4(L!B04`````B>F#X0.[!P`` -M`-/C08G<00G$2(M$)%!$B2"_Z`,``.@`````]]-!(=Q(BU0D4$2)(HT4K0`` -M``!(8])(`U0D$(L"B04`````@\@(B0*#1"1<`4&-1@%!.$5#=BSI@_[__TB) -MW^@`````2(UPR$B+4PA(B4,(2(D82(E0"$B)`DB#>-@`=!'K";X`````28U? -M2$DY7TAURDB%]G0XQD9:`$&`?4,`="VY`````+H`````00^V1PU(T_BH`70. -M#[;"B$P&<(!&6@&#P@&#P0%!.$U#=]VZ`````+Z!````3(G_Z`````!(8T0D -M3$B-%$!(C1202<>$U:@2````````08!]0P`/A7X#``#IH00``+H`````O@8` -M``!,B?_H`````(MT)$Q,B>_H`````$AC1"1,2(T40$B-%)!)C935P!(``(M" -M#*D``!``=`@E___O_XE"#$F-1TA).4=(#X0``@``2(D$)$B+/"3H`````$R- -M<,A(C5`02#E0$`^$PP$``$F-1DA(B40D"$B+?"0(Z`````!(C5CP@'M)#747 -M2(VP4`$``$B+0U!(BP!(BW@HZ`````!(BQ-(BT,(2(E""$B)$("[@P````!T -M'6:03(GOZ`````"_`0```.@`````@+N#`````'7E2(M#0$B%P`^$*@$``$C' -M0'``````@+N#``````^$IP```&9!@WU4``^$FP```+T`````0;P`````3(G@ -M20.%F`D``$B+,$B%]G1J#[=&(&8[0SAU8&8]A0!W6@^WP$&`O`5("```_W1, -M28M5``^W1CQFP>@%#[?`C02%``,``(F"<`$``$F+50`/MTX\@^$?N`$```!( -MT^")@G0!``#&1B0AN@````!,B>_H`````&9FD&9FD(/%`4F#Q`A!#[=%5#GH -M#X]P____]D-,!'493(GOZ`````!(BW-`N@$```!,B>_H`````$B+0T`/ME`" -M#[9P`4C'QP````"X`````.@`````2(M30$F+M=@(``"_`0```.@`````2(M3 -M0$F+M=@(``"_!@```.@`````2,=#0`````!!@&\.`4&`;E@!2(G>3(GOZ``` -M``!(BU0D"$DY5D@/A4;^__]!@&\H`4R)]DR)[^@`````2(L,)$DY3T@/A03^ -M__])C4=@23E'8`^$[P```+T`````28G$3(GGZ`````!(B<.`N(,`````=#J- -M10&!_7^6F`!V!XG%ZRMF9I")Q4R)[^@`````OP$```#H`````("[@P````!T -M"X/%`8']@9:8`'7:2(M#0$B%P'1V2,=`<`````#V0TP$=1E,B>_H`````$B+ -M3(GOZ`````!-.6=@#X49____3(G^3(GOZ`````!(8T0D -M3$B-%$!(C1202<>$U:@2````````Z7?\__]!OP`````/MD0D6TB)1"1`2(M4 -M)&!(@<+0`0``2(E4)#A%B?Y!#[;O2(M$)$")Z4C3^*@!=0M$.'PD2P^%U0`` -M`$&`_@-V:$B+1"1@QX!P`0``Q`$``$B+5"10BP*)!0````")Z8/A`XT,2;L' -M````T^-!B=Q!"<1$B2*_Z`,``.@`````]]-$(>-(BTPD4(D9C12M`````$AC -MTD@#5"0XBP*)!0````"#R`B)`NMG2(M$)&#'@'`!``"H`0``2(M4)%"+`HD% -M`````(GI@^$#C0Q)NP<```#3XT&)W$$)Q$2)(K_H`P``Z`````#WTT$AW$B+ -M3"101(DAC12M`````$ACTD@#5"0XBP*)!0````"#R`B)`D&#QP%!C48!03A% -M0P^'^?[__TB#Q&A;74%<05U!7D%?PV9F9I!F9F:09F9FD&9FD$%455-)B?Q( -MB?4/MG=#0(3V="8/ME4-NP````#VP@%T#NL62(G0B=E(T_BH`74/@\,!0#CS -M=>SK!;L`````]D4,`G4*2(U%8$@Y16!U:$B)[^@`````A,!T44R)Y^@````` -M2(G&2(7`=$Q(BU5H2(E%:$B-16!(B09(B58(2(DR@$4.`4B);E#&1D@%QD9) -M`,:&@0````^Y`0```+H!````2(GOZ`````#K"P^V\TR)Y^@`````6UU!7,-F -M9I!FD$%6055!5%532(G]08GU1`^V]D*-!+4`````3&/@NP````"_$"<``.@` -M````08#]`W8>2(M%`$@%T`$``$P!X(L`B04`````P>@4@^`!ZQV02(M%`$@% -MT`$``$F-!`2+`(D%`````,'H%(/@`83`=0J#PP%F@?LL`76H1(GV2(GOZ``` -M``!(B>_H`````$ECQDB-%$!(C1202(U$U0#V@,@2```!=`](B["H$@``2(GO -MZ`````!;74%<05U!7L-FD$%6055!5%5308GU28G\1`^V]DECQDB-%$!(C120 -M2(NLUZ@2``!(A>T/A)8!``!(Q\#^____1(GQ2-/`A$4-#X6``0``2(U%2$@Y -M14AU%4&]`````$B-76"`?0X`=2/I\P(``$`/ML9(C3Q`2(T\N$F-O/R@$@`` -MZ`````#IU0(``$B)W^@`````2(G!2(M#"$B)2PA(B1E(B4$(2(D(@'E)`0^' -M"0$```^W03A)@[S$2`0```!U"TB#>4``#X39````#[=!.$F+A,1(!```2(.X -MD``````/A*<```#&@>@`````#[912$B)T(/@!DB#^`9U+?;"`70HQD%*!<9! -M2P0/MI&!````2(MQ6$B+>5#H`````.F8````9F9FD&9FD`^V44A(B="#X`9( -M@_@$=2#VP@%T&\9!2@/&04L$2(G.3(GGZ`````#K9V9FD&9FD`^V44A(B="# -MX`9(@_@&=5'VP@%U3,9!2P;&04H%9L>!R```````2(G.3(GGZ`````#K+DB+ -M44!)B[0DV`@``+\$````Z`````#K%@^W43A)B[0DV`@``+\"````Z`````!! -M@\4!1#AM#@^&EP$``.F]_O__0HT$M0````!(8^B[`````+\0)P``Z`````!! -M@/T#=AU)BP0D2`70`0``2`'HBP")!0````#!Z!2#X`'K&TF+!"1(!=`!``!( -M`>B+`(D%`````,'H%(/@`83`=0J#PP%F@?LL`76J1(GV3(GGZ`````!,B>?H -M`````$ECQDB-%$!(C12028NLU*@2``!(A>T/A/T```!!@'PD0P!T++L````` -M#[;+#[9%#4C3^*@!=`^Z`````(G.3(GGZ`````"#PP%!.%PD0W?900^VQ4B- -M%$!(C12028V4U*`2``!(B54@2(U%2$@Y14AU.$B-16!(.45@=2[K>V9FD&:0 -M2(G?Z`````!(C7#(2(M3"$B)0PA(B1A(B5`(2(D"2(-XV`!T$>L)O@````!( -MC5U(2#E=2'7*2(7V=%O&1EH`08!\)$,`=$^Y`````+H`````#[9%#4C3^*@! -M=`X/ML*(3`9P@$9:`8/"`8/!`4$X3"1#=B+KV_9%"@%T#4B)[DR)Y^@````` -MZPV^`````$B)[^@`````6UU!7$%=05[#D$B#[`A,BP=$BT\P00^V<$-`A/9T -M8DF-@*`2``"Y`````$@Y^'4:ZT\/ML%(C11`2(T4D$F-E-"@$@``2#GZ=`B# -MP0%`./%UX(#Y`W8O28L`2`70`0``2(T4C0````"!XOP#``!(`="+`(D%```` -M`,'H%(/@`>LMN0````!)BP!(!=`!``!(C12-`````('B_`,``$@!T(L`B04` -M````P>@4@^`!A,!T$`^V\42)RDR)Q^@`````ZPL/MO%,B_H```` -M`$B-E>````!(BX7@````2(E8"$B)`TB)4PA(B9W@````2(GOZ`````#IXP(` -M`$&`9"0,]T&`1E(!0<9&40#&0R0"2(G>2(GOZ`````!(B>_H`````.FW`@`` -M00^V1"0,@^#W@\@008A$)`Q!BY8(`0``C4(!08F&"`$``(/Z`@^'`P$``$B# -MNY``````=`](C;.0````2(GOZ`````!(C97@````2(N%X````$B)6`A(B0-( -MB5,(2(F=X````$&`?D(`=1A!OP````!-C6PD8$&`?"0.`'4>Z9X```"Z```` -M`+X"````3(GGZ`````!FD.D;`@``3(GOZ`````!(B<-)BT4(28E="$R)*TB) -M0PA(B1A(BU-`2(72=!5(B[78"```OP4```#H`````(!+3`)(B=J^!@```$R) -MY^@`````@+N#`````'0B9F9FD&9FD$B)[^@`````OP$```#H`````("[@P`` -M``!UY4&#QP%%.'PD#@^'>____TR)]^@`````Z8D!``!!@&0D#/=!QX8(`0`` -M`````$B#NY``````=`](C;.0````2(GOZ`````!(C97@````2(N%X````$B) -M6`A(B0-(B5,(2(F=X````+H`````O@8```!,B>?H`````$F-1"1@23E$)&!T -M?$F)Q4R)[^@`````2(G#2(M`0$B%P'132,=`<`````!(B>_H`````$B+_H`````$TY;"1@=8=,B?9(B>_H```` -M`$G'1"1``````$B+10"+D%@!``")%0````"%TG0*2(M%`(F06`$``$'V1"0* -M`71K@'U#`'0LN0````!!]D0D#0%T%>L=9F:09F:000^V1"0-2-/XJ`%U#X/! -M`3A-0W?KZP6Y``````^VV8G>2(GOZ`````!,B>9(B>_H`````$ACVTB-!%M( -MC02#2,>$Q:@2````````9F:09I!(@\0(6UU!7$%=05Y!7\.02(/L*$B)7"0( -M2(EL)!!,B60D&$R);"0@2(GS2(G]3(MO4$V+90`/MTX\B@%#[?P2&/& -M08M$A%B#X1](T_BH`0^%9P,``$F+%"2-!+4``P``B8)P`0``28L$)(N0=`$` -M`(D5`````,9#)"&+0T0E____`#WA`0\`=2.^`````$B)W^@`````N@````!( -MB=Y,B>?H`````.D1`P``D(G0#[=+/(/A'TC3^*@!=!6^`0```$B)W^@````` -M3(GGZ``````/MH7H````/`0/A]P"```/ML#_),4`````QH7H`````;H!```` -M2(G>3(GOZ`````#IM@(``,:%Z`````*Z"````$B)WDR)[^@`````Z9H"``#& -MA>@````#2(GJOB$```!,B>_H`````$B+=5A(A?9T'P^VE8$```!!N`````"Y -M`0```$R)[^@`````Z5L"``!!#[9U#;H`````3(GGZ`````#I1`(``,:%Z``` -M``1(@WU8`'0S2(GJOB$```!,B>_H``````^VE8$```!(BW580;@`````N0(` -M``!,B>_H`````.D#`@``N@````"^(0```$R)[^@`````00^V=0VZ`0```$R) -MY^@`````Z=H!``"`?4K_=!5(B>J^!@```$R)[^@`````Z;\!``!(B>J^!@`` -M`$R)[^@`````2(M-0$B%R702BU$$C4(!B4$$@_H%#X:4`0``QD5+`<9%2@"` -MO8,`````=!YF9I!,B>?H`````+\!````Z`````"`O8,`````=>5(@WU8`'09 -M2(M5$$B+11A(B4((2(D02(M%6(!H6`'K&4B+56!(A=)T$`^VA8$```!(QT3" -M6`````!(BU4`2(M%"$B)0@A(B1!!@&T.`4B+O2`!``!(A?]T$0^VM0T!``"Z -M`0```.@`````2(M]6$B%_W01#[:U@0```+H!````Z`````!(BT5`2(7`=')( -MQT!P`````$R)Y^@`````2(MU0+H!````3(GGZ`````!(BT5`#[90`@^V<`%( -MQ\<`````N`````#H`````$B+54!)B[0DV`@``+\!````Z`````!(BU5`28NT -M)-@(``"_!@```.@`````2,=%0`````!(B>Y,B>?H`````$&`?0G_=%2]```` -M`$&`?0X`=#*]`````$F-76!(B=_H`````$B+4PA(B4,(2(D82(E0"$B)`H!X -M2O]U"8/%`4$X;0YWUT$X;0YW$$'&10G_3(GN3(GGZ`````!(BUPD"$B+;"00 -M3(MD)!A,BVPD($B#Q"C#9F9FD&9FD$%7059!54%455-(@^P828G\3(N_B``` -M`$F+'TB+@X`1``!$BRA(B?Y(B=_H`````$&`?"12`78&0<9$)%$$28UL)"A) -M.6PD*`^$_P$``$B)[^@`````28G&28M$)"A,B7`(28D&28EN"$V)="0H9H-[ -M5``/A+0!``"]`````$B-@X@/``!(B40D$$B-N^````!(B7PD"`^WQ4C!X`-( -M`X.8"0``2(LP2(7V#X1P`0``#[=&(&9!.40D0`^%8`$```^WDYH2``!!.=5T -M3V9F9I"#P@$/MX.>$@``.<*X``````]#T(U"`4C!X`)(`X.`$0``BP"I```( -M`'4;9B7_#V8YZ'4223GV=1)(B=_H`````.DW`0``1#GJ=;4/MT8@9CV%``^' -M]P````^WP("\`T@(``#_#X3F````08!_6``/A=L```!!]D<*`0^$T````$B+ -M$P^W1CQFP>@%#[?`C02%``,``(F"<`$``$B+`P^W3CR#X1^Z`0```$B)UTC3 -MYXFX=`$```^W1CQ(P>`#2`.#F`D``$C'```````/MTX\B@%)?\'``"# -MX1](B==(T^=(B?GWT2&,@Z`)```/MTX\B@%)?\'``"#X1](T^+WTB%4 -M@UA,.?9T+$B+!DB+5@A(B5`(2(D"2(N#X````$B)<`A(B09(BT0D"$B)1@A( -MB;/@````#[=V/$B+?"00Z`````!!@&PD10&#Q0%F.6M4#X=I_O__0?9'"@%T -M&4F+%DF+1@A(B4((2(D03(GV3(GGZ`````!(@\086UU!7$%=05Y!7\-F9F:0 -M05154TB#[!!(B50D"$B++P^W]DC!Y@-(`[68"0``2(LV9H%^1.$!=2D/MD9& -M@^@1/`%W'DB+5T!!O`````!(@WPD"`!U6L9"40!!O`````#K3DB+C2`)``"X -M8)X!`&:!?B"%`'<;#[=&(`^VA`5("```2(T40$B-%)!(B=!(P>`%3(TD`;H` -M````2(-\)`@`=0Y!QH0DZ`````"Z`````(!^)(%U"H!G#/=F9I!F9I!(@WPD -M"``/A50!``#&1B0`]H:N````(`^$-P,``$B+1GA(A<`/A"H#``!(B`(2)A(`<*+`HD%`````(G"P>H0B).;````P>@89HF# -MD````$B+E?`0``!(@<)$"```00^V1"1RP>`(2)A(`<*+$HD5``````^VPF:) -M@Y0````/ML9FB8.6````B=#!Z!`/ML!FB8.8````P>H8B).:````2(N5\!`` -M`$B!PDP(``!!#[9$)'+!X`A(F$@!PHL"B04`````#[;`9HF#D@```$B+E?`0 -M``!(@<)("```00^V1"1RP>`(2)A(`<*+`HD%`````(G"P>((9@F3E````(G" -M@>(`_P``9@F3E@```,'H""4`_P``9@F#F````.GT`0``@'XD@'4*QD8D(69F -MD&9FD&:!?D3A`748#[9&1H/H$3P!=PU(B=?H`````.G$`0``2(U,)`@/ME0D -M"_;"`0^$30$``(M&1"7___\`/>$!#@`/A#H!``!(BY7P$```2('"0`@``$$/ -MMD0D`( -M2)A(`<*+&HD=`````$B+E?`0``!(@<)("```00^V1"1RP>`(2)A(`<*+.HD] -M`````/:&K@```"`/A+0```!(BTYXQH&Z````$,9&)"!$B<#!Z!"(@9L```!$ -MB<#!Z!AFB8&0````B?C!X`@/MM,!T&:)@90```")^+``#[;7`=!FB8&6```` -MB?K!ZA#!X@B)V,'H$`^VP`'"9HF1F````$B+E?`0``!(@<),"```00^V1"1R -MP>`(2)A(`<*+`HD%``````^VP&:)@9(```!(BY7P$```2('"0`@``$$/MD0D -M_H`````.MED(32>2!(BT4`BXA8`0``B0T` -M````A@%#[?` -MC02%``,``(F"<`$``$B+50`/MTX\@^$?N`$```!(T^")@G0!``!(@\006UU! -M7,-F9I!(@^P(#[9&1$@Y?C!U2CP(=&4\*'1A/*AT73R(9F9FD'15/`IT43PJ -M=$T\JF9F9I!T13R*=$%(BX?@````2(EP"$B)!DB-A^````!(B48(2(FWX``` -M`.L?2(N7Z````$B)M^@```!(C8?@````2(D&2(E6"$B),N@`````2(/$",-F -M9F:09F9FD&9F9I!F9I!(@^P(Z`````!(@\0(PV:04TB#[&!(B?M(C4PD74B- -M5"1>2(UT)%\/MW\\2(U$)%)(B40D.$B-1"142(E$)#!(C40D3$B)1"0H2(U$ -M)$Y(B40D($B-1"182(E$)!A(C40D6DB)1"002(U$)%M(B40D"$B-1"162(D$ -M)$R-3"1<3(U$)%#H``````^V5"1?#[9T)%Y(C7PD2.@`````#[9$)%](C11` -M2(T4D$C!X@5(BW,@2(V[``D``+D!````Z``````/ME0D74B-%-)(P>(%2(MS -M($B-NR@)``"Y`0```.@`````#[94)%Y(:=+(#P``2(MS($B-NU`)``"Y`0`` -M`.@`````#[=4)%A(P>(#2(MS($B-NW@)``"Y`0```.@`````#[=4)%!(C112 -M2,'B!DB+(%2(MS($B- -MNZ`*``"Y`0```.@`````2(MS($B-N\@*``"Y`0```+H``0``Z``````/ME0D -M6DB-%))(P>(%2(MS($B-N_`*``"Y`0```.@`````#[=4)%9(C1222,'B`TB+ -M2`'22(MS($B-NP@0``"Y`0```.@````` -M#[93/D@!TDB+`H``+D!````Z`````"+5"1(2(MS($B-NW@0``"Y`0```.@`````#[=4 -M)%A(P>(&2(MS($B-NZ`0``!!N`$```"Y0````.@`````2(MS($B-N]`0``!! -MN`$```"Y``$``+H`&0``Z``````/MU0D6$AITK`$``!(BW,@2(V[`!$``$&X -M`0```+F`````Z``````/MU0D5$C!X@)(BW,@2(V[,!$``$&X`0```+D$```` -MZ``````/MU0D4DC!X@)(BW,@2(V[8!$``$&X`0```+D$````Z``````/ME0D -M6\'B#$B+?H -M`````$B)PTR-<,A(BSPDZ`````!(B<5)BT5028E=4$V)9CA)B49`2(D8N`$` -M``!(A>UT>\9%1.'&144!QD5&$(!-1P%)BX>@````2(E%>$B+A8````!,B7@H -M28V'D````$B)16#&127,00^V1EMFB44@28M%`$B)13#'14"0````3(E]6$C' -MA;@`````````2(U]:+X`````Z`````!(B>Y(BSPDZ`````"X`````$B+7"0( -M2(ML)!!,BV0D&$R+;"0@3(MT)"A,BWPD,$B#Q#C#9F9FD&9FD$%7059!54%4 -M55-(@^P82(G]2,=$)!``````2(M$)!`/MI0HS@@``(#Z_P^$Z@````^VRDB- -M!(E(C02!2(V$Q:@!``!(B40D"`^V\DACQDB-%(!(C120@+S5M@$````/A+8` -M``!!O`````!(C02)2(T$@4C!X`-,C;0%"`(``$R-+"A(8\9(C12`2(T4D$R- -MO-6@`0``3(GWZ`````!(B<-)BX40`@``28F=$`(``$R),TB)0PA(B1A(BU-` -M2(72=!5(B[78"```OP4```#H`````(!+3`)(B=J^!@```$B+?"0(Z`````"` -MNX,`````=!M(B>_H`````+\!````Z`````"`NX,`````=>5!@\0!13AG%@^' -M>____TB#1"00`4B#?"00!`^%[O[__TB)[^@`````2(/$&%M=05Q!74%>05_# -M9F9FD&9FD&9FD&9FD$%7059!54%455-(@^QX2(G[QD=-`,9'3`#&1TL`QH=1 -M%````$B-EZ`2``"X`````,8$$`!(@\`!2#V@`0``=?!(C8/@````2(F#X``` -M`$B)@^@```!(C8/P````2(F#\````$B)@_@```!,C:,``0``3(FC``$``$R) -MHP@!``!,C:L0`0``3(FK$`$``$R)JQ@!``!(C8,@`0``2(E$)$A(B8,@`0`` -M2(F#*`$``$B-BS`!``!(B4PD4$B)BS`!``!(B8LX`0``3(VS4`$``$R)LU`! -M``!,B;-8`0``2(VS8`$``$B)="1`2(FS8`$``$B)LV@!``!,C;M``0``3(F[ -M0`$``$R)NT@!``!(C4PD;DB-5"1P2(UT)'$/MWL\2(U$)')(B40D.$B-1"1T -M2(E$)#!(C40D9$B)1"0H2(U$)&I(B40D($B-1"1V2(E$)!A(C40D;$B)1"00 -M2(U$)&U(B40D"$B-1"1H2(D$)$R-3"1O3(U$)&;H``````^V1"1QB$-&#[9$ -M)'"(0T(%2(72=!!(B`D``.@`````2(G!2(F#F`D```^W1"1V2(T4Q0`` -M``!(A=)T$$B)R,8``$B#P`%(@^H!=?-(C;L("@``Z`````!(B8,H"@``2(V[ -MX`D``.@`````2(G%2(F#``H``$B-NU`*``#H`````$B)PDB)@W`*``!F@WPD -M9@!T2+D`````2(EJ<`^V1"1OB$)H2(N#"`$``$B)DP@!``!,B2)(B4((2(D0 -M#[9$)&](C01`2(ULA0!(@<+`````@\$!9CE,)&9WO4B-NW@*``#H`````$B) -MPDB)@Y@*``!F@WPD:@!T+[D`````QD(0`$B+@Q@!``!(B9,8`0``3(DJ2(E" -M"$B)$$B#PC"#P0%F.4PD:G?62(V[H`H``.@`````2(G"2(F#P`H``(!\)&T` -M=#.Y`````$B+@R@!``!(B9,H`0``2(MT)$A(B3)(B4((2(D02(/"((/!`0^V -M1"1M9CG(=])(C;O("@``Z`````!(B<)(B8/H"@``2(V(``$``$B+@S@!``!( -MB9,X`0``2(MT)%!(B3)(B4((2(D02(/"($@YRG7:2(V[\`H``.@`````2(G" -M2(F#$`L``(!\)&P`=#&Y`````$B+@U@!``!(B9-8`0``3(DR2(E""$B)$$B! -MPJ````"#P0$/MD0D;&8YR'?42(V[&`L``.@`````2(G"2(F#.`L``&:#?"1H -M`'0KN0````!(BX-(`0``2(F32`$``$R).DB)0@A(B1!(@\(H@\$!9CE,)&AW -MVH!\)'$`=$F]`````$R-HT`+``!,B>?H``````^WU4B)A--@"P``2(N3:`$` -M`$B)@V@!``!(BTPD0$B)"$B)4`A(B0*#Q0$/MD0D<68YZ'?#2(V[8`\``.@` -M````2(F#@`\``$B)@X@/```/MW0D=F:)LY(/```/M_9(C;N(#P``Z`````!( -MC;N8#P``Z`````!(B8.X#P``2(F#P`\```^V="1Q9HFSR@\```^W]DB-N\`/ -M``#H`````$B-N]`/``#H`````$B)@_`/``!(B8/X#P``#[9T)&YFB;,"$``` -M#[?V2(V[^`\``.@`````2(V["!```.@`````2(F#*!```$B)@S`0```/MG0D -M<&:)LSH0```/M_9(C;LP$```Z`````!(C;M`$```Z`````!(B8-@$```2(F# -M:!````^V0SYFB8-R$```#[9S/DB-NV@0``#H`````$B-NW@0``#H`````$B) -MP4B)@Y@0```/MD0D<$B-!,!(P>`'B<:!QF!7``!T$HGR2(G(Q@``2(/``4B# -MZ@%U\TB+@Y@0``"),$B+DY@0```/MD0D<(A"!`^V5"1P2(N[F!```.@````` -M0;@`````@'L^``^$J````+\`````#[?'2(T4@$B-%)!(P>(#3(V$$Z@!``!( -MC00:2(VPH`$``$"(?A#&1A$`2(F8J`$``,9&%@#&@``"````QH#0`0```,>` -M2`(```````!(C8P3V`$``$B)B-@!``!(B8C@`0``2(V,$_`!``!(B8CP`0`` -M2(F(^`$``$B-E!,(`@``2(F0"`(``$B)D!`"``#&1A("@\$RT@$````````2(G!2`.+(`D``$B-42!(B5$@2`.#(`D``$B-4"!(B5`H -M@\8!#[9$)'%F.?`/AV____]FQX/8``````"X`````,:$&$@(``#_2(/``4@] -MA@```'7L@'PD<``/A+T```"^``````^WQDAIP,@/``!(BY-P"0``QD0"6`!( -MBY-P"0``QD0060!(BY-P"0``2,=$$!``````2(G!2`.+<`D``$B-41A(B5$8 -M2(G!2`.+<`D``$B-41A(B5$@2(G!2`.+<`D``$B-42A(B5$H2(G!2`.+<`D` -M`$B-42A(B5$P2(N3<`D``$R)1!`(2(G!2`.+<`D``$B-44A(B5%(2`.#<`D` -M`$B-4$A(B5!0@\8!#[9$)'!F.?`/ATC____&@]L```"`@'PD;@`/A((```"^ -M``````^WQDB-!,!(P>`%2(N32`D``&;'1`).!`!(BY-("0``QD000@!(BY-( -M"0``QD001/](BY-("0``QD004/](B<%(`XM("0``2(U1*$B)42A(B<%(`XM( -M"0``2(U1*$B)43!(BY-("0``3(F$$(@```"#Q@$/MD0D;F8Y\'>#QH/<```` -M@DB-L\@0``!(C;N@$```Z`````!(B8/`$```2(VS^!```$B-N]`0``#H```` -M`$B)@_`0``!(C;,H$0``2(V[`!$``.@`````2(F#(!$``$B-LU@1``!(C;LP -M$0``Z`````!(B8-0$0``2(VSB!$``$B-NV`1``#H`````$B)@X`1``!(C;.X -M$0``2(V[D!$``.@`````28G$2(F#L!$``$B+J[@1``"`?"1M`'120;T````` -M2(M\)$CH`````$R)8!!(B6@82(N3*`$``$B)@R@!``!(BW0D2$B),$B)4`A( -MB0))@<0`$```2('%`!```$&#Q0$/MD0D;69$.>AWM$B-L^@1``!(C;O`$0`` -MZ`````!)B<1(B8/@$0``2(NKZ!$``$&]`````$B+?"10Z`````!,B6`02(EH -M&$B+DS@!``!(B8,X`0``2(M,)%!(B0A(B5`(2(D"28'$```!`$B!Q0```0!! -M@\4!9D&#_0AUN$B-LQ@2``!(C;OP$0``Z`````!(B8,0$@``3(NC&!(``&:# -M?"1H`'1(2(G%0;4`3(G_Z`````!(B6@03(E@&$B+DT@!``!(B8-(`0``3(DX -M2(E0"$B)`DB!Q20&``!)@<0D!@``08/%`69$.6PD:'>^2(/$>%M=05Q!74%> -M05_#055!5%532(/L"$F)_4F)]$B+GH@````/ME9'2(G^2(G?Z`````!(B<5F -M08-,)$X008!]0P!T6;D`````]D,-`70-ZTP/MD,-2-/XJ`%U#8/!`4$/MD5# -M9CG(=^AF@_D#=C-)BT4`2`70`0``2(T4C0````"!XOS_`P!(`="+`(D%```` -M`,'H%(/P`8/@`>LQN0````!)BT4`2`70`0``2(T4C0````"!XOS_`P!(`="+ -M`(D%`````,'H%(/P`8/@`83`=!`/MO%,B>_H`````.F7`0``2(U#8$@Y0V`/ -MA!D!``!(A>T/A!`!```/MH6!````2<=$Q%@`````2(M5`$B+10A(B4((2(D0 -M2(GJO@8```!(B=_H`````("]@P````!T&TR)[^@`````OP$```#H`````("] -M@P````!UY4B+14!(AY,B>_H`````$F+10"+D%@!``")%0````"%TG0*28M%`(F06`$``$'& -M1"1"`&9!@V0D3N]!@'PD.P!T*KH`````#[?"28M$Q%A(AM+3(GF3(GO -MZ`````!FD.M*#[?%28M_H`````$F)QTF+1"0@3(EX"$F)!TF);PA-B7PD -M(&:#>U0`#X0+`@``0;T`````2(VSB`\``$B)="002(V#X````$B)1"0(00^W -MQ4C!X`-(`X.8"0``2(LH2(7M#X3#`0``#[=%(&9!.40D.`^%LP$```^WDYH2 -M``!!.=9T469FD&:0@\(!#[>#GA(``#G"N``````/0]"-0@%(P>`"2`.#@!$` -M`(L`J0``"`!U'&8E_P]F1#GH=1)).>]U$DB)W^@`````Z9D!``!$.?)UM$B+ -M="0@@'Y8``^%1P$```^W12!F/84`#XL62(MT)"#V1@H"=`M(B>Y,B>?H`````$&#Q0%F1#EK5`^'$_[__TB#?"08 -M`'0G00^V1"1(J`%T':@$=!E)BQ=)BT<(2(E""$B)$$R)_DR)Y^@`````2(/$ -M*%M=05Q!74%>05_#D$B+1U!,BPA!N`````!$C1060P^VA`A("```//]T0@^V -MP$B-%$!(C1202,'B!4B)T$D#@2`)``!`.+`.`0``=2!(.;@@`0``=1=$B)`- -M`0``28N!(`D``(B,`@P!``!FD$F#P`%)@?B`````=:3SPY!(BW]8#[:'P``` -M`#Q/=S$/ML!(C01`2,'@!`'RB)0'R0````^VA\````!(C01`2,'@!(B,!\@` -M``"`A\`````!\\-F9F:09F9FD&9FD&9FD$&X_____V:%]G1,2(GZ0;C_____ -MOP````!F9F:09F:0#[8*C4'0/`EW&T&`^/^X`````$0/1,!!#[;`C02`1(U$ -M0=#K!D&`^/]U#(/'`4B#P@%F.?=UR4$/ML##9F9FD$&)T4B+1U!,BP"Y```` -M`)!"#[:$`4@(```\_W0S#[;`2(T40$B-%)!(P>(%2(G020.`(`D``$@YN"`! -M``!U$4`XL`T!``!U"$2(B`\!``##2(/!`4B!^8````!UL_/#D$F)TTB+1U!, -MBPA,BU=80;@`````0P^VA`A("```//]T1`^VP$B-%$!(C1202,'B!4D#D2`) -M``!(.;H@`0``=25`.+(-`0``=1R$R70,2(N"&`$``$F)`^L928L#2(F"&`$` -M`.L-28/``4F!^(````!UHDR)U[@`````9F:09F:0#[:7R````(#Z`79$@/H7 -M=#]`.+?)````=3:$R7062)A(C01`2,'@!$F+A`+0````28D#PTB82(T$0$C! -MX`1)BQ-)B90"T````,-F9I!F9I"#P`%(@\PV9F9I!F9I!F9I!F9I!32(G[ -M2(M.6`^V00+!X`@/ME$#`=`/M\"-4`0/MT9`.<)_'TB+OR@!``!(8])(B<[H -M`````+X`````2(G?Z`````!;PV9F9I!F9F:09F9FD$%7059!54%455-(@^P( -M28GW08G42(M?6$F)WKT`````3(UN!`^V@\@````\`79!/!=T/40XH\D```!U -M-$$/ME<#2&/%2(T$0$C!X`1)C;P&V````(#Z(+@@````#T?0#[;23(GNZ``` -M``!F9I!F9I"#Q0%(@\,P@_U0=:A(@\0(6UU!7$%=05Y!7\-F9I!FD$B#[$A( -MB5PD&$B);"0@3(ED)"A,B6PD,$R)="0X3(E\)$!)B?Q!B=>)RTR)!"1`B'0D -M#TB+1U!,BS!,B??H`````$B)Q4B%P`^$_@```$R)]^@`````28G%2(7`=1)( -MB>Y,B??H`````.G>````9I!(C45H2(E$)!!)BWT0B=I)B[0D*`$``.@````` -MQX6P````"@```,9%):Q!#[=$)#AFB44@2(L4)$B)57A,B74PB5U`@XVL```` -M$DF+11!(B4583(FMB````$F-A"3L````2(E%8&;'13@@`$C'A;@````````` -MQD5$.\9%10(/MD0D#XA%1D2)^,'H$(A%1TR)^@^VQHA%2$2(?4D/MD5"B$5* -M#[9%08A%2XA=3,9%30"^`````$B+?"00Z`````"+54!)BW482(M\)!#H```` -M`$B)[DR)]^@`````2(M<)!A(BVPD($R+9"0H3(ML)#!,BW0D.$R+?"1`2(/$ -M2,.02(/L2$B)7"082(EL)"!,B60D*$R);"0P3(ET)#A,B7PD0$F)_$&)UXE, -M)`A,B<-`B'0D#TB+1U!,BS!,B??H`````$B)Q4B%P`^$\@```$R)]^@````` -M28G%2(7`=1%(B>Y,B??H`````.G2````D$B-16A(B40D$,>%L`````H```#& -M126L00^W1"0X9HE%($B)77A,B74PQX6L````"````$R)K8@```!)BT402(E% -M6(M4)`B)54!)C80D[````$B)16!FQT4X(`!(QX6X`````````,9%1#S&144" -M#[9$)`^(149$B?C!Z!"(14=,B?H/ML:(14A$B'U)#[9%0HA%2@^V14&(14L/ -MMD0D"(A%3,9%30"^`````$B+?"00Z`````"+54!)BW482(M\)!#H`````$B) -M[DR)]^@`````2(M<)!A(BVPD($R+9"0H3(ML)#!,BW0D.$R+?"1`2(/$2,-F -M9F:09F9FD&9F9I!(@^PX2(E<)`A(B6PD$$R)9"083(EL)"!,B70D*$R)?"0P -M28G\2(M'4$R+.$B+ER@!```/MD("P>`(#[92`P'0#[?`1(UH!$&!_0`0```/ -MC],```!,B?_H`````$B)Q4B%P`^$OP```$R)_^@`````28G&2(7`=1!(B>Y, -MB?_H`````.F?````2(U=:$B+>!!)8]5)B[0D*`$``.@`````QD4EK$$/MT0D -M.&:)12!,B7TP1(EM0(.-K````!))BT802(E%6$R)M8@```!)C80D[````$B) -M16!FQT4X(`!(QX6X`````````,9%1!W&1440QD5&`@^V14&(14=$B&U(O@`` -M``!(B=_H`````(M50$F+=AA(B=_H`````$B)[DR)_^@`````2(M<)`A(BVPD -M$$R+9"083(ML)"!,BW0D*$R+?"0P2(/$.,-F9I!F9I!(@^PH2(E<)!A(B6PD -M($B)^XG52,=$)!``````@']+`71!2(U4)!!`#[;VN0$```#H`````$B+1"00 -M2(7`="2`"(!`A.UT"TB+1"00@$@#(.L)2(M$)!"`8`/?2(G?Z`````!(BUPD -M&$B+;"0@2(/$*,-F9F:09F9FD&9FD&9FD$B#[#A(B5PD"$B);"003(ED)!A, -MB6PD($R)="0H3(E\)#!)B?U!B?=(BT=03(LP3(GWZ`````!(B<5(A<`/A*X` -M``!,B??H`````$F)Q$B%P'402(GN3(GWZ`````#IC@```$B-76C&126L00^W -M13AFB44@3(EU,,>%K`````@```!,B:6(````28M$)!!(B458QT5``!```$F- -MA>P```!(B45@9L=%."``2,>%N`````````#&140`(#[91`XT\$`^WQX/`!`^W5D`Y -MT`^/6@$``$R-:0@/M\=,C70!!$R);"0(0;P`````QT0D%`````!-.?4/@]D` -M``!FD`^V1"04B$0D$T$/MD4"P>`(00^V50-$C3P000^W]TB+?"0(2(/'!.@` -M````B<$\_W5>00^WQTB+7"0(2(U4`P1(B=-).=8/AL\```!!B7^__\/ME0D$TR)[DB+/"3H`````.NI9I!(@\086UU! -M7$%=05Y!7\.005=!5D%505154TB#[`A)B?Y(BTY8#[9!`L'@"`^V40,!T`^W -MP(/`!`^W5D`YT`^/#`$``$B-40@/MG$!QD0D`P"Y``````^V0@(`1"0##[9" -M`TB-5`($@\$!0#C.<^>`?"0#``^$O@```$B-:@1!OP````!!O0````#'1"0$ -M``````^V5?U!`=4/MD7\/`%T!#P7=3M$B>LHTT$XW79Q#[9$)`2#P`%$#[;@ -M9F:09I`/MDW\#[;S1(GB3(GWZ`````"#PP%$..MT1NOD9F9FD$F+1EB`N,$` -M```!=#-$B>LHTT$XW78I#[9$)`2#P`%$#[;@#[9-_`^V\T2)XDR)]^@````` -M@\,!1#CK=>9F9I!!@\Y,B??H`````.F.````2(U=:,9% -M):Q!#[=$)#AFB44@3(EU,,>%K`````@```!,B:V(````28M%$$B)15C'14`` -M$```28V$).P```!(B45@9L=%."``2,>%N`````````#&140Y,B??H```` -M`$B+'"1(BVPD"$R+9"003(ML)!A,BW0D($B#Q"C#9I!(@^P82(D<)$B);"0( -M3(ED)!!(B?-)B?Q(BVYX#[=.(&:!^84`#X>E````#[?!#[:T!T@(``!`@/[_ -M#X20````9H/Y?W?H`````$B)WDR) -MY^@`````QT50_____TB)[_]52.MQA,!U./:#K`````AFD'002(M],(M30$B+ -M3(GGZ`````!( -MBQPD2(ML)`A,BV0D$$B#Q!C#9F:09F:09F:02(/L*$B)7"0(2(EL)!!,B60D -M&$R);"0@2(GS28G\1`^V;B0/MT8@9CV%`'`%ZPQ(BX\@"0``N&">`0!(C2P!183M=2!FQX7(```` -M``"`>T0<=1&`>T8"=0M(B=Y(B>_H`````$B#NX@`````=`](C;.(````3(GG -MZ`````!(B=Y,B>?H`````$&`_09T/4B-G6`!``!)BWPD*$B)WN@`````QX5@ -M`0``@(0>`$C'A7`!````````2(FM>`$``$F+?"0H2(G>Z`````!(BUPD"$B+ -M;"003(MD)!A,BVPD($B#Q"C#9F9FD&9F9I!F9I!!5T%6055!5%532(/L"$F) -M_T&)UDB+1U!(BRA!O`````!,C6X,00^VA"Q("```//]T4@^VP$B-%$!(C120 -M2(G32,'C!4B)WT@#O2`)``!(@[H`````(3`=!Y(BX4@ -M"0``1(BT`PX!``!(BX4@"0``3(F\`R`!``!)@\0!28'\@````'642(/$"%M= -M05Q!74%>05_#05=!5D%505154TB#[!A(B7PD"$B+3E@/MD$"P>`(#[91`XT\ -M$`^WQX/`!`^W5D`YT`^/Y@```$B-60@/M\=(C4P!!$B)3"0028G=2#G9#X:Z -M````0;X`````9F:09F:01(GR#[8+A,D/B(4```")R(/@#SP&=7SV0P/`=`;V -M0P7`=7#VP1!T.8![!`!F9F:0=&%)C6T(0;P`````9F9FD`^V4P-(B>Y(BWPD -M".@`````2(/%'$&#Q`%$.&,$=C3KWX![`@!T+$F-;01!O`````!$#[;Z1(GZ -M2(GN2(M\)`CH`````$B#Q1Q!@\0!1#AC`G?B#[9#`4F-7`4"28G=08/&`4@[ -M7"00#X)2____O@$```!(BWPD".@`````2(/$&%M=05Q!74%>05_#9F9FD$%7 -M059!54%455-(@^PH2(ET)`A(B7PD$`^V1B2(1"0G#[=.(&:!^84`#X?^`P`` -M#[?!#[:T!T@(``"X_P```$"`_O]T>F:#^7]W)T`/MM9(BT0D$$B+B"`)``!( -MC0122(T$@DC!X`5(BT0(4`^V0`CK36:!^8$`=R)`#[;&2(M,)!!(BY%P"0`` -M2&G`R`\``$B+1!`(#[9`".LD0`^VQDB+3"002(N12`D``$B-!,!(P>`%2(N$ -M$(@````/MD`(2)A(BU0D$$0/MKP"S@@``$N-!+])C02'2(V$PJ@!``!(B40D -M&$B+BB`)``!`#[;&2(T40$B-%)!(B=!(P>`%2(TL`8!\)"<`#X6S`@``9L>% -MR```````2(M,)`B`>40<#X6;`@``#[9!1CP"=%H\`G<1/`$/A8<"``!F9F:0 -M9F:0ZQX\!W0O/`H/A7("``!(BW0D"$B)[^@`````Z6`"``!(BW0D"$B)[^@` -M````9F:0Z4L"``!(BW0D"$B)[^@`````Z3D"``!(BW0D"$B)[^@`````2(V= -M8`$``$B+15!(BP!(BW@H2(G>Z`````#'A6`!``"`A!X`2,>%<`$```````!( -MB:UX`0``2(M%4$B+`$B+>"A(B=[H`````,9%2O]+C02_28T$ATB+5"00@+S" -MM@$````/A),!``!!O`````!+C02_28T$ATC!X`-,C;0""`(``$B-'!!,C:N@ -M`0``3(GWZ`````!(B<5(BX,0`@``2(FK$`(``$R)=0!(B44(2(DH@'U*_P^$ -ME@```(!]20$/AY<```!(B>Z`O>D`````#X17`0``#[952$B)T(/@!DB#^`9U -M)_;"`70B#[:5@0```$B+=5A(B>E(BWPD&.@`````Z24!``!F9I!FD$B#^`1U -M&_;"`69F9I!F9I!T#TB+?"00Z`````#I_P```$B#^`8/A?4```#VP@%FD`^% -MZ@```$B+?"00Z`````#IVP```,:%Z0````!F9F:008/$`4$/MD461#C@#X_H`````$B)Q4B+@Q`"``!(B:L0`@`` -M3(EM`$B)10A(B2B`?4K_=!L/MD5)/")T!#P-=0^^"@```$B)[^@`````ZSM! -M@\0!13AF%G>Q2XT$OTF-!(=(BU0D$,:$PK$!``#_2(MT)!A(B=?H`````(!\ -M)"<`#X6I````9F9FD$B+3"0(2(.YB`````!T%$B)SDB!QH@```!(BWPD$.@` -M````2(MT)`A(BWPD$.@`````@'PD)P!T;`^WA<@```"#P`%FB87(````9H/X -M"G8.9L>%R```````Z;_]__^^"@```$B)[^@`````ZSA(BT0D$$0/MKC-"0`` -M2XT$OTF-!(=(BU0D$$B-A,*H`0``2(E$)!A(BXH@"0``N&">`0#IF?S__TB# -MQ"A;74%<05U!7D%?PY"0D)"0D)"0D)"0D$B%_W1+2(7V=$9(A=)T04B%R70\ -M9D&!^(4`=S1!#[?`@+P'2`@``/]T)L9"1.'&0D4!QD)&$V9$B4(@2(ER,$B) -MBK@```"X`0```,-F9F:0N`````##9F9FD&9FD&9FD$"`_@$9P/?0)0``#(!( -MBU<(B4(,PY"0D)"0D)"0D)"03(M4)"!,BUPD,(GX9H'_(B=W7V:!_R`G#X.4 -M````9H'_0"$/A(D```!F@?]`(6:0=R!F@?\@(71Y9H'_(B%FD'1P9H'_4`=U -M;V9F9I!F9I#K8&:!_T0A=%EF@?]$(6:08"0``0;L`````O?____])BP)(A<`/A-0````/MT@@N/\` -M``!!B>AF@?F%``^'C@````^WP40/MHP'2`@``$6)R$&`^?]T=6:#^7]W(T$/ -MMM%(BX\@"0``2(T$4DB-!()(P>`%2(M$"%!$#[9`".M,9H'Y@0!W'D$/ML%( -MBY=P"0``2&G`R`\``$B+1!`(1`^V0`CK)T$/ML%(BY=("0``2(T$P$C!X`5( -MBX00B````$0/MD`(9F9FD&9FD$$/ML%(BX\@"0``03C8=2,/M\!(C11`2(T4 -MD$C!X@4/MD0*2*@!=`NH!'0'N`$```#K%T&#PP%)@\((9D$Y\P^%#O___[@` -M````6UW#9F:02(M'4$R+$$V+FL`0``!%#[=*5+D`````0;@`````ZT,/M_%) -MBX*8"0``2(L4\$B%TG0MBT)$)?___P`]X0$0`'0>#[='.&8[0B!U%$B)\$C! -MX`9F1CE$&`AT#F9FD&:0@\$!9D0YR7*W9D0YR70308/``69!@_@?=PBY```` -M`)#KX4$/M\##9F:09F:09F:02(M'8$B%P'0:Q@!P2(M'8$"(<`)(BT=@QD`' -M`$B+1V"(4`SSPV9F9I!F9F:09F:0\\-F9F:09F9FD&9FD&9FD$&)\4R)RH'B -M_P$``$B+AY@)``!,BP30387`="L/MK?:````00^V0"6)\=/@#[?X00^WT;C_ -M_P``T^`APCG7N`````!,#T7`3(G`PV9FD&:0N`````#&!#@`2(/``4@](`$` -M`'7PQD=$_\9'4/](C4`````_\9' Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 146215DD005; Mon, 12 Apr 2021 20:01:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FK04P6qvHz4qsD; Mon, 12 Apr 2021 20:01:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D59E71D8CD; Mon, 12 Apr 2021 20:01:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CK1fch049359; Mon, 12 Apr 2021 20:01:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CK1f8v049358; Mon, 12 Apr 2021 20:01:41 GMT (envelope-from git) Date: Mon, 12 Apr 2021 20:01:41 GMT Message-Id: <202104122001.13CK1f8v049358@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: fddb3f4d7d6c - main - hptmv: use .o files directly MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fddb3f4d7d6c690ef066f90f0bfa949309fe2fdf Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 20:01:42 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=fddb3f4d7d6c690ef066f90f0bfa949309fe2fdf commit fddb3f4d7d6c690ef066f90f0bfa949309fe2fdf Author: Warner Losh AuthorDate: 2021-04-12 19:41:20 +0000 Commit: Warner Losh CommitDate: 2021-04-12 19:47:55 +0000 hptmv: use .o files directly uudecode the .o.uu files and commit directly to the tree. Adjust the build infrastructure to cope with the new location, both for the kernel and modules. Sposnored by: Netflix, Inc Differential Revision: https://reviews.freebsd.org/D29635 --- sys/conf/files.x86 | 5 +- sys/dev/hptmv/amd64-elf.hptmvraid.o | Bin 0 -> 85680 bytes sys/dev/hptmv/amd64-elf.raid.o.uu | 1934 ----------------------------------- sys/dev/hptmv/i386-elf.hptmvraid.o | Bin 0 -> 63448 bytes sys/dev/hptmv/i386-elf.raid.o.uu | 1440 -------------------------- sys/modules/hptmv/Makefile | 5 +- 6 files changed, 2 insertions(+), 3382 deletions(-) diff --git a/sys/conf/files.x86 b/sys/conf/files.x86 index 363698332a6f..0a3e6b67b7db 100644 --- a/sys/conf/files.x86 +++ b/sys/conf/files.x86 @@ -99,10 +99,7 @@ dev/hptmv/mv.c optional hptmv dev/hptmv/gui_lib.c optional hptmv dev/hptmv/hptproc.c optional hptmv dev/hptmv/ioctl.c optional hptmv -hptmvraid.o optional hptmv \ - dependency "$S/dev/hptmv/$M-elf.raid.o.uu" \ - compile-with "uudecode < $S/dev/hptmv/$M-elf.raid.o.uu" \ - no-implicit-rule +dev/hptmv/$M-elf.hptmvraid.o optional hptmv dev/hptnr/hptnr_os_bsd.c optional hptnr dev/hptnr/hptnr_osm_bsd.c optional hptnr dev/hptnr/hptnr_config.c optional hptnr diff --git a/sys/dev/hptmv/amd64-elf.hptmvraid.o b/sys/dev/hptmv/amd64-elf.hptmvraid.o new file mode 100644 index 000000000000..0a3744526b9a Binary files /dev/null and b/sys/dev/hptmv/amd64-elf.hptmvraid.o differ diff --git a/sys/dev/hptmv/amd64-elf.raid.o.uu b/sys/dev/hptmv/amd64-elf.raid.o.uu deleted file mode 100644 index 333a8f6190e6..000000000000 --- a/sys/dev/hptmv/amd64-elf.raid.o.uu +++ /dev/null @@ -1,1934 +0,0 @@ -/* - * Copyright (c) 2004-2005 HighPoint Technologies, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 644 hptmvraid.o -M?T5,1@(!`0D```````````$`/@`!`````````````````````````"CA```` -M`````````$```````$``#@`+`$B![$@"``!(B9PD&`(``$B)K"0@`@``3(FD -M)"@"``!,B:PD,`(``$R)M"0X`@``3(F\)$`"``!(B?M,BV\02(UOB$R-9"00 -MN`(```"`?P$`=0N`?P(!&<"#X`+_P(A%`$C'10@`````@$T!!$B+0Q!(B440 -MBU,82(E5&$@/MD4`2(L$Q0````!(B45H@'T``W4N2(U"]DB)11B+&Z(````$B)W^@`````08$\)/,6>%IT(&9FD&9FD$@/MD4`2(L$Q0````!( -MB45P@$T!!.E:!0``OI````!,B>?H`````(3`==5!]D0D"0)T'<9#"`%!#[9$ -M)`J(0PLZ0PES"P^V\$B)W^@`````O@`"``!,B>?H`````(3`=!=)C;PDD``` -M`+IP`0``O@````#H`````$$/MI0DDP```+X!````(=8/MD,$@^#\B=�() -M\`G(O@0````AUH/@\XG1@^$("?`)R+X0````(=:#X,^)T8/A(`GP""`>!`( -M#X=7_O__2`^V0!!(@SS&``^$1_[____".=%_UD6+?"0808N$))@```!(P>`@ -M20G'N@````!(8\)(:`@2`G028E&&$$/MD0D(T&(1GH/MLBX`0```-/@ -M9D&)AI````!)#[8&2(L$Q0````!)B49H2`^V`TB+!,4`````28E&<`^V1"0/ -M08A&`T@/MD0D#TR)M,.@````_D-Y28UT)"Q)C;[@````NA````#H`````$F- -M="0\28V^\````+H$````Z`````!)C;0D@````$F-OC0!``"Z$````.@````` -M28UT)$!)C;[T````ND````#H`````$'V1"0)`70%08!.`0%)#[9$)"))@[S& -MH`````!U4R)=0A)#[8&2(L$Q0````!( -MB45P33F^F````'9!38F^F````.LX2`^V1"0/2(.\PZ``````=2=(B:S#H``` -M`$B)70C^0WD/MD0D#XA%`T@/M@-(BP3%`````$B)17!(BYPD&`(``$B+K"0@ -M`@``3(ND)"@"``!,BZPD,`(``$R+M"0X`@``3(N\)$`"``!(@<1(`@``PV9F -M9I!54TB#[`A(B?.]``````^V1GB)PH/X``^.TP```&9FD$ACQ4B#O,.@```` -M`'0+_\4YZG_LZ;<```"X`0```(GIT^!F"8.4````2(G>Z`````!(B<)(A<`/ -MA),```#&``-`B&@#2(E8"(`["`^4P,'@`P^V2@&#X?<)P8A*`4B+!0````!( -MB4)H2`^V`TB+!,4`````2(E"UT(8!] -M``-V&TB)[DR)[^@`````]H62````!'0'@(N2````!$'_Q`^V0WA$.>!_P^DO -M`0``@$X!!(!^>0)U$X"FD@```/[I&0$``&9F9I!F9I"`II(```#]2(.^H``` -M``!U'4B+AJ@```#&0`,`2(F&H````$C'AJ@`````````2(N#H````(`X`W4+ -M2(G>3(GOZ`````"`BY(````$2,>#F`````````#IM@```&9F9I`/MD9Y.D9X -M=2F`3@$$#[:&D@```(/@_HB&D@```&:#OI0`````='F#R`*(AI(```#K;@^V -M1GG_P`^V5G@YT'5@9H.^E`````!T++D`````#[>&E````(G"J`%U"O_!B=#3 -M^*@!=/9(8\%(@[S#H`````!U(>L)]H:2`````G46@$L!!("+D@````1(B=Y, -MB>_H`````$C'@Y@`````````2`^W@Y````!(]]A((8.8````2(-["`!U&?:# -MD@````1T$.@`````B4-\2(G?Z`````!(BUPD"$B+;"003(MD)!A,BVPD($B# -MQ"C#9F:09I!!5%5328G\O0````!F9F:02&/%2&G`2`$``$J-G"#(1```@WM\ -M`'0@2(-["`!U&4B)WDR)Y^@`````]D,!!'0(2,=#<`````#_Q8/]#W[!6UU! -M7,-F9F:09F9FD&9F9I!!5T%6055!5%532('L"`(``$F)_4B)]4&)UDF)YTB) -M]^@`````@'T`"'4+2(GN3(GOZ`````!!O`````"`?7@`#X;'````26/$2(.\ -MQ:``````#X2H````2(NTQ:````"`/@-V$4$/MM9,B>_H`````.F*````26/$ -M2(N$R)^;HP```` -MO@````#H`````.L3#[95`8/B`0^V0P&#X/X)T(A#`4B)W^@`````9F:09F:0 -M0?_$1#AE>`^'.?___[I(`0``O@````!(B>_H`````$F+A$) -M00^V=E!F9F:09F:03(M%`+\```$`9H-]"`!T!`^W?0@Y^8GZ#T;11#GF=1%F -MB5,(9L=#"@``3(D#2(/#$"G7B=!)`<`IT74>_\9!#[9%>#G&N``````/1/!! -M#[>%D````(G!P>$)A?]UMF:!?0H`@'0&2(/%$.N49L=#^@"`N`$```!(@<0` -M`@``6UU!7$%=05[#9F:09F:09F:03(M/"$R+1D@/MD\##[=^6#A.4'4+2`^W -M1E9)`<#K$9`X3E!V"TD/MX&0````20'`.$Y0=0MF`WY49F9FD&9FD#A.474+ -M9@-^4F9F9I!F9I"`?EP`=`XX3E!S)3A.46:0=Q3K'#A.4',(9D$#N9`````X -M3E%V"F9!`[F0````9I!FB7H03(E"",-F9F:09F:04TF)^4F)\$B+?@A$#[=6 -M$$&[`````$$/MDEZ2(G^2-/N9D''0%@``$'&0%P!20^V47A(B?!(B=&Z```` -M`$CW\4$/MDEZ2-/@28E`2$D/ME%X2(GP2(G1N@````!(]_%!B%!0B=%!#[>! -MD````/_((?AF08E`5D$/MY&0````9BG"9D0YTG(-9D6)4%1!N@````#K8F9! -MB5!49D$ITD&[`0```+H!````B=#3X&9!"4!:_\%!.$EX=2FY`````$&`>%P` -M=`M!QD!<`.L69F9FD$$/MT!89D$#@9````!F08E`6&9%.9&0````0$B+!@^V2`.X_O___]/`9B%#6H!^(0%T!P^V1B&( -M0R%(B>_H`````&:#>UH`=1F`>R$`=03&0R$!2(MS.$B)VDB)[^@`````2(/$ -M"%M=PV9FD&:02(/L.$B)7"0(2(EL)!!,B60D&$R);"0@3(ET)"A,B7PD,$F) -M_TB)]4R+-D'V1@$$=17&1B$"2(MV.$B)ZN@`````ZY,B>?H#OW__TC'0S@`````2,=#,`````!(B=Y,B?]!_U0D:&9FD$'_Q4$/ -MMD9X1#GH#X]P____2(M<)`A(BVPD$$R+9"083(ML)"!,BW0D*$R+?"0P2(/$ -M.,-F9F:09F9FD&9F9I!(@^P(2(M."`^V40&`9@'[@&$!^_Y)>8")D@````%( -M@WEP``^5P/;"!`^5P@^VP(7"=`U(B<[_47!F9F:09F:02(/$",-F9F:09F9F -MD&9FD$B#[`A,BT9`28MP*$B%]G0-9D$/MD`@@^`!.#``=!!,B<9! -M_U`PN@$```"%P'4PN@````#K*69F9I!(BP9(B0)(BT8(2(E""$B#PA!(C48* -M2(/&$&:#.`!YX+H!````B=!(@\0(PV9F9I!54TB)^P^V!X/H!(/X`7=0O0`` -M``"`?W@`=#=F9I!FD$ACQ4B#O,.@`````'012(N\PZ````#HQ?___X7`=0>X -M`````.LD_\4/MD-X.>AFD'_.N`$```#K$69F9I!F9I`/MD"@`=#/V0"`!="U(BT@H2(L!2(D"2(M!"$B)0@A(@\(02(U! -M"DB#P1!F@S@`>>#K'F9F9I!F9I"^`````$B#>#``=!!(B<:0_U`PB<;K!;X! -M````B?!(@\0(PV9F9I!F9I!F9I!F9I!(@^P82(D<)$B);"0(3(ED)!!)B?Q( -MB?-(BVY`2(L&#[9(`[C^____T\!F(45:@'XA`70'#[9&(8A%(4B)WDR)Y^@` -M````9H-]6@!U6H!](0!U),9%(0%(BTT`2(N1F````$@[4PAU#T@/MT,02`'0 -M2(F!F````$B+=3A(B>I,B>?H`````$B+10!FQT`H``!(BU4`2(/",$C'Q@`` -M``!,B>?H`````$B+'"1(BVPD"$R+9"002(/$&,-F9I!F9I!(@^P82(D<)$B) -M;"0(3(ED)!!)B?Q(B?-(BVY`@'XA`70.#[9&(8A%(>MY9F:09I"`?A(@=4K& -M1B$`2(M%`$B+@*@```!(B09(C7Y(NE@```"^`````.@`````QD,B`,9#$C`/ -MMD,@@^#]@\@$B$,@2(L#2(G>3(GG_U!HZV%FD,9%(0%(BTT`2(N1F````$@[ -M5@AU#T@/MT802`'02(F!F````$B)WDR)Y^@`````2(MU.$B)ZDR)Y^@````` -M2(M%`&;'0"@``$B+50!(@\(P2,?&`````$R)Y^@`````2(L<)$B+;"0(3(MD -M)!!(@\08PV9F9I!F9F:09F:09F:005154TF)]$B)U4B+1D"%R71&2(M0&$B) -M50`/MT80P>`)9HE%"&;'10H`@$B+!H!X`P`/A`T!``!(C8(```$`9H-]"`!T -M"4@/MT4(2(T$`DB)10#I[0````^W7A#!XPE(@W@H`'0L]D`@`70F2(M(*$B+ -M`4B)`DB+00A(B4((2(/"$$B-00I(@\$09H,X`'G@ZS2Z`````$B#>#``#X2H -M````2(GJ2(G&_U`PN@````"%P`^$D@```.L,9HE9"&;'00H`@.M&2(GI9F9F -MD&9FD+H```$`9H-Y"`!T!`^W40A)BP0D@'@#`'06.=IV%HG82`$!B=!F*=AF -MB4$(ZPYFD#G:<[9(@\$0*=-UQ$F+!"2`>`,`#Y7`2#G-#Y7"#[;`A<)T(4B+ -M`4B)10!(BT$(2(E%"$B#Q1!(C4$*2(/!$&:#.`!YW[H!````B=!;74%3(GG_U!HZW\/MU80P>()B=9( -MBWT82`'^Z`````"%P'0'QD4A#.LED,9%(0%(BTT`2(N1F````$@[4PAU#T@/ -MMT,02`'02(F!F````$B)WDR)Y^@`````2(MU.$B)ZDR)Y^@`````2(M%`&;' -M0"@``$B+50!(@\(P2,?&`````$R)Y^@`````2(L<)$B+;"0(3(MD)!!(@\08 -MPV9F9I!F9F:09F:09F:02(/L*$B)7"0(2(EL)!!,B60D&$R);"0@28G\2(GS -M2(LN2,=%.`````#VA9(````!#X5J`0``#[9&$H/X`@^$`P$``(/X`G\.@_@! -M#X2?````Z4H!``"#^`-F9F:09F:0#X4Z`0``2(M&"$B)12`/MT809HE%*`^W -M5A#!X@E(BWX8O@````#H`````&;'0UH#`$&]`````$R)Y^@`````2(G&QD`2 -M,$B+0PA(B48(#[=#$&:)1A"`3B`$2(E>0$C'1C@`````2,=&,`````!)8\5( -MBX3%H````$B)!DR)Y_]0:$'_Q4&#_0%^K.G#````2(M&"$B)12`/MT809HE% -M*.@`````2(G&QD`2($B+0PA(B48(#[=#$&:)1A"`3B`"2(E>0$C'1C@````` -M2,=&,`````!(BX6@````2(D&3(GG_U!HZVU(BT8(2(E%(`^W1A!FB44HZ``` -M``!(B<;&0!(@2(M#"$B)1@@/MT,09HE&$(!.(`)(B5Y`2,=&.`````!(QT8P -M`````$B+A:````!(B09,B>?_4&CK%V9F9I#&0R$&2(MS.$B)VDR)Y^@````` -M2(U5,$C'Q@````!,B>?H`````$B+7"0(2(ML)!!,BV0D&$R+;"0@2(/$*,.0 -M2(/L.$B)7"0(2(EL)!!,B60D&$R);"0@3(ET)"A,B7PD,$F)_TF)]$B++O9% -M`01U%<9&(0)(BW8X3(GBZ`````#IV@$``/9&("!T)$C'13@`````2(EU0&:# -M?2H`#X6]`0``Z+C]___ILP$``&9FD$B#?3@`=2EF@WTH`&9F9I!T/D@/MT4H -M2`-%($@[1@AV+T@/MT802`-&"$@Y12!S($G'1"10`````$B-?3!,B>;H```` -M`.EF`0``9F:09F:09O]%*O:%D@````,/A9\```!!]D0D(`(/A),```!(BY6@ -M````2(NUJ````(`Z`W5D@#X#=5])BT0D"(G!*XJ8````08G`1"N&F````(NZ -MG````(NVG````(G(F3'1*=%$B<"903'002G01#G!?1.%]@^41"0'@_\%#Y?` -M($0D!^LTA?\/E40D!X/^!0^6P`A$)`?K(8"]E@`````/E$0D!P^V3"0'B(V6 -M````ZPAF9I#&1"0'`&9!QT0D6@``0;X`````1(GP1`^VZ$J#O.V@`````'1[ -M2HN$[:````#V0`$$=&U!#[94)"#`Z@)$.'0D!P^4P`G0J`%T5DR)_^@````` -M2(G#ND@```!,B>9(B3(G__U!H9F:00?_&08#^`0^&9O__ -M_V9FD$B+7"0(2(ML)!!,BV0D&$R+;"0@3(MT)"A,BWPD,$B#Q#C#9F9FD&9F -MD&9FD&9FD%532(/L"$B)]4B+7@@/ME8#@&8!^X"+D@````%(QX.8```````` -M`/Y+>8![>0!U!H!C`?OK'`^V@Y(```"H`G01@^#7B(.2````A=)U!(!C`?OV -M0P$$=1U(@WMP``^$+`$``$B)WO]3<&9F9I!F9I#I&@$``(72=21(BY.@```` -MQD(#`4B+@Z@```#&0`,`2(F#H````$B)DZ@```!(@WL(`'0.2(M#"/9``00/ -MA(,```!(BX.@````@#@#=7=(B=[H`````$B)PDB%P'1GQ@`#QD`#`4B)6`A( -MBP4`````2(E":$B+!0````!(B4)P]D,!$'0.@$H!$(N"D````$B)0AA(QT4( -M`````$B)DZ@````/MH.2````@^#^@\@*B(.2````_D-Y2(G6OP<```#H```` -M`$B#>P@`=`]F9F:02(M;"$B#>P@`=?6+@X@```")@XP```"+@X0```")@X@` -M``"+@X````")@X0```"+0WR)@X````#H`````(E#?,:#EP````%(B=_H```` -M`$B#Q`A;7<-F9F:09F:09F:02('L*`(``$B)G"0``@``2(FL)`@"``!,B:0D -M$`(``$R)K"08`@``3(FT)"`"``!)B=1,BS9(BVY`2(M=*$&]$0```$B)XDB% -MVW0,9@^V12"#X`$YR'4I2(G32(-],`!T#TB)[O]5,(7`=15F9I!FD+@````` -MZ>4```!F9I!F9I"`?5'_#X2^````#[=-5,'A";H```$`9H-["`!T!`^W4P@Y -MT78[00^V1@,Z15!U%$B+`TF)!"1(BT,(28E$)`A)@\00*=%(@\,0N@```0!F -M@WL(`'0$#[=3"$'_S3G1=\5!#[9&`SI%4'4<2(L#28D$)&9!B4PD"&9!QT0D -M"@"`N`$```#K63G1)R$@#`TF)!"2)T&8IR&9!B40D"&:!>PH`@'4/9D'' -M1"0*`("X`0```.LJ9D''1"0*``!)@\002(/#$$'_S42)ZDC!X@1(B=Y,B>?H -M`````+@!````2(N<)``"``!(BZPD"`(``$R+I"00`@``3(NL)!@"``!,B[0D -M(`(``$B!Q"@"``##D`^V1P,Z1E!U%P^W1E1FB4(02(M&2$B)0@C#9F:09F:0 -M#[=&4F:)0A!(QT((`````,-F9F:09F9FD&9F9I!F9I!,BT8(1`^W3A!!NP`` -M``"Y`````(!_>``/A(,```!%#[?1B_H`````$B#Q`A;7<-F9I!FD$B#[#A(B5PD"$B) -M;"003(ED)!A,B6PD($R)="0H3(E\)#!)B?](B?5,BS9!]D8!!'45QD8A`DB+ -M=CA(B>KH`````.G*````3(GWZ*'^__]F@WU:`'4:QD4A`DB+=3A(B>I,B?_H -M`````.FC````9I!!O0````!!@'YX``^$D`````^W15I$B>G3^*@!='),B?_H -M`````$B)PTECQ4V+I,:@````3(DC2(EK0`^V52"#X@(/MD,@@^#]"="(0R`/ -MME4@@^($@^#["="(0R`/MD42B$,22(G:2(GN3(GGZ,[]__](QT,X`````$C' -M0S``````2(G>3(G_0?]4)&AF9I!!_\5!#[9&>$0YZ`^/8"(D@````%(@WAP`'0&2(G&_U!P2(/$",-F9F:02&/. -M2(N4SX!9``!(A=)T"TB+`DB)A,^`60``2(G0PY!(8])(BX37@%D``$B)!DB) -MM->`60``PV9FD&9FD&9FD$%7059!54%455-(@^P(28G_O0"```"!_@!```!W -M:&:]`$"!_@`@``!W7&:]`""!_@`0``!W4&:]`!"!_@`(``!W1&:]``B!_@`$ -M``!W.&:]``2!_@`"``!W+&:]``*!_@`!``!W(&:]``&!_H````!W%&:]@`"# -M_D!W"X/^(1GM@^7@@\5`B=`/K\5$C;#_#P``0<'N#,=$)`0`````N`````"! -M_0`0```/A]L```!!_\Y!@_[_#X3*````0;T`$```3(G_Z`````!(BA(`<-!_\1$B>BZ`````/?U1#G@#X=W____0?_.08/^_P^%//__ -M_XM$)`1(@\0(6UU!7$%=05Y!7\-F9F:09F:055-(B?V)\[@`````.;?860`` -M2&/#2(M\Q0BZ`!```+X`````Z`````#_RX/[_W7B2(/$ -M"%M=PV9FD&9FD&9FD(L/_\F#^?]T+DACP4B+1,<(N@````!(@S@`=`:X```` -M`,/_PDB#P`B!^O\!``!VYO_)@_G_==*X`0```,-F9I!(@^P(NA````"^```` -M`.@`````2(/$",-F9F:09F9FD$B#?A@`=`Q(BU882(M&$$B)0A!(BU802(M& -M&$B)`DC'1A``````N@````#HL/S___/#9F9FD&9F9I!F9I!F9I!(C4]@2(M' -M8$B)1AA(A6^`````.C[^___2(G#3(D@2(EH -M"$B)QDR)[^AF____2(G82(L<)$B+;"0(3(MD)!!,BVPD&$B#Q"##9F9FD&9F -M9I!F9I`/MD=-#[;02(T4DDB-5-=0_\"(1TU(B3K&0@D`QD(*`,9""P!(B=## -M9F9FD&9F9I!!5%5328G\2(GSO0`````/ME9*C4+]T?@!PH/Z`'XED$ACQ4B+ -MM,.@"@``3(GGZ*W]____Q0^V4TJ-0OW1^`'".>I_W+H'````2(G>3(GGZ%S[ -M__];74%2Z!P```$B)[DR)[^AO^?__ -MN`````#K,DECQ$C!X`1(C1PH2(V[\`H``.A1_/__2(V[<`L``.A%_/__0?_$ -M13GF#X]Y____2(GH2(/$&%M=05Q!74%>05_#9F9FD&9FD$%455-(B?5(B=.) -MS@^V37J)T-/H)?\!``!(BU583(TDPDV+!"1-A$B)VNAH -M_?__28G`2(7`=%!(B6@X28L$)$F)0"A(A$&(<$H/MDUZ2(G82-/H2`^V57A(B=&Z`````$CW\4`HUO_.08AP -M2TR)P%M=05S#9F9FD&9F9I!!5T%6055!5%532('L:`$``$B)?"1(2(ET)$!( -MB50D.`^V5B")T-#H@_`!B<�&)3"0T2(-^*`!T!?;"`70<3(U\)%"Y`0`` -M`$R)^DB+="1`2(M\)$C_5C#K"4B+7"1`3(M[*,=$)`P```$`9D&#?P@`=`E! -M#[='"(E$)`Q!O0````#'1"0P`````$B+5"1`@+J```````^$=P$``$AC1"0P -M2(M,)$!(BT3!6$B)1"0@#[:88`P``(A<)"\XF&$,```/@C(!```/MD0D+TB+ -M5"0@.$)+#X0%`0``#[;`2(G1#[>4@D`,```/MX2!0@P``&:)1"00B=!FP>@# -M#[?`B40D"$&)UD&#Y@=!#[?&B<;!Y@FX"````&9$*?!!B<9F1#MT)!"+7"00 -M1`]'\T$/M\:)Q<'E"4@/MD0D+TB+5"0@2(N,PJ`*``"+5"0(B?!)B<1,`V31 -M"$0[;"0,=2-)@\<0QT0D#````0!F08-_"`!T"4$/MT\(B4PD#$&]`````(M< -M)`Q$*>LYZP]'W8-\)#0`=!)$B>Y)`S>)VDR)Y^@`````ZQ!$B>])`S^)VDR) -MYN@`````00'=*=UT!XG820'$ZY-F1"ET)!!T%/]$)`B^`````$&^"````.D_ -M_____D0D+P^V7"0O2(M$)"`XF&$,```/@\[^____1"0P2(M4)$`/MH*````` -M.T0D,`^/B?[__[H`````2(MT)$!(BWPD2/]4)#A(@<1H`0``6UU!7$%=05Y! -M7\-F9I!F9I!54TB#[`A(B?V%TG0$QD8A"T&[`````("^@``````/A,$```!( -MC9U@60``2(V]4%D``$ECPTR+1,982<>`,`P```````!-B<*Y`````$&`>$H` -M=D8/ML%(P>`$3`'02(V0\`H``$&Y`````(.X\`H```!U$H-Z!`!U#(-Z"`!U -M!H-Z#`!T!D&Y`0```$6%R9!U)?_!03A*2G>ZN`````"%P'0=2(M#"$R)0PA) -MB1A)B4`(3(D`ZQNX`0```.OA9I!(BT<(3(E'"$F).$F)0`A,B0!!_\,/MH:` -M````1#G8#X]-____2(GOZ%,X``!(@\0(6UW#9F9FD&9F9I!F9F:02(/L2$B) -M7"082(EL)"!,B60D*$R);"0P3(ET)#A,B7PD0$F)_4B)\TB+KC`,``#_C]Q9 -M``!(C4802(M("$B+5A!(B4H(2(D12(E&$$B)0`A(A>T/A*<"``#V12`@#X0M -M`0``3(ME`$@/MT9(28G&3`-V0$0/MWY(2,>&,`P```````!(C8=060``2(M0 -M"$B)<`A(B09(B58(2(DR@+YB#````758@'T2`G5)2`^V1DM(B[S&H`H``.@3 -M]___A$))````#WV$B82"-#0$DYA"28 -M````=@A)B80DF````("[8@P```%T&@^V@V(,``"(12%(B>Y,B>_H+C<``.F) -M`P``20^WA"20````2(M5"$C_PD@/K\),.?!V+4$/M\],B?),B>9,B>_HKOK_ -M_TB)J#`,``!(B4582(G&3(GOZ$@0``#I0P,``$D/MX0DD````$D#A"28```` -M3#GP=0A-B;0DF````$B)[DR)[^BZ-@``Z14#``!F9I!FD`^VA8$```#_P(B% -M@0```#J%@`````^%E0(``/9%(`0/A-P```!!O@````"`O8``````#X:Y```` -M2(V'4%D``$B)1"002(V78%D``$B)5"0(1(GR#[;"2(MY,B>_HM#4``.FO`0``0;X`````@+V``````'8J1(GR#[;"2(M< -MQ5B`NV(,```!=`H/MH-B#```B$4A0?_&1#BU@````'?6@'TA`'472,?"```` -M`$B)[DR)[^C>^?__Z5D!``"Z`````$B)[DR)[^@)_/__Z40!``!F9F:0@+YB -M#````0^%@P```$F)]+T`````@'Y*`'8D9F:09I")Z`^V^$C!YP1*C;PG\`H` -M`.C:]/___\5!.&PD2G?A2(.[.`P```!T*4B+@S@,``!(B8,P#```2,>#.`P` -M``````!(B=Y,B>_H,PX``.G.````28V%4%D``$B+4`A(B5@(2(D#2(E3"$B) -M&NM:9F:02(V'8%D``$B+4`A(B7`(2(D&2(E6"$B),DB#OC@,````=#1(BX8X -M#```#[:68@P``(A0(4B+EC@,``!(Q\8`````Z`````!(QX,X#````````.FY -M````2(MS,$R)[^@]]/__2,=#,`````!(BT,X2(-X,`!T%4B-4#!(Q\8````` -M3(GOZ`````#K)4F#O>A9````=!M)C97H60``2,?&`````$R)[^@`````9F:0 -M9I!!@[W@60```'16@+MB#````75-2(M[.$B#?T@`=##H#3(``(7`=2=(BT,X -M2(M04$B+<$A,B>_H`````$B+0SA(QT!(`````$'_C>!9``!!@[W@60```'0( -M3(GOZ`````!(BUPD&$B+;"0@3(MD)"A,BVPD,$R+="0X3(M\)$!(@\1(PV9F -M9I!F9I!F9I!F9I!(@^P(2(L6@'I.`'03QD).`$C'Q@````#H`````&9FD$B# -MQ`C#9F9FD&9F9I!F9I!!5T%6055!5%532(/L"$F)U$&)STB+1D!(BQ!(#[9` -M$4R+M,*@"@``BT8(*T)`P>`)#[=N$,'E"8G!@>'_#P``08G%0<'M#+L`$``` -M*05_#9F9FD&9F9I!F9I`/MD<2`D<3B$<22(U7%+X!```` -MZP^`?Q(`>0:X`````,/^1Q(/MD\2@_D?=Q.)\-/@A4<4#Y7`#[;`ZU1F9F:0 -M@_D_=Q*#Z2")\-/@A4($#Y7`#[;`ZSF#^5]W%(/I0(GPT^"%0@@/E<`/ML#K -M(F:0N`````"#^7]W%H/I8(GPT^"%0@P/E<`/ML!F9I!F9I"%P'2!QD<3`4R- -M1Q0/ME<2O@$```#K`_Y'$P^V1Q.-#`*#^1]W#XGPT^"%1Q0/E<`/ML#K3H/Y -M/W<6@^D@B?#3X$&%0`0/E<`/ML#K-F9FD(/Y7W<3@^E`B?#3X$&%0`@/E<`/ -MML#K&[@`````@_E_=Q&#Z6")\-/@085`#`^5P`^VP(7`=9"P`<-F9I!F9I!( -M@^P82(D<)$B);"0(3(ED)!!(B?U(BUY`3(LC#[9&(8A#"N@`````@'L*`75R -M2(G?Z*K^__^%P'06QD,*`$B)WDB)[^C'````ZV1F9I!FD(!["`%U2@^V0Q!! -M.$0D2Y!T/CA#$74Y#[;P2(GP2,'@!$J-M"!P"P``2(U+%(L&"T,4B0:+1@0+ -M002)1@2+1@@+00B)1@B+1@P+00R)1@R0QD,)`DB)WDB)[^A!_?__2(L<)$B+ -M;"0(3(MD)!!(@\08PV9F9I!F9F:09F:09F:02(/L&$B)7"0(3(ED)!!)B?Q( -MB?/&1A,`QD82`$B)]^CL_?__2(G>3(GGZ!$```!(BUPD"$R+9"002(/$&,-F -MD$B#["A(B5PD"$B);"003(ED)!A,B6PD($F)_4B)\TB++DB+53A(#[9&$$R+ -MI,*@````Z`````!(B<9,B2"`>P@!=0V`2"`"QD`2(.L+9F:0@$@@!,9`$C!( -M#[9#$D@#14!(B48(9@^V0Q-FB4802,=&,`````!(B5Y`2,=&.`````!,B>]! -M_U0D:$B+7"0(2(ML)!!,BV0D&$R+;"0@2(/$*,-F9F:09F:09F:09F:00515 -M4T&Y`````$&[`````$B)_4&\`0```.L808/[?W8/1(G(Z5X!``!F9F:09F:0 -M0?_#1(G:08/['W<21(G@1(G9T^"%!P^5P`^VP.M208/[/W<3C4K@1(GCT^.% -M700/E<`/ML#K.4&#^U]W$XU*P$2)X-/@A44(#Y7`#[;`ZR"X`````$&#^W]W -M%8U*H$2)X]/CA5T,#Y7`#[;`9F9FD(7`#X1S____0;@!````2(GZ0;H!```` -MZPIF9F:09F:00?_`0XT,`X/Y'W<41(G0T^"%`@^5P`^VP.M59F:09I"#^3]W -M$X/I($2)T-/@A4($#Y7`#[;`ZSB#^5]W$X/I0$2)T]/CA5H(#Y7`#[;`ZR"X -M`````(/Y?W<6@^E@1(G0T^"%0@P/E<`/ML!F9I!FD(7`=8Q$B=E%`<-!N@@` -M``!$BQD`#X3A````2(-[$`!U"4B)@`````_\-$.?-\A.E_````2(UT)"!(B=_H,OW__T&)QD@/ -MMD,83(NDQ:`*``!)#[9%&$R+O,6@"@``NP````!$.?-]2TACTP^V1)0AB<'! -MX0D/MD24(D&)P$'!X`E(#[9$E"")SDB)]TD#?,0(2(E\)!!)`W3'"$B)="08 -M1(G"Z`````#_PT0Y\WRY9F9FD+H`````3(GN2(M\)`CHC@(``$B+G"0H`0`` -M2(NL)#`!``!,BZ0D.`$``$R+K"1``0``3(NT)$@!``!,B[PD4`$``$B!Q%@! -M``##9F:09F:02('L2`$``$B)G"08`0``2(FL)"`!``!,B:0D*`$``$R)K"0P -M`0``3(FT)#@!``!,B;PD0`$``$F)_TB)]4B+'DB-="002(U]$.@B_/__08G$ -M2`^V12!,B[3#H`H``$@/MD4A3(NLPZ`*``"[`````$0YXWT]2&/##[9TA!'! -MY@D/ME2$$L'B"4@/MD2$$(GV2(GW20-\Q@A(B3PD20-TQ0A(B70D".@````` -M_\-$.>-\P[H`````2(GN3(G_Z(X!``!(BYPD&`$``$B+K"0@`0``3(ND)"@! -M``!,BZPD,`$``$R+M"0X`0``3(N\)$`!``!(@<1(`0``PV9FD&9FD$%7059! -M54%455-(@>R(`0``28G_2(GU3(LF2(M>$$B-M"2`````2(G?Z$+[__]!B<9( -M#[9#&$V+K,2@"@``NP````"`?2``=B,/MDT@9F:0#[;#2`^V5"@828N4U*`* -M``!(B53$0/_#.-EWY$&\`````$4Y]`^-K0```&9FD&:026/$#[:4A($```!! -MB=)!P>()#[:4A((```!!B=-!P>,)#[:,A(````"[`````(!](`!V*$0/MLE% -MB=`/MG4@D`^VPTB+5,1`2HM\R@A)C10X2(D4Q/_#0#C>=^0/MM%$B=!(B<=) -M`WS5"$@Y/"1U$$B+="0(1(G:Z`````#K'9!(BU0D"$B+-"0/ML%$B==)`WS% -M"$2)V>@`````0?_$13GT#XQ8____N@````!(B>Y,B?_H&````$B!Q(@!``!; -M74%<05U!7D%?PV9FD&9FD$B#[!A(B1PD2(EL)`A,B60D$$F)_$B)\XG5QD8) -M`H/Z`1G`@^#U@\`,B$8*Z!_V__^`>P@#=2](BT,02(MP$$B%]G0B2,=`$``` -M``#&1@D"@_T!&<"#X/6#P`R(1@I,B>?HZO7__TB+'"1(BVPD"$R+9"002(/$ -M&,-F9F:09F:0#[96"X72=$:)T$@/MH1'L`D``$B-!(!(C43'4(!X"0)T!K@` -M````PX!X"@%T$L9&"0(/MD`*B$8*N`````##D(G0#[:41[$)``"%TG6ZN`$` -M``##9F9FD&9F9I!F9F:005=!5D%505154TB#[`A)B?Y(B?7&1DX`@+YC#``` -M``^$BP```$&\`````$B-75"`?4T`=$Z`>PD!=3B`>P@#=2E(BT,0@'@9`'0? -M2(-X$`!T&$C'0!``````QD,)`@^VA6(,``"(0PKK"<9%3@'IMP$``$'_Q$B# -MPR@/MD5-1#G@?[)(B>Y,B??H$O#__^F7`0``#[9#"HB%8@P``,:%8PP```'I -M?/___V9F9I!F9I!!OP````!!O0$```!!O`````!(C5U0@'U-``^$-`$``(![ -M"0!U>DB)WDB)[^B__O__APD"=1!!_\=F9F:09F:0@'L)`G0+0;T` -M````Z8\```"`>PH!#X2%````@'U/`)`/A!W___](BT4X2`^V4Q!(BX30H``` -M`/9``01T7T&]`````,9#"0'&0PH`3(GW2(G>#[9#"(/X!G=&B<#_),4````` -MZ)CV___K-F9FD&9FD.@+^?__ZRGH!/O__V9F9I#K'NCY^___ZQ?&14\!QD8) -M`L9&"@'HAO/__^L$QD,*`4'_Q$B#PR@/MD5-1#G@#X_,_O__187_#X6C_O__ -M187M=!3&A6(,```!2(GN3(GWZ'SN___K!,9%3@%(@\0(6UU!7$%=05Y!7\-F -M9F:09F:005=!5D%505154TB!['@!``!(B7PD2$B)]4B+7CA,BZ8P#```0;T` -M````387D=2A(#[=.2$B+5D!(`=%(B=[HO>;__TB)13"X_____TB#?3``#X2N -M(@``2(M$)$C_@-Q9``!(C4402(M4)$A(@<)P60``2(M*"$B)0@A(B5402(E( -M"$B)`6:#NY0`````=$/V@Y(````!=0U(BU5`2#F3F````'# -ME````(G"J`%U#D'_QHG01(GQT_BH`73R1(AU3.LIQD5,".LC]H.2`````G06 -M2(M]0$@YNY@```!W"0^V14N(14SK!,9%3`C&14T`QH6P"0```,9%3P#&A6(, -M````QH5C#````$C'A3@,````````387D#X1?#P``0?9$)"`@#X2.!P``00^V -M1"02@_@"#X1M!```@_@"?P^#^`$/A`0!``"0Z9XA``"#^`,/A94A``!(C5PD -M8$B)W^@%Y?__28G:OP`````/MW5(NP````!!N2````!!NP$```"#_Q]W/P^V -MPTF-%()$B_H<.7__\9`"`)$B'@0QD`1`$B+5"1@2(E0%$B+5"1H2(E0'$'_QT0X -M?4IWJ^FG(```N`$```#K54B)[[D`````@'U*`)!V00^VP4C!X`1(`?A(C9#P -M"@``O@````"#N/`*````=1*#>@0`=0R#>@@`=0:#>@P`=`6^`0```(7V=;#_ -MP3A/2G>_N`````"%P'073(FE.`P``$C'A3`,````````Z<(-``!(C5PD8$B) -MW^B@X___28G:OP`````/MW5(NP````!!N2````!!NP$```"#_Q]W/P^VPTF- -M%()$B;`)``!!#[9$)`N( -MA'FQ"0``08AT)`M!OP````"`?4H`#X;3'@``2(G31#A]3'1R2(GOZ%_C___& -M0`@!1(AX$$2(>!%(BU0D8$B)4!1(BU0D:$B)4!Q!#[95(`^VRD:(?"D8_\)! -MB%4@28M5`/Z"L`D```^VLK`)``")\4@IT$B#Z%!(P?@#2`^OPXB$2K`)``!! -M#[9%"XB$2K$)``!!B'4+0?_'1#A]2@^'>____^E&'@``0;\`````@'U*``^& -M-AX``$B-G?`+``!)OLW,S,S,S,S,1#A]3`^$O0```$B)[^BPXO__QD`(`42( -M>!!$B'@12(M4)&!(B5`42(M4)&A(B5`<2(E$)$!(B>_HA>+__\9`"`-(B5@0 -M1(AX&$F)Q4B+$/Z"L`D```^VLK`)``")\4B+1"1`2"G02(/H4$C!^`-)#Z_& -MB(1*L`D``$$/MD4+B(1*L0D``$&(=0M)BQ0D_H*P"0``#[:RL`D``(GQ3(GH -M2"G02(/H4$C!^`-)#Z_&B(1*L`D``$$/MD0D"XB$2K$)``!!B'0D"T'_QT0X -M?4H/ARS____I3!T``+@!````ZUE(B>^Y`````(!]2@!V1F9F9I`/ML%(P>`$ -M2`'X2(V0\`H``+X`````@[CP"@```'43@WH$`'4-@WH(`'4'@WH,`)!T!;X! -M````A?9UK/_!.$]*=[ZX`````(7`=!=,B:4X#```2,>%,`P```````#I8PH` -M`$B-7"1@2(G?Z$'@__])B=J_``````^W=4B[`````$&Y(````$&[`0```&9F -M9I"#_Q]W/P^VPTF-%()$B_HI>#__\9`"`5(B5@0QD`@`$F)Q4&_`````(!] -M2@`/AND;``!(N\W,S,S,S,S,2(GOZ'3@___&0`@!1(AX$$2(>!%(BU0D8$B) -M4!1(BU0D:$B)4!Q!#[95(`^VRD:(?"D8_\)!B%4@28M5`/Z"L`D```^VLK`) -M``")\4@IT$B#Z%!(P?@#2`^OPXB$2K`)``!!#[9%"XB$2K$)``!!B'4+0?_' -M1#A]2G>%Z5\;```/MEU+2(GOZ/#?___&0`@!B%@0B%@12(M4)&!(B5`42(M4 -M)&A(B5`<2(E$)#A!OP````"`?4H`#X8B&P``2(V=\`L``$F\S!%(BU0D8$B)4!1(BU0D:$B) -M4!Q(B40D0$B)[^AQW___QD`(`TB)6!!$B'@828G%2(L0_H*P"0``#[:RL`D` -M`(GQ2(M$)$!(*=!(@^A02,'X`TD/K\2(A$JP"0``00^V10N(A$JQ"0``08AU -M"TF+50#^@K`)```/MK*P"0``B?%(BT0D.$@IT$B#Z%!(P?@#20^OQ(B$2K`) -M``!!#[9%"XB$2K$)``!!B'4+0?_'1#A]2@^'+/___^DX&@``9F:09I!-A>0/ -MA+P'``!!]D0D(`*0#X2O!P``1`^VO6`,``!$.+UA#```#X)5`0``9F:09I!$ -M.'U+#X0V`0``1(GX#[;82(G82,'@!$R-I`3P````3(GGZ%G=__\/MY2=0`P` -M``^WO)U"#```NP````!!N2````!!N@$```"#^A]W1`^VPTF--(1$BAF -M9I!FD$'_QT0XO6$,```/@[#^__]%A.T/A)H%``!(C7PD8.@=W/__0;\````` -M@'U*`'99D$0X?4QT240X?4MT0T2)^`^VT$C!X@1(`>I(C8KP"@``BT0D8`N" -M\`H``(E$)&"+1"1D"T$$B40D9(M$)&@+00B)1"1HBT0D;`M!#(E$)&Q!_\=$ -M.'U*=ZA,#[9%3$G!X`1*C70$<(M\)&`C/HE\)%"+3"1D(TX$B4PD5(M4)&@C -M5@B)5"18BT0D;"-&#(E$)%SWUXE\)&#WT8E,)&3WTHE4)&CWT(E$)&PC/HE\ -M)&`C3@2)3"1D(U8(B50D:"-&#(E$)&Q(B>_H9-S__\9`"`!(B40D*+@````` -M@WPD8`!U%8-\)&0`=0Z#?"1H`'4'@WPD;`!T!;@!````A<`/A*8!```/MD5, -MB(4(#```2(M$)&!(B87P"P``2(M$)&A(B87X"P``QH4)#````4C'A0`,```` -M````0;\`````@'U*``^&`P(``$R-I?`+``!$.'U,#X0_`0``1#B]8`P``'!%(BU0D8$B)4!1( -MBU0D:$B)4!Q(B40D0.M21(GZ#[;"2,'@!$B-7`1PBT0D8`D#BT0D9`E#!(M$ -M)&@)0PB+1"1L"4,,2(GOZ&';___&0`@!1(AX$$2(>!%(BQ-(B5`42(M3"$B) -M4!Q(B40D0$B)[^@YV___QD`(`TR)8!!$B'@828G%2(L0_H*P"0``#[:RL`D` -M`(GQ2(M$)$!(*=!(@^A02,'X`TB_S`$2(U$!'"Z`````(,X`'42@W@$`'4, -M@W@(`'4&@W@,`'0%N@$```"%TG0R1(GY#[;!2,'@!$B-7`1P2(GOZ`[:___& -M0`@!1(AX$$2(>!%(BQ-(B5`42(M3"$B)4!Q!_\=$.'U*#X=O____N`````"# -M?"10`'45@WPD5`!U#H-\)%@`=0>#?"1<`'0%N`$```"%P`^$&Q4``$0/MF5, -M1(BE*`P``$B+1"102(F%$`P``$B+1"182(F%&`P``,:%*0P```!(QX4@#``` -M``````^V74M(B>_H=MG__\9`"`&(6!!$B&`12(M4)%!(B5`42(M4)%A(B5`< -M2(E$)#A(QT0D,`````!!OP````"`?4H`#X:>%```3(VE$`P``$F^S_H"MG__\9`"`%$B'@0B%@1 -M2(M4)%!(B5`42(M4)%A(B5`<2(E$)$!(BQ#^@K`)```/MK*P"0``B?%(BT0D -M*$@IT$B#Z%!(P?@#2+_-S,S,S,S,S$@/K\>(A$JP"0``2(M<)$`/MD,+B(1* -ML0D``$"(_H3=C__\9` -M"`-,B6`0B%@828G%2(E$)#!(BQ#^@K`)```/MK*P"0``B?%(BT0D0$@IT$B# -MZ%!(P?@#20^OQHB$2K`)``!!#[9%"XB$2K$)``!!B'4+28M5`/Z"L`D```^V -MLK`)``")\4B+1"0X2"G02(/H4$C!^`-)#Z_&B(1*L`D``$$/MD4+B(1*L0D` -M`$&(=0M!_\=$.'U*#X>(_O__Z1`3``!$#[:]8`P``$0XO6$,```/@OL2``!$ -M.'U+=')$B?H/ML)(P>`$2(U$!'"Z`````(,X`'49@W@$`'43@W@(`'4-@W@, -M`'0,9F9FD&9FD+H!````A=)T-T2)^0^VP4C!X`1(C5P$<$B)[^A`U___QD`( -M`42(>!!$B'@12(L32(E0%$B+4PA(B5`<9F:09I!!_\=$.+UA#```#X-X____ -MZ6X2``"`?4P'#X;3"0``2(U\)&#HU]7__\9$)"<`0;\`````@'U*``^&H0`` -M`&:01#A]2P^$B````$2)^P^VPTC!X`1(`>A(C9#P"@``N0````"#N/`*```` -M=1:#>@0`=1"#>@@`=0J#>@P`9F9FD'0%N0$```"%R71'1(GX#[;02,'B!$@! -MZDB-BO`*``"+1"1@"X+P"@``B40D8(M$)&0+002)1"1DBT0D:`M!"(E$)&B+ -M1"1L"T$,B40D;/Y$)"=!_\=$.'U*#X=A____#[94)"%``P```````!(B>_H[]7__\9`"`*(6!"(6!%(BU0D8$B)4!1(BU0D:$B) -M4!Q)B<1(B>_HR-7__\9`"`9(B40D*$F+%"3^@K`)```/MK*P"0``B?%(BT0D -M*$@IT$B#Z%!(P?@#2;[-S,S,S,S,S$D/K\:(A$JP"0``00^V1"0+B(1*L0D` -M`$&(="0+@'U*`@^'20(``$B-G?`+``!(B>_H7-7__\9`"`5(B5@0QD`@`$F) -MQ4B+3"0H2(L1_H*P"0``#[:RL`D``(GQ2"G02(/H4$C!^`-)#Z_&B(1*L`D` -M`$B+7"0H#[9#"XB$2K$)``!`B',+0;\`````@'U*``^&7Q```$0X?4L/A+X! -M``!!#[9%(`^VT$:(?"H8_\!!B$4@1(GX#[;P2,'F!$B-!"Y(C8AP"P``BY!P -M"P``]]*)5"10BT$$]]")1"14BT$(]]")1"18BT$,]]")1"1<2(U,-'`C5"1@ -MB1&+1"1D(T0D5(E!!(M$)&@C1"18B4$(BT0D;"-$)%R)00RX`````(,Y`'42 -M@WD$`'4,@WD(`'4&@WD,`'0%N`$```"%P'1K1(GZ#[;"2,'@!$B-7`1P2(GO -MZ#O4___&0`@!1(AX$$2(>!%(BQ-(B5`42(M3"$B)4!Q)BU4`_H*P"0``#[:R -ML`D``(GQ2"G02(/H4$C!^`-)#Z_&B(1*L`D``$$/MD4+B(1*L0D``$&(=0M$ -MB?D/ML%(P>`$2(V$*/`*``"Z`````(,X`'42@W@$`'4,@W@(`'4&@W@,`'0% -MN@$```"%TF:0='I$B?@/MMA(B=A(P>`$2(V<*/`*``!(B>_HD=/__\9`"`)$ -MB'@01(AX$4B+$TB)4!1(BU,(2(E0'$F)Q$B+$/Z"L`D```^VLK`)``")\4B+ -M1"0H2"G02(/H4$C!^`-)#Z_&B(1*L`D``$$/MD0D"XB$2K$)``!!B'0D"T'_ -MQT0X?4H/ARO^___IA0X``$&_`````(!]2@`/AG4.``!(C97P"P``2(E4)!A) -MOLW,S,S,S,S,1#A]2P^$"0(``$2)^0^V\4C!Y@1(C00N2(V(<`L``(N0<`L` -M`/?2B50D4(M!!/?0B40D5(M!"/?0B40D6(M!#/?0B40D7$B-7#1P(U0D8(D3 -MBT0D9"-$)%2)0P2+1"1H(T0D6(E#"(M$)&PC1"1!!$B'@12(L32(E0%$B+4PA(B5`<28M5`/Z"L`D` -M``^VLK`)``")\4@IT$B#Z%!(P?@#20^OQHB$2K`)``!!#[9%"XB$2K$)``!! -MB'4+1(GY#[;!2,'@!$B-A"CP"@``N@````"#.`!U$H-X!`!U#(-X"`!U!H-X -M#`!T!;H!````A=)T>D2)^`^VV$B)V$C!X`1(C9PH\`H``$B)[^A&T?__QD`( -M`D2(>!!$B'@12(L32(E0%$B+4PA(B5`<28G$2(L0_H*P"0``#[:RL`D``(GQ -M2(M$)"A(*=!(@^A02,'X`TD/K\:(A$JP"0``00^V1"0+B(1*L0D``$&(="0+ -M0?_'1#A]2@^'X/W__^DZ#```#[9=2TB)[^C+T/__QD`(`8A8$(A8$4B+5"1@ -M2(E0%$B+5"1H2(E0'$B)1"0X#[9=2TB)[^B>T/__QD`(`HA8$(A8$4B+5"1@ -M2(E0%$B+5"1H2(E0'$F)Q$B)[^AWT/__QD`(!DB)1"0H28L,)/Z!L`D```^V -MN;`)``")_DB+1"0H2"G(2(/H4$C!^`-(NLW,S,S,S,S,2`^OPHB$<;`)``!! -M#[9$)`N(A'&Q"0``08A\)`M!OP````"`?4H`#X9W"P``9F9FD$0X?4L/A,8" -M``!$B?H/ML)(P>`$2`'H2(V0\`H``+D`````@[CP"@```'46@WH$`'40@WH( -M`'4*@WH,`&9F9I!T!;D!````A_HC\___\9`"`%$B'@01(AP$4F+ -ME"3P"@``2(E0%$B+3"002(M1"$B)4!Q(B40D0`^V74M(B>_H6<___\9`"`2( -M6"!$B'`A28N4)/`*``!(B5`02(M<)!!(BU,(2(E0&$F)Q4B+$/Z"L`D```^V -MLK`)``")\4B+1"0X2"G02(/H4$C!^`-(O\W,S,S,S,S,2`^OQXB$2K`)``!! -M#[9%"XB$2K$)``!!B'4+28M5`/Z"L`D```^VLK`)``")\4B+1"1`2"G02(/H -M4$C!^`-(#Z_'B(1*L`D``$$/MD4+B(1*L0D``$&(=0M(BT0D*$B+$/Z"L`D` -M``^VLK`)``")\4R)Z$@IT$B#Z%!(P?@#2`^OQXB$2K`)``!(BUPD*`^V0PN( -MA$JQ"0``0(AS"P^V74M(B>_H7<[__\9`"`2(6"!$B'@A28N4)/`*``!(B5`0 -M2(M\)!!(BU<(2(E0&$F)Q4B+$/Z"L`D```^VLK`)``")\4B+1"0X2"G02(/H -M4$C!^`-(N\W,S,S,S,S,2`^OPXB$2K`)``!!#[9%"XB$2K$)``!!B'4+2(M\ -M)"A(BQ?^@K`)```/MK*P"0``B?%,B>A(*=!(@^A02,'X`T@/K\.(A$JP"0`` -M#[9'"XB$2K$)``!`B'<+2(GOZ*C-___&0`@"1(AX$$2(>!%)BY0D\`H``$B) -M4!1(BTPD$$B+40A(B5`<28G$2(L0_H*P"0``#[:RL`D``(GQ2(M$)"A(*=!( -M@^A02,'X`T@/K\.(A$JP"0``00^V1"0+B(1*L0D``$&(="0+D$'_QT0X?4H/ -MAR/]___ID0@```^V14PZ14L/A:@```!!OP````"`?4H`#X9T"```D$0X?4MT -M?T2)^P^VPTC!X`1(`>A(C9#P"@``N0````"#N/`*````=1B#>@0`=1*#>@@` -M=0R#>@P`=`MF9I!F9I"Y`0```(7)=#Q$B?@/MMA(P>,$2`'K3(VC\`H``$B) -M[^BKS/__QD`(`D2(>!!$B'@12(N3\`H``$B)4!1)BU0D"$B)4!Q!_\=$.'U* -M#X=N____Z=P'``!(C7PD8.A/R___2(GOZ&?,___&0`@&2(E$)"A!OP````"` -M?4H`#X8;`0``1#A]2P^$!`$``$2)^@^VPDC!X`1(`>A(C9#P"@``N0````"# -MN/`*````=12#>@0`=0Z#>@@`=0B#>@P`9I!T!;D!````A`$3(TD*$F-G"3P"@``BT0D8$$+A"3P"@``B40D8(M$)&0+0P2)1"1D -MBT0D:`M#"(E$)&B+1"1L"T,,B40D;$0X?4QT=$B)[^BLR___QD`(`D2(>!!$ -MB'@128N4)/`*``!(B5`42(M3"$B)4!Q)B<1(BPC^@;`)```/MKFP"0``B?Y( -MBT0D*$@IR$B#Z%!(P?@#2+K-S,S,S,S,S$@/K\*(A'&P"0``00^V1"0+B(1Q -ML0D``$&(?"0+0?_'1#A]2@^'Y?[__P^V74M(B>_H)\O__\9`"`*(6!"(6!%( -MBU0D8$B)4!1(BU0D:$B)4!Q)B<1(BPC^@;`)```/MKFP"0``B?Y(BT0D*$@I -MR$B#Z%!(P?@#2+K-S,S,S,S,S$@/K\*(A'&P"0``00^V1"0+B(1QL0D``$&( -M?"0+2`^V=4Q(B?=(B?!(P>`$2(VT*'`+``"+!O?0B40D4(M6!/?2B50D5(M. -M"/?1B4PD6(MV#/?61(M,)&!$(<$2(V\+W`+``!$(P]$B4PD8$0C1P1$B40D9"-7"(E4 -M)&@C1PR)1"1LN`````!%A%``P```````!!OP````"`?4H`#X;+`0``3(VU\`L``$F\S`$2(UA(C;AP"P`` -MB[!P"P``]]:),XM/!/?1B4L$BU<(]]*)4PB+1PSWT(E##"-T)&"),R-,)&2) -M2P0C5"1HB5,((T0D;(E##$B)[^CHR/__QD`(`TR)!%(BQ-( -MB5`42(M3"$B)4!Q)BU4`_H*P"0``#[:RL`D``(GQ2"G02(/H4$C!^`-)#Z_$ -MB(1*L`D``$$/MD4+B(1*L0D``$&(=0M!_\=$.'U*#X=+_O__N`````"#?"10 -M`'45@WPD5`!U#H-\)%@`=0>#?"1<`'0%N`$```"%P`^$,`,```^V74M(B>_H -MP`$2(UT!'!(`>A(C8CP"@``BU0D4".0\`H``(D6BT0D5"-!!(E& -M!(M$)%@C00B)1@B+1"1<(T$,B48,N`````"#/@!U$H-^!`!U#(-^"`!U!H-^ -M#`!T!;@!````A<`/A%8"``!$#[9E3$2)^P^VPTC!X`1(C5P$<$B)[^CDQO__ -MQD`(`42(>!!$B&`12(L32(E0%$B+4PA(B5`<2(E$)$!(@WPD,`!T2TB+$/Z" -ML`D```^VLK`)``")\4B+1"0P2"G02(/H4$C!^`-(O\W,S,S,S,S,2`^OQXB$ -M2K`)``!(BUPD0`^V0PN(A$JQ"0``0(AS"T0/MF5+#[9]3$"(?"0/1(GX1`^V -M\$G!Y@1*C5PT<$B)[^A+QO__QD`(!$2(8"`/ME0D#XA0(4B+$TB)4!!(BU,( -M2(E0&$F)Q4B)1"0P2(L0_H*P"0``#[:RL`D``(GQ2(M$)#A(*=!(@^A02,'X -M`TB[S"%)BQ0D2(E0$$F+5"0(2(E0&$F)Q4B+$/Z"L`D```^VLK`) -M``")\4B+1"0X2"G02(/H4$C!^`-(N\W,S,S,S,S,2`^OPXB$2K`)``!!#[9% -M"XB$2K$)``!!B'4+2(M\)"A(BQ?^@K`)```/MK*P"0``B?%,B>A(*=!(@^A0 -M2,'X`T@/K\.(A$JP"0``#[9'"XB$2K$)``!`B'<+0?_'1#A]2@^''?W__TB) -M[DB+?"1(Z,#:__^X`````$B!Q'@!``!;74%<05U!7D%?PV9FD&9FD&9FD$%7 -M059!54%455-(@^P828G]@[_<60```P^'$@$``$B-AV!9``!(.8=@60``#X3^ -M````28G'3(NW8%D``$B-AU!9``!(B40D$$R)?"0(9F:03(GS38LV2(M3"$F) -M5@A,B3)(B1M(B5L(2(M#./9``01U?DF)W+T`````@'M*`'8?B>@/MOA(P><$ -M2HV\)_`*``#HNL+____%03AL)$IWX4F+A5!9``!(B5@(2(D#2(M$)!!(B4,( -M28F=4%D``$B+0SA(@WA(`'182(M04$B+<$A,B>_H`````$B+0SA(QT!(```` -M`$'_C>!9``#K,V9FD$B)WDR)[^CEV___A4H`=D(/ML-(P>`$3`'`2(V0 -M\`H``+X`````@[CP"@```'42@WH$`'4,@WH(`'4&@WH,`'0%O@$```"%]G4; -M_\-!.%A*=[ZX`````(7`=!.X`0```.FX````N`$```!FD.OI2(L)23G*=89) -MBXEP60``28V!<%D``$@YR`^$BP```$F)P4B-0?!(.7@X=7)(B<:[`````(!X -M2@!V2&9F9I`/ML-(P>`$2`'P2(V0\`H``$&X`````(.X\`H```!U$H-Z!`!U -M#(-Z"`!U!H-Z#`!T!D&X`0```$6%P'47_\,X7DIWO+@`````A_HI+___TB+_H`````$B+`TB# -M>#``=!M(C5`P2,?&`````$B)[^@`````ZUQF9I!F9I!(@[WH60```'0H2(V% -M4%D``$@YA5!9``!T&$B-E>A9``!(Q\8`````2(GOZ`````#K)(&]V%D``/\` -M``!W&$B-A5!9``!(.85060``=0A(B>_H`````$B#Q`A;7<-F9I!!5T%6055! -M5%532('L6`$``$B)="0X28G4B4PD-$R+1D!)BP!(B40D"`^V4'C_RHE4)!Q! -M#[=`$&:)1"0R28N0D````$B)5"0H10^VL(H```!!#[:`BP```(E$)!A%#[>X -MF@```$$/MYB8````28-X*`!T#69!#[9`((/@`3G(=3*Z`````$F#>#``#X0F -M`@``3(UL)$"+3"0T3(GJ3(G&0?]0,+H`````A<`/A`8"``#K!$V+:"B]```` -M`$B+5"0X2(L"#[9``XE$)!2Y``````^WPT@#1"0H2(E$)"!$.W0D%`^%$@$` -M`$B%R715BT0D("G(B)P\'C"69F9I!!#[=5"(72N````0`/1-")T"GH.=AR+8GH20-%`$F) -M!"1F08E<)`AF0<=$)`H``$F#Q!`!W3G5=3V]`````$F#Q1#K,HGH20-%`$F) -M!"2)T&8IZ&9!B40D"&9!QT0D"@``28/$$(G0*>@IPTF#Q1"]`````.N*00^W -MST@#3"0@2(M4)#A(#[="$$@#0@A(.<@/A,0```#K2&9!B5PD"$F#Q!#I3/__ -M_P'=ZS5!#[??P>,)00^W50B%TK@```$`#T30B=`IZ#G8=]Z)T"GH*<-)@\40 -MO0````#KV&9FD&9FD&9$*7PD,G1RNP````!!_\9$.W0D&`^4P`^VP$$!QDB+ -M5"0(#[9">$0Y\'4JBT0D&/_(@WPD&``/1$0D'(E$)!B%P`^4P$0/MO!(#[>" -MD````$@!1"0H2(M$)`A$#[>XD````&9$.WPD,@^&,O[__T0/MWPD,NDG_O__ -M9D''1"3Z`("Z`0```(G02('$6`$``%M=05Q!74%>05_#9F:09I!(@^P82(E< -M)`A(B6PD$$B)_4B+7D"`?B$!=`R$#=`3&0R$+2(G>2(GO_U,X2(M<)`A(BVPD$$B#Q!C#9F9FD&9F9I!F9I!F -M9I!!5T%6055!5%532(/L&$B)?"0028GU2(L&2(E$)`CV1B`$#X3H`0``0;X` -M````@+Z```````^$8@$``$ECQDV+1,5800^VJ&`,``!!.*AA#```#X(Q`0`` -M03AH2P^$&`$``(GJ#[;"2(G"2,'B!$Z-E`+P"@``00^WE(!`#```00^WO(!" -M#```NP````!!NR````!!O`$```!F9F:09F:0@_H?=S\/ML-)C32"1(G9*=$Y -M^0]'SX/Y('4(QP;_____ZPU$B>#3X/_(B='3X`D&1(G8*=`Y^',5C7P7X+H` -M````ZP.#ZB#_PX#[`W:RB>L/ML-(B<)(P>($3HV4`G`+``!!#[>4@$`,``!! -M#[>\@$(,``"[`````$&[(````$&\`0```(/Z'W=&#[;#28TT@D2)V2G1.?D/ -M1\^#^2!U",<&_____^L-1(G@T^#_R(G1T^`)!D2)V"G0.?AS'(U\%^"Z```` -M`.L*9F9FD&9FD(/J(/_#@/L#=JO_Q4$XJ&$,```/@\_^__]!_\9!#[:%@``` -M`$0Y\`^/GO[__TB+7"00@[M(60````^$B0,``$&^`````$&`O8``````=#]( -MB=I(@<)@60``26/&38M$Q5A)QX`P#````````$B+0@A,B4((28D028E`"$R) -M`$'_QD$/MH6`````1#GP?\M,B>Y(BWPD$.BU^?__Z5H#``#V1B`"#X0>`P`` -M2(M$)!!(!?!9``!(B00D3(M\)!!)@<@0`=0R#>@@`=0:#>@P`=`6^`0```(7V=`>X`0```.L,_\$X3TIWN+@` -M````A<`/A5\"``!!#[:H8`P``$$XJ&$,``!R;$$X:$MT6XGI#[;19D&#/%<` -M=25)#[>$D$`,``!)`T!`2(L<)$B)!--!#[>$D$(,``!F08D$5^LIB>@/MM!! -M#[>$D$`,``!F00-`0&9!`X200@P``$B+#"1F*P319D&)!%?_Q4$XJ&$,``!S -ME$'_QD$/MH6`````1#GP#X\#____28MU4$B+?"00Z#BX__]!O@````!!@+V` -M``````^$]@```$B+3"002('!4%D``$ECQDV+1,58187V=6I)BT!`28F%D``` -M`$$/MH!@#```08B%B@```$$/MD!+08B%BP```$D/MH!@#```00^WA(!`#``` -M9D&)A9@```!)#[:`8`P``$$/MX2`0@P``&9!B86:````0<:%B`````!!QH6) -M`````.M-28M00$D[E9````!V0$B+7"0(#[>#D````/?82)A((<))(X60```` -M2#G"=2%)#[:08`P``$$/MX6:````9D$#A)!"#```9D&)A9H```!(BT$(3(E! -M"$F)"$F)0`A,B0!!_\9!#[:%@````$0Y\`^/%O___TB+1"002(.XZ%D```!T -M&4B)PDB!PNA9``!(Q\8`````2(G'Z`````"]`````$B+5"0(@'IX``^&K``` -M`(GI1`^VX69#@SQG`'1=2(M$)`A*BYS@H````$B+?"00Z`````!(B<9!_H6( -M````QD`2($,/MP1G9HE&$$B+%"1*BP3B2(E&"(!.(`)(QT8P`````$C'1C@` -M````2(D>3(EN0$B+?"00_U-H_\5(BTPD"$`X:7AWB.LR0;X`````08"]@``` -M``!T(DECQDF+=,582(M\)!#HQL___T'_QD$/MH6`````1#GP?]Y(@\086UU! -M7$%=05Y!7\-F9F:09F:005=!5D%505154TB#[%A(B7PD2$F)]TB)5"1`2(L& -M2(E$)#B^``````^WD)````!F@?J!`+B`````#T/09HE4)"!!]D<@('1$#[?* -M2(M<)$!(BU,02(MT)#CHDKG__TB)QKC_____2(7V#X2C`P``0<:'@`````%) -MB7=83(F^,`P``+@`````Z88#``!(BT0D0$@/ME`B2(G!2(L`2(G3N@````!( -M]_-!B=9(BT0D.$@/ME!X2(M!"$B)T;H`````2/?Q2(M<)$`/MD,B*-"(1"0? -M03C&08#>_TB+1"0X#[>0D````(U"_P^W2Q@AP4&)U&9!*``````$'&AX$`````QT0D&`$````/MT0D(/?82)A(B40D$`^WP4F) -MQ4B+5"1`3`-J$$B+3"1(2('!8%D``$B)3"0(2(M<)$A(@<-060``2(D<)(M$ -M)"#_R$0AZ(M<)"!F*<-F1#GC00]'W$B+;"003"'M@WPD&``/A'0!``#'1"08 -M`````(M4)"!(BT0D.&8YD)````!V++H`````00^VAX````")P8/X`'X82&/" -M28MTQUA(.6Y`#X0T`0``_\(YT7_H#[=,)"!(B>I(BW0D.$B+?"1(Z!&X__]( -MB<9(A<`/A=T```!!_H^`````08"_@````/\/A+X```!,BU0D"$R+#"1)#[:' -M@````$F+=,=82,>&,`P```````!)B?"Y`````(!^2@!V1)`/ML%(P>`$3`'` -M2(V0\`H``+\`````@[CP"@```'43@WH$`'4-@WH(`'4'@WH,`)!T!;\!```` -MA?]U)?_!03A(2G>]N`````"%P'0;28M""$F)<@A,B19(B48(2(DPZQFX`0`` -M`.OA28M!"$F)<0A,B0Y(B48(2(DP0?Z/@````$&`OX````#_#X5+____N/__ -M___I2@$``$$/MH>`````#[;028ETUUC_P$&(AX````!,B;XP#```QH9@#``` -M",:&80P```!$B?$/MM%$B>AF*>AFB8260`P``&:)G)9"#```1#BV8`P``'8' -M1(BV8`P``$0XMF$,``!S!T2(MF$,``!(BT0D0&8I6"!F02G<=!,/M\-)`<7' -M1"08`0```.D#_O__2(M4)$!F@WH@``^$J0```+D`````0?_&1#IT)!\/E,!! -M`<9(BUPD.$0X"D````$B+7"1`2`%#$,=$)!@!````ZQZ+5"0@2(M$)#AF -M.9"0````N`$````/1D0D&(E$)!A(BUPD0$0/MV,@2(M$)#AF1#N@D`````^& -M)_W__T0/MZ"0````Z1K]__^X`````$B#Q%A;74%<05U!7D%?PV9F9I!F9F:0 -M9F9FD&9FD$B#[`B%TG08QD8A"TB)\DC'Q@````#H`````.L(9F:0Z"OV__]( -M@\0(PV9FD&9FD$%455-(@^PP28G\2(GU2(L>]D,!!'49QD8A`DB+=CA(B>KH -M`````.ED`@``9F9FD$B#>U@`=2F^!P```&9F9I#H2Z[__TB)QTB)0UBZ`!`` -M`+X`````Z`````!F9I!FD`^V12"H(`^%U````*@&=1C&12$!2(MU.$B)ZDR) -MY^@`````Z0@"``#V12`$="=(@WM(`'0@2(M34$B+?H`````$C'0T@` -M````0?^,).!9``!(BWT(2(E\)!@/MT409HE$)"`/MD-X_\B(1"0B#[9+>DB) -M^$C3Z$B)!"1(#[9T)"*Z`````$CW]DB)1"0(#[9+>DC3X$B)1"00#[>3D``` -M``^V3"0B2`^W1"0@2`'X2`^O="002"GP#Z_12(U$$/](B=&Z`````$CW\4@/ -MMY.0````#Z_0ZSAF9F:0]H.2`````708QD4A!DB+=3A(B>I,B>?H`````.DO -M`0``#[>3D````(G02`^O10A(B40D$(G12(M4)!!(`=%(B=Y,B>?HM[#__TB) -M15!(A4```!F9I!FD$B)XDB)[DR) -MY^CB^?__A<`/A(H```!(BW503(GGZ/ZO__]!BXPDN$0``$$YC"2\1```=$9( -M8\%(P>`$2H&\()@B````````=''_P4ACP4AIP/$`#_!(P>@@C00!B<;!_@F) -MR)F)\"G0:<`B`@``*<%!.8PDO$0``'6Z2,=%4`````!)C;PDZ%D``$B)[N@` -M````3(GGZ`````#K1&9F9I#V12`$="E(Q\(`````2(GN3(GGZ/BS___K)L9% -M(05(BW4X2(GJ3(GGZ`````#K$4B)[DR)Y^B6\___9F:09F:02(/$,%M=05S# -M9F9FD&9FD%532(/L"$B)_4B)\TB#?E@`=%%(B??H`````+D`````2&/12(M# -M6$B+!-!(A%D``(L%`````,'@#(G"N*NJJJI(#Z_"2,'H($&) -MQ$'![`]$B>*^:`P``.A$J___B<5!C50D(+X@````2(G?Z#"K__\!Q8L5```` -M`,'B#,'J#KZ(````2(G?Z!6K__\!Q;H(````O@`0``!(B=_H`:O__P'%2(G? -MZ`````!(B04`````_\4[+0````!S-V9FD&9FD$B)W^@`````2(G"2(7`="%( -MBX/060``2(D"2(F3T%D``/^#V%D``/_%.RT`````_U-P9F:0@*.2````'^G4````9F9FD`^V@Y(` -M``!FB9.4````_DMY2,>#F`````````"#R`6(@Y(```"$P'D.@^!_B(.2```` -MZ9D```"`HY(```"?2(G>Z`````!(B<)(AP@`=`M(BUL( -M2(-["`!U]>@`````B4-\2(G?Z`````!(@\0(6UW#9F:09F:09F:0N@````#_ -MSH/^_W039F9FD`^V!P'"2/_'_\Z#_O]U\0^VPL-F9F:09F:09F:09F:055-( -M@^P(2(G[@#\#=EN]`````(!_>`!T1V9F9I!F9I!(8_5(@[SSH`````!T*$B+ -MC/.@````#[93`8/B`0^V00&#X/X)T(A!`4B+O/.@````Z`````#_Q0^V0W@Y -MZ'_`@*.2````^^L'Z!(```!FD$B#Q`A;7<-F9I!F9I!F9I!!54%455-(@>P( -M`@``28G\0;T`````2(GE@']X``^$6`(``$B+7PA(A=MT#DB#>P@`=`=)B=U( -MBUL(N@`"``"^`````$B)[^@`````QT4`\Q9X6K@`````2(7;=`.+0WR)101! -M@+PD@`````!T$(!-"0)!#[:$)(,```"(10I!#[94)'R^`0```"'6#[:%DP`` -M`(/@_(G1@^$""?`)R+X$````(=:#X/.)T8/A"`GP"HA%$_:#D@````)T -M!(!-%`$/MX.4````9HE%%DB+@Y@```")11B+@YP```")A9@```!(C;/@```` -M2(U]++H0````Z`````!(C;/P````2(U]/+H$````Z`````!(C;,T`0``2(V] -M@````+H0````Z`````!(C;/T````2(U]0+I`````Z`````!-A>UT8TF+11B) -M11Q!BT4(A%(4$/MD0D`XA%(D$/MD5ZB$4C -M0?:%D@````)T!(!-)`%!#[>%E````&:)129)BX68````B44H08N%G````(F% -MH````$B%VW4(00^V!"2(11"^D````$B)[^@`````]]B(10B^``(``$B)[^@` -M````]]B(A9````!!B[0DD````(/N"DF-?"1X2(GINC````#H`````$B!Q`@" -M``!;74%<05W#9F9FD&9FD$B)^(`_`W8XN@````"`?W@`=!@/MD]X2&/"2(.\ -MQZ``````=0S_PCG1?^RX`````,-(B[S'H````.@`````9I#SPV9F9I!F9F:0 -M9F:09F:055-(B?N`/P-V-KT`````@']X`'0O2&/%2(.\PZ``````=`U(B[S# -MH````.@`````_\4/MD-X.>A_V^L(9F9FD(!G`?Y;7<-F9I!F9I!F9I!(BT\0 -MN@````!F9F:09F:0B=!(.3S!=0E(QP3!`````,/_PH/Z!W;H\\-F9I!F9I!( -MB?>`9@'[Z`````#SPV:0055!5%532('L"`0``$F)_$B-G"0``@``2(G]#[9' -M`:@$#X0O`0``@#\"#X8F`0``@^#]B$!(BZV@````08`\)`AU<$B%[70,9D&#O"24`````75?2(G% -M0;T!````00^V1"1X@_@!?FM)8\5)B[S$H````$B#QWA(B>FZ(````+X````` -MZ`````"Y`````)!(8]&+!),S1)4`B023_\&#^7]^[$'_Q4$/MD0D>$0YZ'^W -MZR"`?0`##X5X____2(U]>$B)V;H@````O@````#H`````&:!N_X!``!5JG57 -M@[O*`0```'0=@7L&3$E,3W0,@;MV`0``1U)50G4(08!,)`$"ZS%!O0````!) -M8\5(P>`$2`'8@+B^`0``@'4/@[C*`0```'0&08!,)`$"0?_%08/]`W[52('$ -M"`0``%M=05Q!7<-F9F:09F9FD&9F9I!$BX>4(@``18U(`4ECP4AIP/$`#_!( -MP>@@08T$`<'X"42)R<'Y'RG(:<`B`@``02G!36/`2<'@!$F)=#AP2&.'E"(` -M`$C!X`1(B50X>$2)CY0B``##9F9FD&9F9I!F9I!32(/L$$B)^XN'D"(``#N' -ME"(``'1BBXN0(@``2&/!2,'@!$@!V$R+0'!,B00D2(MP>$B)="0(_\%(8\%( -M:<#Q``_P2,'H((T$`8G'P?\)B`$28FT.)@B``!(8X>\ -M1```2,'@!$B)E#B@(@``1(F/O$0``,-F9I!FD%-(@^P02(G[BX>X1```.X>\ -M1```#X2#````9F:09F:0BXNX1```2&/!2,'@!$B-A!B0(@``2(M0"$B)%"1( -MBT`02(E$)`C_P4ACP4AIP/$`#_!(P>@@C00!B<;!_@F)R)F)\"G0:<`B`@`` -M*<&)B[A$``"#N]Q9````=`A(B=_H`````$B+="0(2(G?_Q0DBX.X1```.X.\ -M1```=8-(@\006\-F9F:09F:09F:09F:04[@`````2(-_:`!T($B+7VA(BP-( -MB4=HNJ````"^`````$B)W^@`````2(G86\.02(M':$B)!DB)=VC#9F9FD$B# -M/P!T&DB+!TB+0$A(B49(2(L'2(EP2.L*9F:09F:02(EV2$B)-\-F9F:09F9F -MD$B#["A(B5PD"$B);"003(ED)!A,B6PD($F)_4B)]4B#/@!T/4R+)DB+10!( -MBUA(2#G8=0Q(QT4``````.L.9I!(BU4`2(M#2$B)0DA(B=Y,B>__4U!,.>-T -M!TB#?0``=<9(BUPD"$B+;"003(MD)!A,BVPD($B#Q"C#9F:09F:02(/L"(`_ -M"'4'Z`````!FD$B#Q`C#9F9FD&9F9I!F9I!(@^P(2(GQ2(M'$(`_"'4'Z``` -M``#K"TB)UDB)QV9FD/_12(/$",-F9I!F9I!F9I!(@^QH2(E<)#A(B6PD0$R) -M9"1(3(EL)%!,B70D6$R)?"1@28GT28G/08G52(MO,$0/MC=!#[;>B=Y(B>_H -M`````+H`````B=Y(B>_H`````,<$)`````!!N0````!!N`````"Y`````+H# -M````B=Y(B>_H`````+H`````A<`/A+T```!!]\0```#P#Y7`#[;(08#],`^4 -MP$0/MM!!_\)!#[;V00^VQ87)=!%!@/T@NC0```"X)`````]%PHE$)#"X0``` -M`(7)=0E$B>#!Z!B#R$")1"0H3(G@2,'H$`^W^$`/ML>)1"0@3(G@2,'H"`^V -MP(E$)!A!#[;4#[?"A_H`````(G#00^V]DB)[^@`````B=J)T$B+7"0X2(ML -M)$!,BV0D2$R+;"103(MT)%A,BWPD8$B#Q&C#9F9FD&9FD&9FD(GX@^`#P>`- -M!0`@``!`]L<$=`T%```#`,-F9F:09F:0!0```@##9F9FD&9FD&9FD$%455-) -MB?R)];\@H0<`Z`````"[(*$'`$`/MOWHK____XVH'`$``$F+?"00B>[H```` -M`(3`>`FX`0```.L?9I"_$"<``.@`````@<,0)P``@?L_2TP`=L^X`````%M= -M05S#9F9FD&9F9I!F9I!F9I!(@^P82(E<)`A,B60D$$F)_$`/MO[H1O___XG# -MC7,(28M\)!"Z`````.@`````C7,,28M\)!"Z&`$``.@`````2(M<)`A,BV0D -M$$B#Q!C#D%-(B?M`#[;^Z`/___^-<`Q(BWL0N@````#H`````%O#28G1N@`` -M``!,C4<*BT$0B0>+012)1P2#.0"X`0````]$T$$/MD$$`<`)PF:)5PB+AD0" -M``"%P`^4PH/X`@^4P`G0J`$/A&8!``"#>00!#X7<````9@^V00^`S!%F08D` -M28/``F8/MD$.@,P19D&)`$F#P`)!#[9!!,'@`V8E^`"`S!)F08D`28/``F8/ -MMD$+@,P39D&)`$F#P`)F#[9!"(#,$V9!B0!)@\`"9@^V00R`S!1F08D`28/` -M`F8/MD$)@,P49D&)`$F#P`)F#[9!#8#,%69!B0!)@\`"9@^V00J`S!5F08D` -M28/``F9!QP!`%DF#P`*#.0!U&8.^1`(```*Z)@```+A@````#T7"Z:`!``"# -MOD0"```"NC8```"X80````]%PNF'`0``9F9FD&8/MD$.@,P19D&)`$F#P`)! -M#[9!!,'@`V8E^`"`S!)F08D`28/``F8/MD$(@,P39D&)`$F#P`)F#[9!"8#, -M%&9!B0!)@\`"9@^V00J`S!5F08D`28/``HM!""4````/P>@89@U`%F9!B0!) -M@\`"@SD!&<"#X/N#Z#3I!0$``&:0@WD$`0^%EP```&8/MD$/@,P29D&)`$F# -MP`)F#[9!#H#,$F9!B0!)@\`"9@^V00N`S!-F08D`28/``F8/MD$(@,P39D&) -M`$F#P`)F#[9!#(#,%&9!B0!)@\`"9@^V00F`S!1F08D`28/``F8/MD$-@,P5 -M9D&)`$F#P`)F#[9!"H#,%69!B0!)@\`"9D''`$`628/``H,Y`1G`@^#P@\`U -MZV)F#[9!#H#,$F9!B0!)@\`"9@^V00B`S!-F08D`28/``F8/MD$)@,P49D&) -M`$F#P`)F#[9!"H#,%69!B0!)@\`"BT$()0````_!Z!AF#4`69D&)`$F#P`*# -M.0$9P(/@_H/H-F8/ML!F#0"79D&)`,-(@^Q(2(E<)!A(B6PD($R)9"0H3(EL -M)#!,B70D.$R)?"1`B?")5"042(G-3(MG$`^VP$B+1,?H`````&8/ML!FB44$ -M18V]$`$``$2)_DR)Y^@`````9@^VP&:)109%C;44`0``1(GV3(GGZ`````!F -M#[;`9HE%"(-\)!0!=6JZ@````(MT)!!,B>?H`````(MT)`Q,B>?H`````,'@ -M"&8)10*)WDR)Y^@`````P>`(9@E%!$2)_DR)Y^@`````P>`(9@E%!D2)]DR) -MY^@`````P>`(9@E%"+H`````BW0D$$R)Y^@`````08VU&`$``$R)Y^@````` -MB$4*08VU'`$``$R)Y^@`````B$4+2(M<)!A(BVPD($R+9"0H3(ML)#!,BW0D -M.$R+?"1`2(/$2,-F9F:09F:02(/L:$B)7"0X2(EL)$!,B60D2$R);"103(ET -M)%A,B7PD8$F)_XGS9HE4)!X/ML-,BW3',$&+=CR#QC!(BW\0Z`````!(B<6# -MY1](C42M`$C!X`1*C:PP4`(``(-]``%T74B-12!(B40D$$R-9"0@BU`$1`^V -MZTR)X42)[DR)_^CL_?__0?Z.90P``$B+7"002(M+($F+?C!,B20D0;D````` -M1`^W1"0>N@$```!$B>[_4QA(B>Y,B??H(A,``$B+7"0X2(ML)$!,BV0D2$R+ -M;"103(MT)%A,BWPD8$B#Q&C#9F9FD&9F9I!F9F:09F:02(/L:$B)7"0X2(EL -M)$!,B60D2$R);"103(ET)%A,B7PD8$F)_T&)]<=$)!0`````B?$/ML%(BVS' -M,$&^``````^W`F:)1"082(U,)!@/MT("9HE!`HM"!(E!!`^W1"082(G#@^,? -M2(T$FTC!X`1(C9PH4`(```^W00*$P'0JQT0D%`$````/MT$"1`^V\&9!@%8`P```````#'A4`"````````3(UC($B-1"08#[=``J@$=!=(C4PD($&+ -M5"0$00^V]4R)_^BQ_/__D(,[`0^$EP```/Z-90P``$B-1"081(M(!$F+3"0@ -M10^V[4B+?3!(C40D($B)!"1%#[?&BU0D%$2)[D'_5"082(G>2(GOZ-<1``"# -MO6`,````=$Y(@[U0#````'1$2(N%4`P``(-X&`%U-T2)[DR)_^@L%```2(NU -M4`P``$B)[^A]%0``AQ"^+`T``.@`````2(M[$+[P!`$` -MZ`````")ZO?2(=!$">A(BWL0B<*^\`0!`.@`````2(M[$+[P!`$`Z`````!( -MBWL01(GBOBP-``#H`````$B+7"0(2(ML)!!,BV0D&$R+;"0@2(/$*,-F9F:0 -M9F9FD&9F9I!F9I!(@^Q(2(E<)!A(B6PD($R)9"0H3(EL)#!,B70D.$R)?"1` -M28G^08G,1(E,)!1(BT<02(E$)`C'1"0$`````$2-/+4`````00G71(GZ#[;" -M3(MLQS!%AY,B??H_/S____#@^,? -M1#GC=>)!@[U@#````+@!````#T5$)`2)1"0$08F=\`P``(-\)!0`#Y7"@WPD -M!``/E<`)T*@!#X3P`0``00^V_^AB]O__1(U@"$2)YDB+?"0(Z`````")Q0^W -MV(G:]])$B>9(BWPD".@`````]L,(#X0<`0``387M=!9!QX5@#````````$'' -MA4`"````````08.^D`````%T"D&#OI0````!=12^``$``$2)^=/FB?),B??H -MW_W__T&#OHP````!=!1!@[Z0`````70*08.^E`````%U#D$/MO=,B??HQ0D` -M`.M_08.^B`````%T"D&#OHP````!=6M!#[;?B=_HI/7__T2-8"BZ!````$2) -MYDB+?"0(Z`````!$B>9(BWPD".@`````OQD```#H`````+H`````1(GF2(M\ -M)`CH`````$2)YDB+?"0(Z`````"_T`<``.@`````B=Y,B??H!`@``$$/MM^) -MWDR)]^@`````A<`/A;,```")V;H`````O@$```!,B?=!_U8HZ9L```!`]L40 -M=$Y!#[;W3(GWZ,0'``!!@[Z0`````70*08.^E`````%U%[X``0``1(GYT^:Z -M`````$R)]^C)_/__00^VS[H!````O@$```!,B?=!_U8HZT%0`(```````!!#[;W3(GWZ.SY__^# -M/0`````!=0A,B>_H2Q$``$B+7"082(ML)"!,BV0D*$R+;"0P3(MT)#A,BWPD -M0$B#Q$C#9F9FD&9F9I!(@^P(28GXC0RU``````G1#[;!2(M\QS!(A?]U$P^V -M\4R)Q^BH#@``ZTMF9I!F9I!(B[=0#```2(7V=10/MO%,B!#H`````/_%@?W_````=LZ!:Q```0``ZSN]`````$&+ -M="0\@<8``0``28M$)#!(BW@0Z`````!(BU,(9HD"2(-#"`+_Q8']_P```';1 -M@6L0``$``+@!````6UU!7,-(@^Q(2(E<)"!(B6PD*$R)9"0P3(EL)#A,B70D -M0$B)_4F)]$&)U4&^`````$B-7B!(C4PD$(M3!`^V-TB+?S#HW/3__T&#_0%U -M#4&V`<>%8`P```````!(BTLH#[9U`$B+?3!(C40D$$B)!"1!N0````!!N``` -M``!$B?+_4R!,B>9(B>_H!PH``$&#_0%U$8,]``````%U"$B)[^B`#0``2(.] -M4`P````/A*,```!(B[50#```@WX8`74F2(GOZ*T-``"%P`^%A@```$B+M5`, -M``"Z`0```$B)[^@A____ZW"#O40"````=2H/MG4`2(M],.C9"@``BW4\@\8H -M2(M%,$B+>!#H`````+\!````Z``````/MG4`2(M],.@/"P``2(N=4`P``$B% -MVW0D@WL8`'4>2(U3($B)WDB)[^AN#```2(M;"$B%VW0&@WL8`'3B2(M<)"!( -MBVPD*$R+9"0P3(ML)#A,BW0D0$B#Q$C#D$%505154TB#[`A(B?M(BTY,B>?H`````*@$=#&Z`@```(GN3(GGZ`````")[DR)Y^@` -M````O]`'``#H``````^V,TB+>S#H1@(``.L108UU*+H"````3(GGZ`````#& -M@T@"````QH-D#````,:#90P```#'@^P,````````QX/P#````````,>#0`(` -M``````#'@^@,```@````N@````"02&/"B92#:`P``/_"@_H??N^Z`````$AC -MPDB-!(!(P>`$QX084`(```$```#_PH/Z'W[C2,>#4`P```````!(QX-8#``` -M`````,>#8`P```````!!C74(N@````!,B>?H`````$&-=0RZ&`$``$R)Y^@` -M````BU,@08UU$$R)Y^@`````BU,D@>(`_/__08UU%$R)Y^@`````2(M#,+H` -M````@[BD`````'0#BU,D08UU&$R)Y^@`````BU,H08UU'$R)Y^@`````2(M# -M,+H`````@[BD`````'0#BU,D08UU($R)Y^@`````BU,LL@!!C74D3(GGZ``` -M``"X`0```$B#Q`A;74%<05W#9F:09I!!5T%6055!5%532(/L.$B)^XE4)!Q! -MB<^%]@^%H@```+T`````3(UT)"!F9I!F9I!(8\5(C02`2,'@!$@!V(.X4`(` -M``!U<$B-D&`"``"#>@@!=1.+4A1,BZ"8`@``3(NHD`(``.LB2&/%2(T$@$C! -MX`1(`=B+D'0"``!,BZ"0`@``3(NHB`(```^V,TB+>S!,B?'H6/'__P^V,TB+ -M>S!,B30D0;D`````10^WQTR)X8M4)!Q!_]7_Q8/]'P^.;O___TB#Q#A;74%< -M05U!7D%?PV9F9I!F9F:09F9FD&9FD$B#["A(B5PD"$B);"003(ED)!A,B6PD -M($B)^XGUB>B#X`1!B<5!P>T"0;P#````02'L@[^(`````70)@[^,`````75: -M00^V],'F"('&#`$``(V&```#`('&```"`$6$[0]%\$B+>Q#H`````(G!@^'\ -M@\D!00^V],'F"('&#`$``(V&```#`('&```"`$6$[0]%\$B+>Q")RN@````` -M00^V],'F"('&=`$``(V&```#`('&```"`$6$[0]%\$B+>Q#H`````(G!@.$? -MB>@/MM`/MH0:M0```,'@!27@````"<&`Y>8(@<9T`0``C88```,`@<8```(`183M#T7P2(M[$(G*Z`````!(BUPD -M"$B+;"003(MD)!A,BVPD($B#Q"C#9F:09F:02(/L&$B)'"1,B60D"$R);"00 -M2(G[1`^V[D2)[^C?Z___1(U@*$2)[DB)W^C`[/__2(M[$+H$````1(GFZ``` -M``!(BWL01(GFZ`````"_&0```.@`````2(M[$+H`````1(GFZ`````!(BWL0 -M1(GFZ`````!$B>Y(B=_H0?[__T2)[DB)W^@6[/__2(L<)$R+9"0(3(ML)!!( -M@\08PV9FD$%7059!54%455-(@^P(2(G]QD0D!P!!O@`````/MD0D!T2-/(4` -M````9F9FD&9FD$.-!#Y$#[;H1(GOZ"#K__]!B<1!C5PD*$B+?1"Z`@```(G> -MZ`````!(BWT0B=[H`````$2)[DB)[^CR_O__2(M]$+H`````B=[H`````$B+ -M?1"Z'P$``$2)YN@`````08UT)`1(BWT0N@````#H`````$&-="0(2(M]$+H` -M````Z`````!!C70D#$B+?1"Z`````.@`````08UT)!!(BWT0N@````#H```` -M`$&-="042(M]$+H`````Z`````!!C70D&$B+?1"Z`````.@`````08UT)!Q( -MBWT0N@````#H`````$&-="0D2(M]$+H`````Z`````!!C70D($B+?1"Z```` -M`.@`````08UT)"Q(BWT0N@````#H`````$&-="0T2(M]$+J\````Z`````!! -M_\9!@/X##X;#_O__@'PD!P$9VV:[``"!PP```P"-Z`````#^ -M1"0'@'PD!P$/AB#^__](@\0(6UU!7$%=05Y!7\-F9F:09F9FD&9FD$B#[`A( -MBW\0NO__SP^^;`0!`.@`````2(/$",-F9F:04TB)^XM'!+``/0``@%!T(4B+ -M?Q"^+`T``.@`````@\@!2(M[$(G"OBP-``#H`````$B+>Q"^``T``.@````` -M)?__`/](BWL0B<*^``T``.@`````2(M[$+H`````O@0-``#H`````$B+>Q"Z -M`````+XX#```Z`````!(BWL0NO\``0"^!!T``.@`````2(M[$+H`````OF0= -M``#H`````$B+>Q"Z`````+XH#```Z`````!(BWL0N@````"^6!T``.@````` -M2(M[$+H`````OEP=``#H`````$B+>Q"Z`````+Y`'0``Z`````!(BWL0N@`` -M``"^1!T``.@`````2(M[$+H`````OD@=``#H`````$B+>Q"Z`````+Y0'0`` -MZ`````!;PV9FD&9FD&9FD$C'1@@`````2(N'6`P``$B)1A!(@[]8#````'0+ -M2(N'6`P``$B)<`A(B;=8#```2(._4`P```!U!TB)MU`,``#SPV9F9I!F9F:0 -M9F:09F:02(-^"`!U&DB+1A!(B8=8#```2(7`=!9(QT`(`````.L,2(M6"$B+ -M1A!(B4(02(-^$`!U'$B+1@A(B8=0#```2(7`=!A(QT`0`````.L.9I!(BU80 -M2(M&"$B)0@A(QT8(`````$C'1A``````PV9FD$B#[!A(B1PD2(EL)`A,B60D -M$$F)_$B)]4B)TX,Z`'442(UR"$B-?2"Z*````.@`````ZQI(C7((2(U](+HP -M````Z`````!!_H0D9`P``(L#B4482(GN3(GGZ.+^___'10``````0?Z$)$@" -M``!(BQPD2(ML)`A,BV0D$$B#Q!C#2(/L$$B)'"1(B6PD"$B)^TB)]8-^&`!T -M!OZ/9`P``$B)[DB)W^CF_O__BX/H#```B<$/ME4$B92+:`P``/_`B8/H#``` -MQT4``0```/Z+2`(``$B+'"1(BVPD"$B#Q!##0(#_`W810`^VSXU,"0*X`0`` -M`$C3X,-`#[;/C4P)`;@!````2-/@PV9F9I!F9F:005154TF)_(N?@````$`/ -MMNZ)[^BX____"=A!B80D@````(GOZ`?F__^-L!P!``!)BWPD$.@`````B>F# -MX0.Z``$``-/B]]*)Z(/@!,'X`H/X`1GV9KX``('&%``#`$F+?"00Z`````!) -MBWPD$+YD'0``Z``````YV'4F08N4)(````!)BWPD$+YD'0``Z`````!)BWPD -M$+YD'0``Z`````!;74%@"B=F#X0.Z`0$``-/B]](\`1GV9KX``('&%``#`$R)[^@` -M````08MT)#R#Q@BZ`````$R)[^@`````#[;S3(GWZ!;___^-M1P!``!,B>_H -M`````$''A"1,`@```0```(UU*+H!````3(GOZ`````!(BQPD2(ML)`A,BV0D -M$$R+;"083(MT)"!(@\0HPV9F9I!F9F:09F9FD&9FD$%6055!5%5328G]08GV -MO0````!,BV<0B?(/ML)(BT3',(M8/,>`0`(```````"-?H`````*@!=!:_Z`,``.@`````_\6!_><#``!VWNL-@?WG -M`P``9F:09I!V#$$/MO9,B>_HPO?__T$/MO9,B>_HAOW__UM=05Q!74%>PV9F -M9I!F9I!F9I!F9I!!5%-(@^P(2(G[2(G12(M',$R+8!"+O^P,``!(P><%2`-[ -M$$B)\DB)WNB"Y/__BX/L#```_\"#X!^)@^P,``#^@V4,``"+4R2!X@#\___! *** 2465 LINES SKIPPED *** From owner-dev-commits-src-main@freebsd.org Mon Apr 12 20:01:44 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0B5545DCB09; Mon, 12 Apr 2021 20:01:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FK04R3V3Qz4qkJ; Mon, 12 Apr 2021 20:01:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5F4941DB5E; Mon, 12 Apr 2021 20:01:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CK1hZa049384; Mon, 12 Apr 2021 20:01:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CK1g1w049379; Mon, 12 Apr 2021 20:01:42 GMT (envelope-from git) Date: Mon, 12 Apr 2021 20:01:42 GMT Message-Id: <202104122001.13CK1g1w049379@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 662053e8dcca - main - hptrr: Move to using .o files MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 662053e8dccae2e5d1534bf83acbe7bc49e5843e Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 20:01:44 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=662053e8dccae2e5d1534bf83acbe7bc49e5843e commit 662053e8dccae2e5d1534bf83acbe7bc49e5843e Author: Warner Losh AuthorDate: 2021-04-12 19:41:25 +0000 Commit: Warner Losh CommitDate: 2021-04-12 19:47:55 +0000 hptrr: Move to using .o files Use .o files directly. Replace the .o.uu files that we uudecode with .o files. Adjust the kernel and module build to cope. Suggestions by: markj@, emaste@ Sposnored by: Netflix, Inc Differential Revision: https://reviews.freebsd.org/D29636 --- sys/conf/files.x86 | 5 +- sys/dev/hptrr/amd64-elf.hptrr_lib.o | Bin 0 -> 608416 bytes sys/dev/hptrr/amd64-elf.hptrr_lib.o.uu | 13551 ------------------------------- sys/dev/hptrr/i386-elf.hptrr_lib.o | Bin 0 -> 399128 bytes sys/dev/hptrr/i386-elf.hptrr_lib.o.uu | 8900 -------------------- sys/modules/hptrr/Makefile | 5 +- 6 files changed, 2 insertions(+), 22459 deletions(-) diff --git a/sys/conf/files.x86 b/sys/conf/files.x86 index 0a3e6b67b7db..0a2cd1554eb4 100644 --- a/sys/conf/files.x86 +++ b/sys/conf/files.x86 @@ -107,10 +107,7 @@ dev/hptnr/$M-elf.hptnr_lib.o optional hptnr dev/hptrr/hptrr_os_bsd.c optional hptrr dev/hptrr/hptrr_osm_bsd.c optional hptrr dev/hptrr/hptrr_config.c optional hptrr -hptrr_lib.o optional hptrr \ - dependency "$S/dev/hptrr/$M-elf.hptrr_lib.o.uu" \ - compile-with "uudecode < $S/dev/hptrr/$M-elf.hptrr_lib.o.uu" \ - no-implicit-rule +dev/hptrr/$M-elf.hptrr_lib.o optional hptrr dev/hwpmc/hwpmc_amd.c optional hwpmc dev/hwpmc/hwpmc_intel.c optional hwpmc dev/hwpmc/hwpmc_core.c optional hwpmc diff --git a/sys/dev/hptrr/amd64-elf.hptrr_lib.o b/sys/dev/hptrr/amd64-elf.hptrr_lib.o new file mode 100644 index 000000000000..57fda78e6107 Binary files /dev/null and b/sys/dev/hptrr/amd64-elf.hptrr_lib.o differ diff --git a/sys/dev/hptrr/amd64-elf.hptrr_lib.o.uu b/sys/dev/hptrr/amd64-elf.hptrr_lib.o.uu deleted file mode 100644 index 8f275f2a74a1..000000000000 --- a/sys/dev/hptrr/amd64-elf.hptrr_lib.o.uu +++ /dev/null @@ -1,13551 +0,0 @@ -/* - * Copyright (c) HighPoint Technologies, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 644 hptrr_lib.o -M?T5,1@(!`0D```````````$`/@`!`````````````````````````+!C!@`` -M`````````$```````$``$``-`//#9F9FD&9F9I!F9I!F9I"X`````,-F9F:0 -M9F:09F:0\\-F9F:09F9FD&9FD&9FD+@`````.ST`````?3=(8\=(Q\$````` -M2(T$@$C!X`(/MQ0(9HD6#[=4"`)FB58"#[94"`B(5@@/MD0("8A&";@!```` -M\\-F9F:09F:09F:0055!5%530;P`````0;K__P``1(LM`````+L`````1(GM -M0;D`````08GK9F:09F:0O@````!$.=Y]/4C'QP````!%B=A(8\9(C02`2(T, -MA0`````/MT0Y`L'@$`^W%#D)T$0YT'4*_T0Y#&9FD&9FD/_&1#G&?,U!_\%! -M@/D'=K#_PX#['W::0?_$08#\_W6)6UU!7$%=PV9FD&9FD&9FD%532(G]2(GS -M@ST``````'4/QP4``````0```.A`____2(7;=`/&`P"Y`````#L-`````'U' -M2,?&`````&9F9I!(8\%(C02`2(T4A0````"+10`Y!#)U&TB%VW0(BX(````` -MB`-(8\%(C02`#[9$A@SK#__!.PT`````?,2X`````%M=PV9F9I!F9F:09F9F -MD+C(,P``PV9F9I!F9I!F9I"XB`(``,-F9F:09F:09F:04TB)^TB#OY@R```` -M=1)(BW\0Z`````"(0P%F9I!F9I"`>P$"=!=(@[N8,@```'0B2(N#F#(``(!X -M`0)U%;X`````2(G?Z`````!(B=_H`````+@`````2(.[F#(```!U!H![`0!T -M!;@!````6\-FD$%455-(B?U!B?1(B=-(B<^Y`````+K(,P``2(G89F:0B`A( -M_\!(_\IU]HL5`````(U"`8D%`````(@32(E["`^W10(]0"(```^$I@```#U` -M(@``?TT]$"(```^$J@```#T0(@``?R0]0!<``&9F9I`/A)0````]0A<``&9F -MD&:0#X2$````Z8<````]("(``'1B/20B``!T6V9F9I!F9I#K<#T@(P``=$L] -M(",``&:0?Q(]`",``'1)/1`C``!FD'1`ZTX]0",``&9F9I!F9I!T(CU`(P`` -M?PL](B,``&:0=!+K+CTB)0``9F9FD&9FD'08ZQYFQT,$@6!F9I!F9I#K&&;' -M0P1"<.L09L=#!$)@ZP@/MT4"9HE#!`^V10B(0P(/MT,$9CU"<`^4PF8]0F`/ -ME,`)T*@!=`G&@\@R```#ZQ%F@7L$@6`/E,#_P(B#R#(``&:!>P2!8+D```@` -MN```$``/1,BZ`````+X`````Z`````!(B4,01(FC"#,``$B+10!(B8,,,P`` -MBT4(B8,4,P``N0`````[#0````!]-4G'P`````!(Q\8`````BST`````2&/! -M2(T$@$B-%(4`````BT4`0CD$`G4#_P0R_\$Y^7S?N`$```!;74%@`````2(F%\#(``$B-M:@S``!(C;T8,P``Z``` -M``!(B86@,P``2(VUN#,``$B-O3@S``#H`````$B)A;`S``!(C;UX,P``Z``` -M``!(B868,P``2(M]"+X0````Z`````")A0`S``!(BWT(OA0```#H`````(F% -M!#,``$B+?0B^/````.@`````B(7Y,@``2(M]"+X$````Z`````!FB87\,@`` -M2(M]"+X,````Z`````"(A?HR``!(BWT(O@T```#H`````(B%^S(``$&\```` -M`$2)X@^VPL=$A1@!````QT2%'`$```!!_L1TY<>%C#(``.9_UP#'A9`R``#F -M?]<`QX6(,@``<>,'`4C'12``````2(GOZ`````"Z`````(7`#X2J````0;P` -M````1(GB#[;"2&G`F`P``$@!Z$B-6"A(B6LH1(A@*$$/MO2)\,'@"DB82(G" -M2`.5H#,``$B)4PA(`X6H,P``B4,<2,'H((E#&(GPP>`(2)A(B<)(`Y6P,P`` -M2(E3$$@#A;@S``")0R1(P>@@B4,@2(GOZ`````#'0S0!````QD,!`$C'@R`, -M````````0?_$08#\`P^&:?___TB)[^@`````N@$```")T%M=05S#2(/L&$B) -M'"1(B6PD"$R)9"002(G[B?5(BW\H3(MG$(![`0(/E,!`@/X/#Y7"#[;`A<)T -M'$`/MM8/MC-!N/____^Y`0```.@`````9F:09I!`#[;U2(G?Z`````"+0S!" -MQH0@(`$```:+0S!"#[:$("`!``"(!0````"_"@```.@`````2(M#*(M3,$B+ -M0!#&A!`@`0```$B+0RB+4S!(BT`0#[:$$"`!``"(!0````!(BQPD2(ML)`A, -MBV0D$$B#Q!C#9F9FD&9FD&9FD&9FD$B#[!A(B5PD"$R)9"002(M'*$R+8!"+ -M7S!`#[;VZ`````")VT(/MH0C'`$``(@%``````^VP$B+7"0(3(MD)!!(@\08 -MPV9F9I!F9F:09F:0055!5%532(/L&$B)^TB+1S!,BV`H1`^V*$B-;SCVA:`` -M``#@=#:Y`````$B)[H"]_@$``*5U);H`````9F9FD`^WP@(,,/_"9H'Z_P%V -M\;H`````A,D/A=<#``#VA?X````!=0:`?0``>0.`"PCVA:T````$="#'0P@! -M````BX7,````2,'@((N5R````$@)T$B)0RCK*L=#"`````#V16H!=!:+17([ -M17AS!8M%>.L#BT5R2(E#*.L'BT5X2(E#*`^V56>`^@6X``````]#T/9%:@)T -M*O9%8PAT)("]@`````!T&P^VA8````"H`G4+J`%T#+H#````ZP6Z!````(G0 -M@\@(B$,'QD,&_[H`````]D5J!`^$&`,```^WA;````"Z!@```*A`=2NZ!0`` -M`*@@=2*Z!````*@0=1FZ`P```*@(=1"Z`@```*@$=0>)PM'J@^(!B="#R$"( -M0P;V@^0````$=#T/ME,%00^V]<=$)`@`````QP0D`````$&Y`````$&X```` -M`+D!````3(GGZ`````"Z`````(7`#X2/`@``]H/<````('1WQT,,`0```$B# -MNW@"````=0?'0Q`!````#[>#X@```,'H!8/@`3E#$'14@WL0`1G)@>&````` -M@\$"#[93!4$/MO7'1"0(`````,<$)`````!!N0````!!N`````!,B>?H```` -M`(7`=1:#>Q``#Y3`#[;`B4,0ZP?'0PP`````]H/<````0'1WQT,4`0```$B# -MNW@"````=0?'0Q@!````#[>#X@```,'H!H/@`3E#&'14@WL8`1G)@^&K@<&J -M````#[93!4$/MO7'1"0(`````,<$)`````!!N0````!!N`````!,B>?H```` -M`(7`=1:#>Q@`#Y3`#[;`B4,8ZP?'0Q0`````#[93!4$/MO7'1"0(`````,<$ -M)`````!!N0````!!N`````"Y`P```$R)Y^@`````N@````"%P`^$1`$``$0/ -MMD,'#[93!4$/MO7'1"0(`````,<$)`````!!N0````"Y`P```$R)Y^@````` -MN@````"%P`^$"`$``+H`````@'L&_P^$^0```$4/MNU$#[9#!@^V4P7'1"0( -M`````,<$)`````!!N0````"Y`P```$2)[DR)Y^@`````AY,B>?H`````(7`#X23````_DL&ZZRZ`````.F7````#[9#!H/H.(A# -M`HA#`_:%I@```"!T(_:%K````"!T#0^V`X/@GX/(0(@#ZQ`/M@.#X)^#R""( -M`^L#@".?]H/1`````0^5P`^VP(E#'/:#W@````(/E<`/ML")0R"#>QP`=02% -MP'0E#[:#S@```(/@'__`B$,D/"!U%L9#)!_K$&9FD&:0N@````#K#,9#)`*` -M"P*Z`0```(G02(/$&%M=05Q!7<-!54%455-(@^P(2(G[08GTO0````"`?P(` -M=D)F1`^V[HGJ#[;"2(N4P_@+``!(A=)T(T0X8P)S"T2)Z/9S`HA")>L$QD(E -M`4B+2 -M#````<:'DPP```&Z`````(!_`@!V/F9F9I!F9I`/ML)(BX3'^`L``$B%P'0@ -M]@`"=!N#>!P`=0?&AY(,````@W@@`'4(QH>3#````)#_PCA7`G?)@+^2#``` -M`'07@+^3#````'0.QH>2#````,:'DPP```#SPV9F9I!F9I!(@^PH2(D<)$B) -M;"0(3(ED)!!,B6PD&$R)="0@2(G]3(MW*$0/MB]!O`````"+7S3H2____X7; -M=0^`O9,,````N`$````/1-B#^P)U$X"]D@P```"X`0````]$V&9F9I"#^P&X -M'P```$0/1>"`?0$!#Y7`#[;`B45,00^VS$$/MO6)VDR)]^@`````N@````"% -MP'0\00^V]$B)[^AP_O__00^V]4R)]^@`````N@````"%P'0;00^V];H````` -M3(GWZ`````"Z`0```&9FD&:0B=!(BQPD2(ML)`A,BV0D$$R+;"083(MT)"!( -M@\0HPY!54TB#[`A(B?V[`````&:0#[;#2(N4Q?@+``!(A=)T#DB+=2B_!@`` -M`.@`````_\.`^P1VV\:%20P```!(@\0(6UW#9F9FD&9FD&9FD&9FD$B#[`C' -MAU@,``#`X>0`N@`````/ML)(BX3'^`L``$B%P'0=2(.X<`(```!T$TC'AR`, -M````````N`$```#K$I#_PH#Z!';,Z&3___^X`````$B#Q`C#9F9FD&9FD&9F -MD(!_`0)(Q\``````2,?"`````$@/1,)(B8<@#```N`$```##9F9FD&9FD&9F -MD&9FD$%455-(B?U!O`````!F9I!$B>`/MM!(BYS5^`L``$B%VP^$S````$B# -MNW`"````=#1(BX-P`@``2,>#<`(```````!(QX35^`L```````!(B[N``@`` -MNO____](B=[_T.F.````2(.[>`(```!T(4B+@W@"``!(QX-X`@```````$B+ -MNX`"``#_T&9FD&9FD`^V`X/@D#R`=59!#[;,#[95`$B+12@/MC!(Q\<````` -MN`````#H`````(`C?TB+=2A(B=J_`0```.@`````2(M]*.@`````#[9U`$B+ -M?2BZ`0```.@`````9F9FD&9FD(`C_4'_Q$&`_`0/AA#____&10$`2,>%(`P` -M``````"X`0```%M=05S#9F9FD&9FD$%505154TB#[`A(B?U,BV\H1`^V)\>' -M6`P``("$'@"Y``````^VP4B+A,7X"P``2(7`=`Y(@[AX`@````^%.P$``/_! -M@/D$=MN`?0$"#X7]````9L>%E@P`````N0````"Z`0````^VP4B+A,7X"P`` -M2(7`=!5(@[AP`@```'0+B=#3X&8)A98,``#_P8#Y!';49H.]E@P````/A/`` -M``"#?4@`=!U!#[;_H`````+H`````B=Y,B>_H`````$$/MO1,B>_H -M`````(7`=1)(QX4@#````````+`!Z;@````/ME4"00^V]$B-3"0&3(GOZ``` -M``"%P+@`````9@]%1"0&9HE$)`8/MX66#```9B-$)`9FB866#```9H7`=!G& -MA9`,``#_2,>%(`P```````"X`0```.M@2,>%(`P```````"X`0```.M.D$B# -MO?@+````=#9(BX7X"P``2(.X<`(```!T)4C'A2`,````````N`$```#K($C' -MA2`,````````N`$```#K#I!(B>_H:/S__[@`````2(/$"%M=05Q!7<-F9F:0 -M9F9FD$%505154TB#[`A(B?U,BV?H`````+H`````B=Y,B>?H`````+L`````#[;#2(N,Q?@+``!( -MA#X'T)T(@!_\.`^P1VV,9%`@%!#[;U3(GGZ`````"% -MP$C'P`````!(Q\(`````2`]$PDB)A2`,``"X`0```$B#Q`A;74%<05W#9F:0 -M9F:09F:04TB)^^@`````2,>#(`P```````#'@R@,``!`#0,`N`````!;PV9F -M9I!F9F:09F:04TB)^^@`````A#(`P```````"X`0```.F2```` -M@:M8#```0`T#`,>#*`P``$`-`P"X`````.MW9F9FD$B)W^@`````@'L!`749 -MQH.0#````$C'@R`,````````N`$```#K3`^V$TB+0R@/MC!(Q\<`````N``` -M``#H`````+X/````2(G?Z!'S__](QX,@#````````,>#6`P``("6F`#'@R@, -M``"@A@$`N`````!;PV9F9I!F9F:09F:055-(@^P(2(G]B?-`#[;V3(U$)`2Y -M0````+H/````Z`````"Z`````(7`='L/MO-)B>"Y8````+H/````2(GOZ``` -M``"Z`````(7`=%KV1"0$"'0H@PPD"`^V\T2+!"2Y8````+H/````2(GOZ``` -M``"Z`````(7`="WK)H,D)/+H`````+H` -M````A<`/A,0```"Z`````(!\)`8`#X2T````#[;#2&G`F`P```^V5"0&@/H& -MN04````/0]&(5"@J9H$\)*L1=1H/ML-(:<"8#```#[94)`;_RHB4*+D,``#K -M$@^VPTAIP)@,``#&A"BY#`````^V\T&X`````+DA````N@\```!(B>_H```` -M`+H`````A_H# -M(`P```````"X`0```.E:`0``@:M8#```H(8!`,>#*`P``*"&`0"X`````.D\ -M`0``2(GA0`^V];H`````3(GGZ`````"`?"0"`74'@'PD!`%T%4C'@R`,```` -M````N`$```#I!0$``(!\)`9I=1"`?"0(EG4)QD,!`F9FD.L$QD,!`8![`0%U -M'\>#6`P``("6F`!(QX,@#````````+@!````Z<4```!`#[;U3(GGZ/G]__^% -MP`^$G````+D`````N@$````/ML%(BX3#^`L``$B%P'0F2(.X<`(```!U'$B# -MN'@"````=1*`.`!X#8G0T^#WT&8A@Y8,``#_P8#Y!';#@+N4#````'0-2,># -M(`P```````#K.,:#D`P``/^`NY4,````=!T/MX.6#```#[:+E0P``/_)T_BH -M`74'QH.5#````$C'@R`,````````N`$```#K%4C'@R`,````````N`$```!F -M9I!FD$B+7"002(ML)!A,BV0D($B#Q"C#9F9FD&9F9I!F9F:02(/L.$B)7"0( -M2(EL)!!,B60D&$R);"0@3(ET)"A,B7PD,$B)_0^VGY`,``#_PSA?`G8D#[;# -M2(.\Q?@+````=`\/MX66#```B=G3^*@!=0?_PSA=`G?<.%T"#X4@`0``3(MM -M*$0/MF4`00^V]$R)[^@`````A%E@P`````00^V]$&X```!!+DA````N@\```!, -MB>_H`````+L`````@'T"``^&B````$4/MO1!OP$```#'1"0$``````^VPTB# -MO,7X"P```'1(1`^VXTR-1"0$N0$```!$B>)$B?9,B>_H`````(7`#X1R____ -M]D0D!@%T'0^VPTB+A,7X"P``QD`!`$2)^(G9T^!F"866#```#[;30;C_____ -MN0$```!$B?9,B>_H`````/_#.%T"=X)F@[V6#````'4-2,>%(`P```````#K -M!\:%D`P``/^X`0```.M#B)V0#```#[;#2(N$Q?@+``"(6`4/MO-(B>_HL>W_ -M_TC'A2`,````````QX58#```0$M,`,>%*`P``*"&`0"X`````$B+7"0(2(ML -M)!!,BV0D&$R+;"0@3(MT)"A,BWPD,$B#Q#C#9F9FD&9FD&9FD$B#[#A(B5PD -M$$B);"083(ED)"!,B6PD*$R)="0P2(G[3(MW*$0/MB\/MJ^0#```1`^VY42) -MYNCU[?__A,`/B@````#[832(M#*`^V,$2)X4C' -MQP````"X`````.@`````OZ"&`0#H`````("[E0P```!U.HU%`8B#E0P``$B) -MW^@`````2,>#(`P```````#'@R@,``!`#0,`QX-8#```P.'D`+@`````Z?(` -M``!`#[;U2(G?Z&;M__](B>%!#[;UN@````!,B??H`````$C'@R`,```````` -MN`$```#IO0```(&K6`P``*"&`0#'@R@,``"@A@$`N`````#IGP````^VDY4, -M``!`#[;-C4$!.<)U(@^V$TB+0R@/MC!(Q\<`````N`````#H`````,:#E0P` -M``!(QX,@#````````$B)X4$/MO6Z`````$R)]^@`````@'PD!CQU%8!\)`C# -M=0Y(QX,@#````````.LLD(!\)`8`=1F`?"0(`'422,>#(`P```````#K$&9F -MD&:02,>#(`P```````"X`0```$B+7"002(ML)!A,BV0D($R+;"0H3(MT)#!( -M@\0XPV:0059!54%455-(@^Q`2(G[3(MW*$0/MBH/ML),BZS' -M^`L``+D`````N@`"``!)C44X9F9FD&9FD(@(2/_`2/_*=?9`#[;500^V],=$ -M)#CL````QT0D,`````#'1"0H`````,=$)"``````QT0D&`````#'1"00```` -M`,=$)`@`````QP0D``$``$V-33A!N`````"Y`0```$R)]^@`````A#(`P` -M``````"P`>F$`0``2,>#(`P```````#'@U@,``"`P\D!QX,H#```0$(/`+@` -M````Z5L!``!`#[;M10^VY,=$)#CE````QT0D,`````#'1"0H`````,=$)"`` -M````QT0D&`````#'1"00`````,=$)`@`````QP0D`````$&Y`````$&X```` -M`+D`````B>I$B>9,B??H`````(7`#X2S````BT,P28M6$`^VA`((`0``B`4` -M````A,`/A98```#'1"0X0````,=$)#!`````QT0D*`````#'1"0@`````,=$ -M)!@`````QT0D$`$```#'1"0(`````,<$)`````!!N0$```!!N`````"Y```` -M`(GJ1(GF3(GWZ`````"%P'4/2,>#(`P```````"P`>MA2,>#(`P```````#' -M@U@,``"`P\D!QX,H#```0$(/`+@`````ZSM,B>_H'NK__X7`=!^`>P$"2,?` -M`````$C'P@````!(#T3"2(F#(`P``.L+2,>#(`P```````"X`0```$B#Q$!; -M74%<05U!7L-F9F:09F9FD&9FD&9FD$B#[!A(B5PD"$B);"002(G[#[:'D`P` -M``^VT$B+K-?X"P``#[;PZ%7I__^$P'E!@;M8#```/T(/`'<52,>#(`P````` -M``"X`0```.F0````@:M8#```0$(/`,>#*`P``$!"#P"X`````.MU9F:09I"H -M`7022,>#(`P```````"X`0```.M:]D4X!'042,>#(`P```````"X`0```.M" -M9I!(B>_H*.G__X7`=!^`>P$"2,?``````$C'P@````!(#T3"2(F#(`P``.L+ -M2,>#(`P```````"X`0```&9FD&:02(M<)`A(BVPD$$B#Q!C#D$B#["A(B5PD -M"$B);"003(ED)!A,B6PD($B)^P^V-TB+?RCH`````(7`=15(QX,@#``````` -M`+`!Z6,!``!F9I!(B=_HR.W__X3`=15(QX,@#````````+@!````Z3\!```/ -MMA-(BT,H#[8P2,?'`````+@`````Z`````!!O`````!$B>(/ML)(BZS#^`L` -M`$B%[0^$YP```$B#O7`"````=%],BZUP`@``2,>%<`(```````#V10`"=`M( -MBWLHZ`````#K$D2)X@^VPDC'A,/X"P```````+K_____]D4``G0-#[8#C02` -M00^VU(T4$$B+O8`"``!(B>Y!_]7I?@```$B#O7@"````=!M(BX5X`@``2,>% -M>`(```````!(B[V``@``_]`/MD4`@^"2/(!U3D$/MLP/MA-(BT,H#[8P2,?' -M`````+@`````Z`````!(BW,H2(GJOP$```#H`````(!E`'](BWLHZ``````/ -MMC-(BWLHN@$```#H`````$'_Q$&`_`0/AO7^__](QX,@#````````+@!```` -M9F:02(M<)`A(BVPD$$R+9"083(ML)"!(@\0HPV9F9I!F9I!54TB#[`A(B?W& -MAT@,````QX`P``$B+12A(B[CP,@``2(G>Z`````!(@\0(6UW#9F9FD&9F9I!5 -M4TB#[`A(B?N`OTD,````=3Z]`````(GJ#[;"2(N4P_@+``!(A=)T&$B#NG`" -M````=0Y(BW,HOP4```#H`````/_%0(#]!';.QH-)#````8![/`!U2H"[2`P` -M``!U0<:#2`P```%(QX,P#````````$B)FS@,``!(QX-`#````````$B-LS`, -M``!(BT,H2(NX\#(``.@`````9F:09F:02(/$"%M=PV9FD&9FD&9FD$B#[`A) -MB?I)B=%)B3!-B9EP`@``38F!@`(``$'&00$`#[;!3(F,Q_@+``#H;/[__[X! -M````B?!(@\0(PTACQDAIP&=F9F9(P>@@B<'1^8GPF8G(*="-%(")\2C1#[;` -M#[;12&G`DP$``$@!T$B+A,<@#```PV9F9I!F9I!)B?A(BT!F````(/@`X/X`G4&QD82#^LE28U!-F9! -M@7DV5%-U&&:!>`A3070,@'@(074*@'@+4W4$QD82#T$/MD`4@^`!P>`&#[9. -M"(/AOPG!B$X(00^V0`R#X`$/ME8)@^+^"<*(5@E!BT`8P>`'@^%_"<&(3@A! -M#[9`$(/@`0'`@^+]"<*(5@E!#[>`W@```-'H@^`!P>`$@^+O"<*(5@E)BT`P -M@W@T``^4P,'@!8/BWPG"B%8)00^V@-$```"#X`'!X`:#XK\)PHA6"4F+0#"# -M>#0"#Y3`#[;`P>`'@^)_"<*(5@E!#[8`P.@"@^`!@^'^"<&(3@A!#[8`P.@" -M@^`"B1F9F:09F:0QT0D*##_``!( -MQT0D2`````!,B60D.,=$)"P&````2,=$)$``````QT0D,`````!(QT0D6``` -M``#'1"1@`````$B#O9@R````=!9(B[V8,@``2(UT)!#H`````.L09F:02(UT -M)!!(B>_H`````(-\)&``=`?_PX/["7Z%2(/L@%M=05S#9F9FD&9F9I!F9F:0 -M2(/L",>':`(```$```#HW?[__TB#Q`C#9F9FD&9F9I!(@^PX2(E<)`A(B6PD -M$$R)9"083(EL)"!,B70D*$R)?"0P2(G[28GW28G62(MO,$R+92A$BVU(2(&] -M(`P````````/E,!%A>T/E<(/ML"%PG0?#[9U`$R)Y^@`````#[9U`+H````` -M3(GGZ`````#K!D&]`````/Y#`8![`05V8P^V2P4/ME4`00^V-"1(Q\<````` -MN`````#H`````(`C?4B)VDR)YK\!````Z`````!,B>?H``````^V=0"Z`0`` -M`$R)Y^@`````3(GW0?_7187M="0/MG4`3(GGZ`````#K%DR)NW@"``!,B;.` -M`@``2(GOZ"?Z__](BUPD"$B+;"003(MD)!A,BVPD($R+="0H3(M\)#!(@\0X -MPV9F9I!(@^Q(2(E<)!A(B6PD($R)9"0H3(EL)#!,B70D.$R)?"1`28G^B=!_Y0DP````$2)^@^VPDAI -MP)@,``!,`?"`>&0`=1*`N'$,````=`E(C7@HZ%#X__^X`0```$B+7"082(ML -M)"!,BV0D*$R+;"0P3(MT)#A,BWPD0$B#Q$C#9F9FD&9F9I!54TB#[`A(B?U( -MBWPD*(GSN`````!-A<`/A)P````/MD<+08B`FP```&8/MD<$9D&)@)0```!F -M#[9'!F9!B8"6````9@^V1PAF08F`F`````^V1PI!B(":````9@^V!V9!B8"0 -M````9@^V1P)F08F`D@```(/Y`1G`@^#Y@\`(08B`J@```$R)QT'_D,`````/ -MML-(:<"8#```2`'H@'AD`'42@+AQ#````'0)2(UX*.AK]___N`$```!(@\0( -M6UW#9F9FD&9F9I!F9F:09F:04TB#[$!(B?-(BW!F9I"("$C_P$C_RG7VQP0D`0```,=$)`P`````#[9'!8A$)`3V@ZD````" -M=`K'1"0(`0```.L7#[:#J0```(/@!#P!&<#WT(/@`HE$)`C'1"00`````$B+ -M@Z````!(B40D&`^V@YP```#!X`B)1"0@#[>#D````&:)1"0D#[>#D@```&:) -M1"0F#[>#E````&:)1"0H#[>#E@```&:)1"0J#[>#F````&:)1"0LQD0D+D`/ -MMH.;````B$0D+TC'1"0P`````$B)7"0X2(GB#[8V3(G'Z`````"Z`0```(7` -M=!7&@ZH````(2(G?_Y/`````N@````")T$B#Q$!;PV9FD&:02(/L"(GP3(G& -M#[;`#[;22&G`DP$``$@!T$B+O,<@#```N`````!-A@WH0`'08QT(0`````.@\````N`$```#K*V9FD&:0QH:J -M`````>L/9F9FD&9FD$'&@*H````(2(GW_Y;`````N`$```!(@\0(PV9FD&:0 -M4TB#[$!(B?-(BW(/MC9,B<_H`````+H!````A$R)K"2`````3(FT -M)(@```!,B;PDD````$B)_4F)]$R+;DA(BX:0````2(E$)!!$#[>^F````$R+ -M=S!)BU8H2(D4)$$/M@:(1"0?2<=%``````!!QT40`0```/8'`G4;QH:J```` -M`DB)]_^6P````.F&!P``9F:09F:0@+ZH````!'4?Z*+^__^#O6@"````#X1E -M!P``2(GOZ-WW___I6`<```^V1"0?P.@"#[;`2(L4)("\$,`S````#X2,```` -M@[]H`@```'4ZZ*WW___'A3@"```@H0<`2,>%2`(```````!(B:U0`@``2(VU -M.`(``$B+!"1(B[CP,@``Z`````#K24B-GS@"``!(BQ0D2(NZ\#(``$B)WN@` -M````QX4X`@``(*$'`$C'A4@"````````2(FM4`(``$B+!"1(B[CP,@``2(G> -MZ`````!!@+PDJ`````-U%$R)YDB)[^@9_/__Z90&``!F9F:000^WQT@#1"00 -M2#M%*'890<:$)*H````&3(GG0?^4),````#I:`8``(M5"(E4)`P/MD4%B$0D -M)$$/MH0DJ0```*@H!```2(L4)$B+FI@S``"`?0('=D=)@[PDL`````!T -M$:@!=`U)BYPDL````.DT`@``28.\)+@`````=""Z`````$B)WDR)YT'_E"2X -M````A<`/A0X"``!F9I!FD$F#O"2P`````'050?:$)*D````!=0I)BYPDL``` -M`.M028UU"$B+/"1(@<=8,P``Z`````!(B<-(A=!_Y0DN````(7`=0Y!QH0DJ@````GIJ0,``$F)70#'1"0@`0`` -M`,=$)$``````O@````!(8\9(P>`$9O<$&/\!#X5I`P``2(G"BT0D0`,$&HE$ -M)$#_QH-\&@0`=-9!]H0DJ0````)T"L=$)"@!````ZQ-!]H0DJ0````1T",=$ -M)"@"````BT0D#(E$)"S'1"0P`0```$B)7"0XBT0D0(G"T>J)5"1`9L=$)$0` -M`,'H"6:)1"1&#[94)!")T(-\)`P`=!!(BT0D$$C!Z!`E`/\```G09HE$)$A( -MBU0D$$C!Z@B!XO\```")T(-\)`P`=!!(BT0D$$C!Z!@E`/\```G09HE$)$I( -MBU0D$$C!ZA"!XO\```")T(-\)`P`=!!(BT0D$$C!Z"`E`/\```G09HE$)$R# -M?"0,`'0800^VA"2I````@^`"/`$9P(/@$(/`).L600^VA"2I````@^`"/`$9 -MP(/@$(/`((A$)$^X0````(-\)`P`=0Q(BT0D$$C!Z!B#R$"(1"1.2,=$)%`` -M````3(ED)%A(C50D(`^V="0?2(L\).@`````B<*%P`^%G`$``.GG`P``QT0D -M(`````"+5"0,B50D+&9$B7PD-HM$)!")1"0P2(M$)!!(P>@@9HE$)#1(QT0D -M0`````!,B60D2$'VA"2I`````@^4P`^VP(E$)"A)C74(2(L\)$B!QU@S``#H -M`````$F)10"^`````$B%P'490<:$)*H````%3(GG0?^4),````#I7P,``/9# -M"`$/A67]__^!.P```0!V5X$K```!`$ACUDF+10!(P>($9L=$`@0``$F+30!( -MBT,(B00*28M-`(M##(E$"@A)BT4`9L=$`@8``$F+10#'1`(,`````$B!0P@` -M``$`_\:!.P```0!WJ4ACUDF+30!(P>($BP-FB40*!$F+30!(BT,(B00*28M- -M`(M##(E$"@A)BTT`@WL$`1G`]]!F)0"`9HE$"@9(8\9)BU4`2,'@!,=$$`P` -M````_\9(C4,$2(/#$(,X``^$-/___TF+10B)1"0X08M%#(E$)#QF@7PD-@`! -M=0V#?0@`=0=FQT0D-@``2(U4)"`/MG0D'TB+/"3H`````(G"A<`/A%`"``"# -M^@)T1H/Z`G<*@_H!9F:0="#K6(/Z`W0+@_H$9F9FD'0TZTA!QH0DJ@````AF -M9I#K0P^V="0?2(L\).@`````0<:$)*H````(ZRI!QH0DJ@````7K'T'&A"2J -M````".L40<:$)*H````&ZPE!QH0DJ@````A)@WT``'0D28M5"$B+/"1(@<=8 -M,P``28MU`.@`````2<=%``````!F9F:03(GG0?^4),````#IH`$``,=$)"`! -M````2,=$)#@`````2,=$)%``````3(ED)%C'1"1``````&;'1"1$``#'1"0H -M`````(-\)`P`#X2!````@WT(`75[QD0D3T+'1"0L`0```$B+1"00)0``_P!( -MP>@09HE$)$Q(BT0D$"4`_P``2,'H"&:)1"1*2(M4)!"!X@```/](P>H0#[9$ -M)!`)T&:)1"1(9D2)?"1&QD0D3D!(C50D(`^V="0?2(L\).@`````B<*%P`^% -MD_[__^G>````1(GX)0#_```]`0(``+@``@``1`]-^$$/M\<%_P```(G#P>L( -M#[;+08E-$$$/ME8\N"`````IT+H"````.<@/C$K^___&1"1/0,=$)"P````` -MA-L/A(4````/MFPD'TB+1"00)0``_P!(P>@09HE$)$Q(BT0D$"4`_P``2,'H -M"&:)1"1*#[9$)!!FB40D2$$/ML=FB40D1DB+1"00)0````](P>@8@\A`B$0D -M3DB!1"00``$``&9!@>\``?_+2(U4)"")[DB+/"3H`````(G"A<`/A;?]__^$ -MVW6#9F:02(M<)&A(BVPD<$R+9"1X3(NL)(````!,B[0DB````$R+O"20```` -M2('$F````,.02(/L".@`````#[;`2(/$",-F9F:09F9FD&9F9I!F9I!(@^P( -M0(3V=`KH``````^VP.L(Z``````/ML!(@\0(D,-F9F:09F9FD&9F9I!F9I!( -MBU@!(B8-0#```O0````"`>P(`=EIF9I!FD(GJ -M#[;"2(N4P_@+``!(A=)T'O8"`G09_DH!2(MS*+\$````Z`````#K(V9FD&9F -MD`^V$XT4DD`/ML4!PDACTDB+% -M6`P``("$'@#H`````$@M`!)Z`$B)A5`,``"[`````(!]`@!V+V9F9I`/ML-( -MBY3%^`L``$B%TG0%]@("=0\/MX66#```B=G3^*@!=:/_PSA=`G?59L>%E@P` -M````NP````"`?0(`=E&0#[;#2(N4Q?@+``!(A=)T&/8"`G03_DH!2(MU*+\$ -M````Z`````#K'0^V50"-%)(/ML,!PDACTDB+=2B_`@```.@`````_\,X70)W -MM&9F9I!(BUPD"$B+;"003(MD)!A,BVPD($R+="0H3(M\)#!(@\0XPV9F9I!F -M9I!F9I!F9I!(@^P(2(GX@_X!=52#^@%T$8/Z`7(A@_H"=#%F9I!FD.L^B<]( -M:?^8#```2(U\!RCHF_S__^LIB<](:?^8#```2(U\!RCH]OS__^L4B<](:?^8 -M#```2(U\!RCHD?W__Y"X`0```$B#Q`C#9F:09F:0QT($`````,<"`````+@` -M````PV9F9I!F9I!F9I!F9I!(@>R8````2(E<)&A(B6PD<$R)9"1X3(FL)(`` -M``!,B;0DB````$R)O"20````28G]2(GU2(E,)%AFB50D9D6)QDB+1S!,BW@H -M#[80B%0D5\=$)%``````1(MG"(M`2(E$)$RX______8'`@^$MP$``(-\)$P` -M=!X/MEPD5XG>3(G_Z`````"Z`````(G>3(G_Z`````!!@/X!&1T$$&`_@$9P(/@$(/`).L.9I!!@/X!&<"#X!"#P"")1"0X -MN$````!%A>1U"(GHP>@8@\A`B40D,$B)[TC![Q"!Y_\````/M\=%A>1T#DB) -MZ$C!Z"`E`/\```GXB40D*$B)[TC![PB!Y_\````/M\=%A>1T#DB)Z$C!Z!@E -M`/\```GXB40D($`/MOT/M\=%A>1T#DB)Z$C!Z!`E`/\```GXB40D&`^W1"1F -MB40D$,=$)`@`````P>`(B00D3(M,)%A%B>!,B?_H`````(7`N/____\/140D -M4(E$)%"%P`^4P$6$]@^4P@^VP(7"='5!#[95!0^V="17QT0D..<```#'1"0P -M0````,=$)"@`````QT0D(`````#'1"08`````,=$)!``````QT0D"`````#' -M!"0`````0;D`````0;@`````N0````!,B?_H`````(7`N/____\/140D4(E$ -M)%!F9I"#?"1,`'0-#[9T)%=,B?_H`````(M$)%!(BUPD:$B+;"1P3(MD)'A, -MBZPD@````$R+M"2(````3(N\))````!(@<28````PV9FD&9FD&9FD$B#[#A( -MB5PD&$B);"0@3(ED)"A,B6PD,$F)_$B+1S!,BV@H#[80C4;[/`*X!`````]& -M\$"(=P*-1@B-7CA`@/X$#T;8C4._/`*X0`````]&V`^VZHGN3(GOZ`````"Z -M`0```(GN3(GOZ`````!!#[94)`7'1"0(`````,<$)`````!!N0````!$#[;# -MN0,```")[DR)[^@`````B>Y,B>_H`````$B+7"082(ML)"!,BV0D*$R+;"0P -M2(/$.,-FD$B#[#A(B5PD"$B);"003(ED)!A,B6PD($R)="0H3(E\)#!!B?1( -MBV\P3(MM*$0/MG4`1(M]2+C_____@+V3#`````^$H@```(7V=`B#?30`=`CK -M$8-]-`!T"[@`````D.F%````187_=!U!#[;>B=Y,B>_H`````+H`````B=Y, -MB>_H`````$6%Y'0E00^V]KD?````N@````!,B>_H`````+X?````2(GOZ&'/ -M___K(T$/MO:Y`````+H!````3(GOZ`````"^`````$B)[^@\S___187_=`Q! -M#[;V3(GOZ`````"X`````$B+7"0(2(ML)!!,BV0D&$R+;"0@3(MT)"A,BWPD -M,$B#Q#C#9F:02(/L.$B)7"0(2(EL)!!,B60D&$R);"0@3(ET)"A,B7PD,$&) -M]$B+;S!,BVTH1`^V=0!$BWU(N/____^`O9(,````#X2B````A?9T"(-]-`)T -M".L1@WTT`G0+N`````"0Z84```!%A?]T'4$/MMZ)WDR)[^@`````N@````") -MWDR)[^@`````187D="5!#[;VN1\```"Z`@```$R)[^@`````OA\```!(B>_H -M4<[__^LC00^V]KD`````N@$```!,B>_H`````+X`````2(GOZ"S.__]%A?]T -M#$$/MO9,B>_H`````+@`````2(M<)`A(BVPD$$R+9"083(ML)"!,BW0D*$R+ -M?"0P2(/$.,-F9I!(@^Q(2(E<)!A(B6PD($R)9"0H3(EL)#!,B70D.$R)?"1` -M2(G]08GV2(M',$R+8"A$#[8H1(MX2,=$)!3_____187_=!U!#[;=B=Y,B>?H -M`````+H`````B=Y,B>?H`````/:%W````"`/A)0```!%A?9T3`^V505!#[;U -MQT0D"`````#'!"0`````0;D`````0;@`````N0(```!,B>?H`````(7`=%O' -M11`!````QT0D%`````#K2F9F9I!F9I`/ME4%00^V]<=$)`@`````QP0D```` -M`$&Y`````$&X`````+F"````3(GGZ`````"%P'0/QT40`````,=$)!0````` -M187_=`Q!#[;U3(GGZ`````"+1"042(M<)!A(BVPD($R+9"0H3(ML)#!,BW0D -M.$R+?"1`2(/$2,-F9I!FD$B#[$A(B5PD&$B);"0@3(ED)"A,B6PD,$R)="0X -M3(E\)$!(B?U!B?9(BT?H`````(7`=`_'11@`````QT0D -M%`````!%A?]T#$$/MO5,B>?H`````(M$)!1(BUPD&$B+;"0@3(MD)"A,BVPD -M,$R+="0X3(M\)$!(@\1(PV9FD&:02(/L2$B)7"082(EL)"!,B60D*$R);"0P -M3(ET)#A,B7PD0$B)_4&)]TB+1S!,BV`H1`^V*$2+<$C'1"04_____T6%]G0= -M00^VW8G>3(GGZ`````"Z`````(G>3(GGZ`````!!@/\"N88```"X!@````]$ -MR`^V505!#[;UQT0D"`````#'!"0`````0;D`````0;@`````3(GGZ`````"# -M^`%U'42)^H/B`\'B!0^V10"#X)\)T(A%`,=$)!0`````187V=`Q!#[;U3(GG -MZ`````"+1"042(M<)!A(BVPD($R+9"0H3(ML)#!,BW0D.$R+?"1`2(/$2,-F -M9F:09F9FD$B#['A(B5PD2$B);"103(ED)%A,B6PD8$R)="1H3(E\)'!)B?Z) -M]4B+1S!,BV`H1`^V*(M`2(E$)$1!O_____^%P'0=00^VW8G>3(GGZ`````"Z -M`````(G>3(GGZ`````!`@/T4=PM`#[;%:\`,B<7K%&9`#[;%9FG`B0!FP>@( -MP.@$C6CP00^V5@5!#[;UQT0D..,```#'1"0P`````,=$)"@`````QT0D(``` -M``#'1"08`````$`/ML6)1"00QT0D"`````#'!"0`````0;D`````0;@````` -MN0````!,B>?H`````(7`N`````!$#T7X@WPD1`!T#$$/MO5,B>?H`````$2) -M^$B+7"1(2(ML)%!,BV0D6$R+;"1@3(MT)&A,BWPD<$B#Q'C#9F:09I!(@^P( -M#[8&@_@(#X>R````B<#_),4`````9F9FD&9FD$B+?@C&A_@R````Z`````"X -M`````.F-````9F:09F:0#[9&"#I'`W<,B$<$#[9V".@;^/__N`````#K:V9F -M9I`/MG8(Z"?\___K7&9FD&:0#[9V".C7^O__ZTQF9I!FD`^V5@D/MG8(Z*/X -M__]F9I#K-0^V5@D/MG8(Z*'Y__^0ZR4/MG8(Z"7]__]F9I!FD.L5#[9V".@5 -M_O__9F:09I#K!;C_____2(/$",-F9F:02(/L".@`````2(/$",-FD$B#[`CH -M`````$B#Q`C#9I!32(G[#[>7_#(``$B+?PB^!````.@`````#[:3^C(``$B+ -M>PB^#````.@`````#[:3^S(``$B+>PB^#0```.@`````#[:3^3(``$B+>PB^ -M/````.@`````BY,`,P``2(M["+X0````Z`````"+DP0S``!(BWL(OA0```#H -M`````$B)W^@`````2(G?Z`````!(B=_H`````+X`````9F:0N@````")\$AI -MR),!``!FD(G02(T$`4B+A,,@#```2(7`=`3&0`$`_\*#^@1VXO_&@_X#=LM; -MPV9FD&9FD&9FD$B#[`A(Q\<`````Z`````"X`````$B#Q`C#D)"0D)"0B?B# -MX`/!X`T%`"```$#VQP1T#04```,`PV9F9I!F9I`%```"`,-F9F:09F:09F:0 -M4TB)^T`/MO[HP____XG`2(M3$,>$`@0#``#_____2(M3$,>$`F0#```````` -M2(M3$,=$`@@`````2(M3$,=$`@R8`0``6\-F9I!F9I!F9I!32(G[0`^V_NAS -M____B`#9B7X`(#,$F9!B0!)@\`"9@^V00N`S!-F08D` -M28/``F8/MD$(@,P39D&)`$F#P`)F#[9!#(#,%&9!B0!)@\`"9@^V00F`S!1F -M08D`28/``F8/MD$-@,P59D&)`$F#P`)F#[9!"H#,%69!B0!)@\`"9D''`$`6 -M28/``H,Y`'46@WXT`KHF````N&`````/1<+IG`$``(-^-`*Z-@```+AA```` -M#T7"Z88!``!F9I!F#[9!#H#,$69!B0!)@\`"00^V003!X`-F)?@`@,P29D&) -M`$F#P`)F#[9!"(#,$V9!B0!)@\`"9@^V00F`S!1F08D`28/``F8/MD$*@,P5 -M9D&)`$F#P`*+00@E````#\'H&&8-0!9F08D`28/``H,Y`1G`@^#[@^@TZ04! -M``!FD(-Y!`$/A9<```!F#[9!#X#,$F9!B0!)@\`"9@^V00Z`S!)F08D`28/` -M`F8/MD$+@,P39D&)`$F#P`)F#[9!"(#,$V9!B0!)@\`"9@^V00R`S!1F08D` -M28/``F8/MD$)@,P49D&)`$F#P`)F#[9!#8#,%69!B0!)@\`"9@^V00J`S!5F -M08D`28/``F9!QP!`%DF#P`*#.0$9P(/@\(/`->MB9@^V00Z`S!)F08D`28/` -M`F8/MD$(@,P39D&)`$F#P`)F#[9!"8#,%&9!B0!)@\`"9@^V00J`S!5F08D` -M28/``HM!""4````/P>@89@U`%F9!B0!)@\`"@SD!&<"#X/Z#Z#9F#[;`9@T` -MEV9!B0##B?!(BW<0#[;`2&G`F`P``$2+1#A81(G'QH0W(`$````/MH0W!`$` -M`(@%`````(@!#[:$-P@!``"(!0````!F#[;`9HE!`@^VA#<,`0``B`4````` -M9@^VP&:)000/MH0W$`$``(@%`````&8/ML!FB4$&#[:$-Q0!``"(!0````!F -M#[;`9HE!"(/Z`75DQH0W(`$``(`/MH0W"`$``(@%`````,'@"&8)00(/MH0W -M#`$``(@%`````,'@"&8)000/MH0W$`$``(@%`````,'@"&8)008/MH0W%`$` -M`(@%`````,'@"&8)00C&A#<@`0```$2)P`^VE#`8`0``B!4`````B%$*#[:$ -M,!P!``"(!0````"(00O#9F:09F:09F:028G128G(N@````"+01")!XM!%(E' -M!(,Y`+@!````#T3000^V202-!`D)PD$/MD$

`,"<+!X1$)RHE7"(M&-(7` -M#Y3"@_@"#Y3`"="H`0^$VP```$&#>`0!#X6`````00^V0`^(1QM!#[=`#HA' -M$T$/MD$$P>`#B$<<00^V0`N(1QA!BT`(B$<400^W0`R(1QE!#[9`"8A'%4$/ -MMD`-B$<:00^V0`J(1Q;&1Q=`08,X`'46@WXT`KHF````N&`````/1<+I^P`` -M`(-^-`*Z-@```+AA````#T7"Z>4```!!#[=`#HA'$T$/MD$$P>`#B$<<08M` -M"(A'%$$/MD`)B$<500^V0`J(1Q9!BT`()0````_!Z!B#R$"(1Q=!@S@!&<"# -MX/N#Z#3IF````&9FD$&#>`0!=5%!#[9`#XA''4$/MT`.B$<<00^V0`N(1QA! -MBT`(B$<400^W0`R(1QE!#[9`"8A'%4$/MD`-B$<:00^V0`J(1Q;&1Q=`08,X -M`1G`@^#P@\`UZSU!#[=`#HA''$&+0`B(1Q1!#[9`"8A'%4$/MD`*B$<608M` -M""4````/P>@8@\A`B$<708,X`1G`@^#^@^@VB$<2PV9F9I!F9I!(@^QH2(E< -M)#A(B6PD0$R)9"1(3(EL)%!,B70D6$R)?"1@28G_B?-FB50D'D0/MO--:?:8 -M#```38UT/BA!BU8P2(M'$(M$$#")!0````!(B<6#Y1](:^U82HUL-5B#?0`` -M=6U,C64@#[9U'$R)]^@`````08M4)`1$#[;K2(U,)"!$B>Y,B?_H`````$'^ -M3E%-BT0D(`^V51Q)BWXH2(U$)"!(B40D",<$)`````!$#[=,)!ZY`0```$2) -M[D'_5"082(GN3(GWZ/01``!F9F:02(M<)#A(BVPD0$R+9"1(3(ML)%!,BW0D -M6$R+?"1@2(/$:,-F9F:09F:09F:09F:02(/L:$B)7"0X2(EL)$!,B60D2$R) -M;"103(ET)%A,B7PD8$F)_D&)]<=$)!0`````B?`/MNA(:>V8#```2(UL/2A! -MOP`````/MP)FB40D&$B-3"08#[="`F:)00*+0@2)000/MT0D&$B)PX/C'TAK -MVUA(C5PK6`^W00*$P'0BQT0D%`$````/MT$"1`^V^$&`SX#'14@`````QT4X -M`````$R-8R!(C40D&`^W0`*H!'0B#[9S'$B)[^@`````2(U,)"!!BU0D!$$/ -MMO5,B??H`````(,[`0^$E````/Y-44V+1"0@#[93'$4/MNU(BWTH2(U$)"!( -MB40D"$B-1"08BT`$B00D10^WSXM,)!1$B>Y!_U0D&$B)WDB)[^B@$```@WU( -M`'1*2(.]6`L```!T0$B+A5@+``"#>!@!=3-$B>Y,B??HZ!(``$B+M5@+``!( -MB>_H:10``(7`=15(B[58"P``N@$```!(B>_H$08``)!(BUPD.$B+;"1`3(MD -M)$A,BVPD4$R+="183(M\)&!(@\1HPV9F9I!F9I!F9I!F9I!(@^Q(2(E<)!A( -MB6PD($R)9"0H3(EL)#!,B70D.$R)?"1`28G^08G,1(E,)!1(BT<02(E$)`C' -M1"0$`````$2-/+4`````00G71(GZ#[;J2&GMF`P``$B-;#TH187`=&=(A>T/ -MA.@```"+G?`+``"+53!"C03E``````M%)$B+3"0(B40*)$0YXW0D10^V[Y") -MVDB+11!(C1301(GN3(GWZ+O]____PX/C'T0YXW7A@WU(`+@!````#T5$)`2) -M1"0$B9WP"P``@WPD%``/E<*#?"0$``^5P`G0J`$/A(\!``!!#[;_Z";V__]! -MB<1(BU0D"$&+1!0(B04`````B<,/M\#WT$&)1!0(08M$%`B)!0````"H&'0H -MOR!.``#H`````$B+3"0(08M$#`B)!0`````)PP^WP_?008E$#`AFD/;#"'0Z -M2(7M=`?'13@`````00^VWXG>3(GWZ`````"%P`^%"0$``(G9N@````"^`0`` -M`$R)]T'_5B#I\0```/;#$'0:00^VS[H!````O@$```!,B?=!_U8@Z=(```#V -MQP$/A)D```!!#[;_9F:09I#H6_7__XG!28M&$(N$"$P#``")!0````")PZD` -M``#`="%)BT80BX0(1`,``(D%``````T````!28M6$(F$"D0#``!!#[;OB>_H -M$_7__XG`28M6$,>$`F0#``#_]?__28M6$,=$`@C__O__B=C!Z!Z#\`&)VL'J -M'X7"=$6)Z;H"````O@$```!,B?=!_U8@ZS"$VWDL@WTX`74=QT5(`````,=% -M.``````/M]-!#[;W3(GWZ/GZ__](B>_H(1$``)!(BUPD&$B+;"0@3(MD)"A, -MBVPD,$R+="0X3(M\)$!(@\1(PV9F9I!F9I!F9I!F9I!(@^P(2(GYC02U```` -M``G0#[;X2&G_F`P``$B-?`\H2(NW6`L``$B%]G4-#[;P2(G/Z*H.``#K'X,^ -M`70&@WX8`70/#[;P2(G/Z)(.``!FD.L%Z!D```!(@\0(9F:09I##9F9FD&9F -M9I!F9F:09F:055-(@^P(2(G[2(GU2(M'*$B+4!"_`P```$`B.P^V,XM+,`^V -MA!$@`0``B`4`````#[:$$1P!``"(!0````!!BY(B=_H&P(``.FF````9F:09F:00?;`0'1"2(UU($B)WV9FD.B;````@_@! -M=1R#?3@`#X5\````N@````!(B>Y(B=_HW`$``.MJN@$```!(B>Y(B=_HR@$` -M`.M8N@$```!(B>Y(B=_HN`$``.M&00^VP*A`=#ZH('4Z@WTX`'42N@````!( -MB>Y(B=_HE`$``.LB2(UU($B)W^@F````AP0`=/)-BU@008M`&`'`B=HI -MPD&+`XG#*=-)BW,(0;D`````B=%!@S@"=3)!B=)#C00)B4 -M$``!``!FB14`````0XT$"8G`2(T$`6:)%#!!_\%!@?G_````=LR!^P`"``!U -M=TF-0Q!)B4`0ZVU!N0````"#/@)U,$B+1RB+=S!(BT@028M0$$B-0@))B4`0 -M#[<"9HF$,0`!``!!_\%!@?G_````=M+K,DF+2!!(BT9(B>_HI@D``$&#_0%U"$B)[^@(#0``2(.] -M6`L````/A*L```!(B[58"P``@WX8`74M2(GOZ'4-``"%P`^%C@```$B+M5@+ -M``"Z`0```$B)[^@9____ZWAF9F:09F:0@WTT`'4N#[9U`$B+?2AFD.B;"@`` -M2(M%*(M5,$B+0!"+1!`HB04`````OP$```#H``````^V=0!(BWTHZ,\*``!( -MBYU8"P``2(7;="2#>Q@`=1Y(C5,@2(G>2(GOZ/X+``!(BUL(2(7;=`:#>Q@` -M=.)(BUPD($B+;"0H3(MD)#!,BVPD.$R+="1`2(/$2,.005154TB)^TB+1RA( -MBV@01(MG,$2)XHM$*BB)!0````"H!'0JQT0J*`(```"+1"HHB04`````OT`- -M`P#H``````^V,TB+>RCH]`$``.L+1(G@QT0H*`(```#&0SP`QD-0`,9#40#' -M@^P+````````QX/P"P```````,=#.`````#'0T``````QX/H"P``(````+H` -M````2&/"B92#:`L``/_"@_H??N^Z`````&9F9I!(8\)(:\!8QT086`$```#_ -MPH/Z'W[J2,>#6`L```````!(QX-@"P```````,=#2`````!$B>+'1"H(```` -M`,=$*@R8`0``BT,8B40J$(M#'"4`_/__B40J%$B+0RBY`````(.XP#(```!T -M`XM+'(E,*AA$B>"+4R")5"@<2(G"2(M#*+D`````@[C`,@```'0#BTL%@`=7=( -MC5!@@WH0`746BU(<3(N@J````$R+J*````#K'F9FD$ACQ4AKP%A(`=B+4'Q, -MBZ"8````3(NHD`````^V,TB+>RA,B?GH`````$ACQ4AKP%@/ME08=`^V,TB+ -M>RA,B7PD",<$)`````!%#[?.38G@BTPD'$'_U?_%@_T?#XYN____2(/$.%M= -M05Q!74%>05_#9F9FD&9F9I!F9F:09F:0055!5%532(/L"$B)_8GS0`^V_NA8 -M[?__08G$08'$,`,``(.]M#(```%U)8V0+`,``$B+11#'!!"@`D5`2(M%$(L$ -M$(D%`````.F"````9I"#O<0R```!=7(?^/__"<(/MH0IUC(``,'@!27@````"<*!XN`/\#R!R@^0 -M``!(BT40B10P2(/$"%M=05Q!7<-F9I!FD$B#["A(B5PD"$R)9"003(EL)!A, -MB70D($B)^T0/MO9$B??H6>O__T&)Q$6-;"0H1(GV2(G?Z,;K__]%B>U(BT,0 -M0L<$*`0```!(BT,00HL$*(D%`````$6)Y$B+0Q!"BT0@4(D%`````"7_#P`` -M#0`0FP!(BU,00HE$(E"_&0```.@`````2(M#$$+'!"@`````2(M#$$*+!"B) -M!0````!$B?9(B=_H9?W__T2)]DB)W^CZZO__2(M<)`A,BV0D$$R+;"083(MT -M)"!(@\0HPY!(BT`,`T` -M``0```!(BT<0BX`P#0``B04`````N^@#``!F9F:0@[W`,@```7472(M%$(N` -M,`T``(D%`````*@(="7K%9!(BT40BX`P#0``B04`````J`AU#K\!````Z``` -M``#_RW6^2(M%$(N`,`T``(D%`````(G"@\H02(M%$(F0,`T``$B+11"+F#`- -M``")'0````"_!0```.@`````B=J#XNM(BT40B9`P#0``2(M%$(N`,`T``(D% -M`````+\%````Z`````!(@\0(6UW#9F:09I!(BT<0QX!L!`$`___/#\.02(M' -M$,>`9!T```````!(BT<0QX``&0```````$B+1Q#'@!`9````````PV9FD&:0 -M2+@``/\`__\``$@C!TBZ`````(!0``!(.=!T'TB+1Q"+@"P-``")!0````") -MPH/*`4B+1Q")D"P-``!(BT<0BX``#0``B04`````B<*!XO__`/](BT<0B9`` -M#0``2(M'$,>`!`T```````!(BT<0QX`X#````````$B+1Q#'@`0=``#_``$` -M2(M'$,>`9!T```````!(BT<0QX`H#````````$B+1Q#'@%@=````````2(M' -M$,>`7!T```````!(BT<0QX!`'0```````$B+1Q#'@$0=````````2(M'$,>` -M2!T```````!(BT<0QX!0'0```````,-F9F:09F9FD$C'1@@`````2(N'8`L` -M`$B)1A!(@[]@"P```'0+2(N'8`L``$B)<`A(B;=@"P``2(._6`L```!U!TB) -MMU@+``#SPV9F9I!F9F:09F:09F:02(-^"`!U&DB+1A!(B8=@"P``2(7`=!9( -MQT`(`````.L,2(M6"$B+1A!(B4(02(-^$`!U'$B+1@A(B8=8"P``2(7`=!A( -MQT`0`````.L.9I!(BU802(M&"$B)0@A(QT8(`````$C'1A``````PV9FD%53 -M2(G]2(GS@SH`=2I(BT((2(E&($B+0A!(B48H2(M"&$B)1C!(BT(@2(E&.$B+ -M0BA(B49`ZSM(BT((2(E&($B+0A!(B48H2(M"&$B)1C!(BT(@2(E&.$B+0BA( -MB49`2(M",$B)1DA(BT(X2(E&4/Y'4(L"B4,8#[9"!(A#'$B)WDB)[^BW_O__ -MQP,`````_D4\6UW#9F9FD&9F9I!F9I!(@^P02(D<)$B);"0(2(G[2(GU@WX8 -M`'0#_D]02(GN2(G?Z,G^__^+@^@+``")P0^V502)E(MH"P``_\")@^@+``#' -M10`!````_DL\2(L<)$B+;"0(2(/$$,-F9I!F9I!`@/\#=A%`#[;/C4P)`K@! -M````2-/@PT`/ML^-3`D!N`$```!(T^##9F9FD&9F9I!(@^P@2(D<)$B);"0( -M3(ED)!!,B6PD&$B)_4&)]42+IZ`R``!`#[;>B=_HH?___T0)X(F%H#(``(G? -MZ"'F__^)P$B+51`/MH0"'`$``(@%`````$B+51!(C8(4``,`2('"%``"`/;# -M!$@/1=!$B>F#X0.X``$``-/@]]")`DB+11"+@&0=``")!0````!$.>!U($B+ -M51"+A:`R``")@F0=``!(BT40BX!D'0``B04`````2(L<)$B+;"0(3(MD)!!, -MBVPD&$B#Q"##9F:09F:02(/L$$B)'"1(B6PD"$B)_8N?H#(``$`/MO[HX?[_ -M__?0(=B)A:`R``!(BT40BX!D'0``B04`````.=AU$TB+51"+A:`R``")@F0= -M``!F9I!(BQPD2(ML)`A(@\00PV:02(/L&$B)'"1,B60D"$R);"003(MG$(GP -M#[;82&G;F`P``$B-7#LH1(MK,,=#.`$```!)C80D%``#`$F-E"04``(`0/;& -M!$@/1=")\8/A`[@!`0``T^#WT(D"BT,P0L=$(`@`````0`^V]N@Q____18GM -M0P^VA"4<`0``B`4`````QT-$`0```$/'1"4H`0```$B+'"1,BV0D"$R+;"00 -M2(/$&,-F9F:09F9FD&9F9I!!5D%505154TF)_4&)]KL`````3(MG$(GR#[;" -M2&G`F`P``$B-1#@HBU`PQT`X`````(G00L=$("@"````B=600HM$)2B)!0`` -M``"H`706O^@#``#H`````/_#@?OG`P``=MWK#8'[YP,``&9FD&:0=AA!#[;> -MB=Y,B>_H@/C__XG>3(GOZ!8'``!!#[;V3(GOZ(K]__];74%<05U!7L.00513 -M2(G[2(G12(M'*$R+8!"+O^P+``!(P><%2`-["$B)\DB)WN@VZ/__BY/L"P`` -M_\*#XA^)D^P+``#^0U&+2S"+0QPE`/S__\'B!0G00HE$(11;05S#9F:09F:0 -M9F:04TB)^[D`````N@(```"^`````.@8]?__2(G?Z+#S__](B=_H`````(/X -M`743QT-(`0````^V,TB+>RCHX/S__UO#9F9FD&9F9I!F9I!F9I!(BT<0BX!H -M'0``B04`````2(M7$(/(`HF":!T``,-FD$B+1Q"+@&@=``")!0````!(BU<0 -M@^#]B8)H'0``PV:02(/L.$B)7"002(EL)!A,B60D($R);"0H3(ET)#!)B?U( -MB?5(C5X@2(M_*$R+9Q"`>R=G=4)$#[=+'DR+0Q`/MDL<#[93(`^V -M=11FA4,@=0YFA4,B9I!U!F:%0R1T#;H`````9F:0Z4L!``!$B?4/MT,<0HB$ -M)00!```/MT,>0HB$)0@!```/MT,@0HB$)0P!```/MT,B0HB$)1`!```/MT,D -M0HB$)10!```/MD,F0HB$)1@!``!,B>_H``````^V0R="B(0E'`$``(,[`@^% -MW````$(/MH0E(`$``(@%`````$&XR````+D0)P``N@$```"^`````$R)[^@` -M````N@````"%P`^$J@```$2)\$(/MH0@'`$``(@%`````"6)````N@````"# -M^`@/A84```"^`````$2)\8-["`!T1TR+0Q!)BW@(C00VB@,@```````$B+1Q#'@&0=````````QX>D,@```````,>'J#(` -M``````#'AZPR````````QX>P,@```````,>'M#(```````#'A[@R```````` -MQX>\,@```````,:'R#(```&X`````$B#?R``#X0B`@``#[=7!('Z0F```'0; -MN`````"!^D)P```/A04"``#'A\PR```!````QH7(,@```\>%Q#(```$```"` -M?0(`=0K'A<`R```!````0;T`````1(GJ#[;"QH0HTC(```?&A"C6,@```4'_ -MQ4&`_0-VX4B)[^CY]/__2(GOZ-'U__^#O_HT/7__^L(2(GO -MZ/;U__](BT40QX#P!`$`9````(.]S#(```!U-4B+11"+@``-``")!0````"H -M,'0:BX6(,@``J>`#`(!T%"4?_/]_B86(,@``ZP>#I8@R``#/0;T`````9F9F -MD$$/MOWHY][__XG`2(M5$(M<`E")'0````"`SQ")V"1_@[VT,@```0]$V$4/ -MMN5$B>?HNM[__XG`2(M5$(E<`E!$B>9(B>_H-?'__T'_Q4&`_0-VK(.]S#(` -M``!T$TB+11#'@!`9```*!P``ZS-F9I!(BU40BX6(,@``B8(`#```2(M5$(N% -MC#(``(F"*`P``$B+51"+A9`R``")@EP=``"Y`````$B+11!(C9`,``,`2`4, -M``(`A,E(#T7"#[;1BU25&(D02(M%$$B-D!```P!(!1```@"$R4@/1<(/MM&+ -M5)4%H#(``%6KA@!!O0````!F -M9F:000^V]4B)[^@$WO__0?_%08#]`W;KOU##``#H`````+@!````2(/$"%M= -M05Q!7<.02(M'$,>`9!T```````"X`0```,-F9F:09F9FD&9F9I!(@^P82(E< -M)`A,B60D$$F)_(GP#[;82&G;F`P``$B-7#LH0`^V_NAEW?__B4,P3(EC*,=# -M2`````#'0S@`````2(G?Z)CM__](BUPD"$R+9"002(/$&,-F9I!F9I!F9I!3 -M2(G[B?(/ML*Y`````(.\A]PR````="=`#[;^Z`_=__\%``,``$B+4Q"+!`*) -M!0````"#X`^#^`,/E,`/MLB)R%O#9F9FD&9FD&9FD&9FD$%7059!54%455-( -M@^P(2(G]08GV0`^VWHG>Z$'=__^)W^BZW/__B<)!OP````!$C:@(`P``1(VB -M``,``$B+11!"QP0H`0,``+_H`P``Z`````!(BT400L<$*``#``"_($X``.@` -M````NP````!F9I!(BT400HL,((D-`````(7)#Y3"@?D3`0``#Y3`"="H`74E -M@?DC`0``=!V_Z`,``.@`````_\.!^\<```!^PD'_QT&#_P1^A4$/MO9(B>_H -M3=S__TB#Q`A;74%<05U!7D%?PV9F9I!F9F:09F:09F:02(/L&$B)7"0(2(EL -M)!!(B?V)\@^VPDAIP)@,``"Y`````(-\.'`!="Y`#[;>B=[H3/#__XG>2(GO -MZ$+<__^)WDB)[^C8_O__B=Y(B>_HWMO__[D!````B`/ML'_R`G%@\T@@[^\,@```75(1(GP0L=$($!+````ZSJ% -MTG4IC4'_O@`````\'P^'_@```,=#-`````"#Y<`/ML'_R`G%@7`_?__@?HR/[__XMS,('&#`,``+H``0``3(GGZ++^___K!H'E___^_X'E___W_X'- -M``!&`$&#O?H/?[__[X! -M````B?!(BQPD2(ML)`A,BV0D$$R+;"083(MT)"!(@\0HPV9FD&9FD&9FD(GQ -M#[;12&G2F`P``$B-5#HHN`````"#>D@!=!7'0D@!````0`^V]N@D]/__N`$` -M``#SPV9F9I!F9I!F9I!F9I!(@^P(B?(/ML)(:<"8#```QT0X<`````!`#[;V -MZ)_T__^X`0```$B#Q`C#9F:09I!3B?")U@^VV$AIVY@,``!(C5P[*+@````` -M@WM(`70?N0````"Z`@```$B)W^B/ZO__2(G?Z"?I__^X`0```%O#2(/L*$B) -M'"1(B6PD"$R)9"003(EL)!A,B70D($F)_DF)U8GS#[;K2&GMF`P``$B-;#TH -MN`$```"#?4@`#X3H````N`(```"`?3P?#X39````_XWH"P``BX7H"P``BX2% -M:`L``$&)Q$UKY%A-C60L6$&(1"0$@SH`=6A(C4((@WTT`G4,QT`$`0```&9F -MD&:0@'U0`'4\@WTX`'47#[;;B=Y,B??HE_+__XG>3(GWZ.WR__],B>I,B>9( -MB>_H?_#__TF-50A,B>9(B>_H(/3__^M33(GJ3(GF2(GOZ&#P___K0TR)YDB) -M[^A3\/__@'T\`74R@WTX`74+#[;S3(GWZ$SS__],B>9(B>_HT?3__X7`=1), -MB>9(B>_HPO#__[@!````ZP6X`````$B+'"1(BVPD"$R+9"003(ML)!A,BW0D -M($B#Q"C#9F:09F:09F:02(/L6$B)7"0H2(EL)#!,B60D.$R);"1`3(ET)$A, -MB7PD4$F)_$B+1Q!(B40D&(N`8!T``(D%`````(G%BX^@,@``B4PD)+@````` -MA?H```` -M`.FV`0``2(M,)!A(@<%8'0``B=#WT(D!N0````"^`````$R)YT'_5"0@]\4` -M`(``=$"[`````&9F9I`/ML-(:<"8#```0H-\(&@!=1Z)V,#H`HG&B=J#X@.# -MY@%,B>?H!^+__V9F9I!F9I#_PX#[`W;)QD0D(P!)BT0D$,>`"(`!``````#W -MQ?\!```/A/D```"`?"0C`1G29KH``('"%``#`$B+3"08QP0*[____XL$"HD% -M`````$&)Q_?0@\@0B00*2(G*2('""``#`$B)R$@%"``"`(!\)",`2`]%PHL` -MB04`````08G%0;X`````#[9$)".)1"04B40D$$$/MM:X``$``(G1T^")PT0A -M^[@!````T^!$(?A!B>E!@^$!B<%$"[__X5$)"1T#D$/MM:)WDR) -MY^C]X/__P>T"0<'M"$'_QD&`_@,/AGO____K"F9F9I!F9I#![0C1[?Y$)",/ -MA-W^__^[``````^VPTAIP)@,``!"@WP@:`$/A$3^____PX#[`W;C@/L$=0I, -MB>?H`````&:0N`$```!(BUPD*$B+;"0P3(MD)#A,BVPD0$R+="1(3(M\)%!( -M@\18PV9F9I!F9F:02(M'$,>`9!T```````"X`0```,-F9F:09F9FD&9F9I!( -MBU<0BX>@,@``B8)D'0``N`$```##9F9FD&9FD&9FD$%455-)B?R]`````&9F -M9I!`#[;=B=Y,B>?H`M7__XG?Z'O4__\%"`,``$F+5"00QP0"`0,``/_%0(#] -M`W;2OR!.``#H`````+T`````9F:00`^V_>A'U/__!0@#``!)BU0D$,<$`@`# -M``#_Q4"`_0-VWK\@H0<`Z`````"]`````$`/MO5,B>?H0]3____%0(#]`W;L -M6UU!7,-F9I!F9I!!54%455-(@^P(2(G[Z$[___^]`````$0/MN5$B>?HW=/_ -M_T&)Q4B+0Q!"BX0H``,``(D%`````(G!A<`/E<"!^1,!```/E<(/ML"%PG0E -M@?DC`0``=!U$B>9(B=_HOO;__TB+0Q!"BX0H``,``(D%`````(GJ#[;"QX2# -MW#(```$```#_Q4"`_0-VB[@!````2(/$"%M=05Q!7<-F9F:02(/L&$B)'"1, -MB60D"$R);"0028G]B?-$#[;F1(GFZ%WV__]$B>?H-=/__XG`28M5$(N$`@`# -M``")!0`````/MMM!QX2=W#(```$```"X`0```$B+'"1,BV0D"$R+;"002(/$ -M&,-F9F:09F9FD&9FD$B#[!!(B1PD3(ED)`A)B?R)\T`/MO[HU=+__P4(`P`` -M28M4)!"+%`*)%0````"#XO"#R@1)BTPD$(D4`0^VVT''A)S<,@```````+@! -M````2(L<)$R+9"0(2(/$$,-FD%532(G]NP````!F9I!F9I`/MO-(B>_H```` -M`/_#@/L#=NZX`0```%M=PV9FD&9FD$B#[!A(B5PD"$R)9"002(M'*$R+8!"+ -M7S`/MC=(B$(P@#```!`P``O^@#``#H`````$+'A",(`P`` -M``,``$B+7"0(3(MD)!!(@\08PV9FD&9FD&9FD$B+1RB+5S!(BT`0BX00``,` -M`(D%`````#T3`0``#Y3"/2,!```/E,`)T*@!#Y7`#[;`PV9F9I!F9I!F9I!F -M9I!(BTT@!=!,/MO)(B=_H`````$B)W^@`````6\-F9F:09F9FD&9FD&9FD$B#[$@/ -MMM)`#[;VQT0D..\```#'1"0P``````^V1"18B40D*`^V1"10B40D($4/MLE$ -MB4PD&$4/ML!$B40D$`^VR8E,)`C'!"0`````0;D`````0;@`````N0````#H -M`````$B#Q$C#9F9FD&9F9I!(@>R8````2(E<)&A(B6PD<$R)9"1X3(FL)(`` -M``!,B;0DB````$R)O"20````2(G]B4PD8$2)1"1<3(E,)%")\T&)U8N$)*@` -M``!FB40D3HN$)+````!FB40D3(N$)+@```!FB40D2HN$),````!FB40D2$2+ -MO"3(````1`^VM"30````1`^VI"38````#[;#2&G`F`P``(!\."D"=3$/MM)` -M#[;V3(U$)&2Y`````.@`````N@````"%P'1WBT0D9(/@#[H`````@_@#=6:0 -M00^VU0^V\T$/ML2)1"0X00^VQHE$)#!!#[?'B40D*`^W1"1(B40D(`^W1"1* -MB40D&`^W1"1,B40D$`^W1"1.B40D"(N$)*````")!"1,BTPD4$2+1"1$R+K"2`````3(NT)(@```!, -MB[PDD````$B!Q)@```##9F9FD&9FD&9FD$B#[#A(B5PD"$B);"003(ED)!A, -MB6PD($R)="0H3(E\)#!(B?V)="0$08G-18G&B=#`Z`)!B<>)T(/@`[L````` -M.!T/(M$)`0/MHPH'`$``(@-`````$B-E10` -M`P!(C844``(`183_2`]%PHL4)(D0]L$!#Y3`#[;`ZQEF9I!FD$2)]^@````` -M_\-$.>MRD[@`````2(M<)`A(BVPD$$R+9"083(ML)"!,BW0D*$R+?"0P2(/$ -M.,-F9I!F9I!F9I!(@>R8````2(E<)&A(B6PD<$R)9"1X3(FL)(````!,B;0D -MB````$R)O"20````2(E\)%B)3"141(G#3(E,)$A!B?>)T$2+K"2H````1(NT -M)+````"+E"2X````9HE4)#"+C"3`````9HE,)""+E"3(````9HE4)!`/MHPD -MT````(A,)`\/MI0DV````(A4)`Z)\0^VZ4AI[9@,``!(C6P]*$R+9Q"+53") -M5"0(@WTX`70&@WU(`74*N@````#I_@,```^V\$B)[^@`````0;CH`P``N;@+ -M``"Z`````+Y`````2(GOZ`````"Z`````(7`#X3)`P``@_L!=52+5"0(3(GI -M#[;%0HB$(@0!``!,B?$/ML5"B(0B"`$``(M,)#`/ML5"B(0B#`$``(M,)"`/ -MML5"B(0B$`$``(M,)!`/ML5"B(0B%`$``.M'9F:09I"X`/___V9$A>AU)69$ -MA?!U'V:%1"0P=1AFA40D(&9FD'4.9H5$)!!T&69F9I!F9I!(B>_H`````+H` -M````Z2X#``"+7"0(1HBL(P0!``!&B+0C"`$```^V1"0P0HB$(PP!```/ME0D -M($*(E",0`0``#[9,)!!"B(PC%`$```^V1"0/0HB$(Q@!``!(B>_H``````^V -M5"0.0HB4(QP!``"#?"14`'56N@$```!(@WPD2``/A;D"``!!N!`G``"Y'`P` -M`+H!````O@````!(B>_H`````(7`=1)(B>_H`````+H`````Z88"``!(B>_H -M`````+H!````Z70"``!!N!`G``"Y'`P``+H!````O@````!(B>_H`````(7` -M=1)(B>_H`````+H`````Z4$"``"+1"0(0@^VA"`<`0``B`4`````0;@0)P`` -MN?0!``"Z`0```+X(````2(GOZ`````"%P'422(GOZ`````"Z`````.G[`0`` -M0;T`````1#NL)*`````/@SH!``"+7"0(00^VSXE,)`1$B?C`Z`*(1"0#1(GZ -M@^(#B%0D`D(/MH0C'`$``(@%`````$6$[0^%MP```$6%[70Q0;AD````N5## -M``"+5"0$BW0D"$R)Y^@`````A0$``$0/MG0D -M`T0/MGPD`D&X9````+E0PP``N@$```"^`````$B)[^@`````A<`/A!P!``!) -MC90D%``#`$F-A"04``(`183V2`]%PD$/ML^#P0BZ`0```-/BB='WT8D(0;AD -M````N5##``"Z`0```+X(````2(GOZ`````"%P`^$VP```(-\)%0!=1Y$B>I" -M#[>$(P`!``!FB04`````2(M,)$AFB011ZQ5$B>A(BU0D2`^W!$)F0HF$(P`! -M``!!_\5$.ZPDH`````^"YO[__T&X9````+E0PP``N@$```"^`````$B)[^@` -M````0;T`````BUPD"(7`=1)(B>_H`````+H`````ZW-F9I!(BTPD6$B+01`/ -MMH08'`$``(@%`````(3`>`2H"'1#OV0```#H`````$'_Q4&!_4_#``!VRTB) -M[^@`````N@````#K+$B)[^@`````N@````#K'4B)[^@`````N@````#K#DB) -M[^@`````N@$```"0B=!(BUPD:$B+;"1P3(MD)'A,BZPD@````$R+M"2(```` -M3(N\))````!(@<28````PV9F9I!F9F:09F9FD&9FD%-(B?M(BT`0"0,/MH0*%`$``(@%`````,'@ -M&`D#B?!(BUPD0$B+;"1(3(MD)%!(@\18PV9F9I!32(/L0$2)PT`/MO;'1"0X -MZ`````^VTHE4)#!$B<#!Z!B)1"0H1(G`)0``_P#!Z!")1"0@#[;'B40D&$$/ -MMMB)7"00#[;)B4PD",<$)`````!!N0````!!N`$```"Y`````+H/````Z``` -M``!(@\1`6\-F9F:09F9FD&9FD&9FD$B#[#A(B5PD($B);"0H3(ED)#!)B?Q( -MB=.)]4`/MO9,C40D'+D`````N@\```#H`````+H`````A<`/A*@```"+1"0< -M9HD#P>@09HE#`D`/MO5,C40D'+D!````N@\```!,B>?H`````+H`````A_Z`,``.@`````#[;30`^V]4&X``,``+D" -M````3(GGZ`````")PI")T$B+'"1(BVPD"$R+9"002(/$&,-F9F:09F9FD&9F -MD$%7059!54%455-(@^P828G_2(E,)`A`B'0D$XG50;P`````9L=$)`8!`&;' -M1"0$``"[`````#C30$``&9FD&:0_\-` -M..MRAT&]``````^V1"03B00DOR!.``#H`````+L`````0#CKMG@WPD%`-F9I!T -M(4@/MD0D$TAIP)@,``!*C80XL`P``(!X#`!U!L9`#`'K/$@/MD0D$TAIP)@, -M``!"QH0XO`P```#K)+@`````ZR*X`````.L;2`^V1"032&G`F`P``$+&A#B\ -M#````+@!````2(/$&%M=05Q!74%>05_#D)"0D)"0D)"0D)"0D$B+!0````"+ -M0!C&A#@```0`H+H`````2(L-`````&:0BT$0#[:$.```!`"(!0````#_PH/Z -M!'[HN@````!F9I"+010/MH0X```$`(@%`````/_"@_H%?NBZ`````$B+#0`` -M``"+01`/MH0X```$`(@%`````/_"@_H$?NCSPV:02(L%`````(M`#,:$.``` -M!`"`2(L%`````(M`&,:$.```!`"PPV9F9I!F9F:09F:02(/L$$B)'"1(B6PD -M"$B)^^@[____2(L%`````(M`",:$&```!```2(L%`````(L`#[:L&```!`!` -MB"T`````2(G?Z(G___]`#[;%2(L<)$B+;"0(2(/$$,-F9F:09F:055-(B?N+ -MA_`$`0")!0````")Q8/@8H/X8G00B>B#R&)F#[;`9HF'\`0!`(N#```$`(D% -M`````$B)W^BQ_O__2(L%`````(M`",:$&```!``'2(L%`````(L`QH08```$ -M`!%(BP4`````BT`(QH08```$``5(BP4`````BP#&A!@```0`$4B)W^CC_O__ -MB:OP!`$`BX/P!`$`B04`````6UW#9F9FD&9F9I!F9I!F9I!54TB)^XN'\`0! -M`(D%`````(G%@^!B@_AB=!")Z(/(8F8/ML!FB8?P!`$`BX,```0`B04````` -M2(G?Z`'^__](BP4`````BT`(QH08```$``=(BP4`````BP#&A!@```0``$B+ -M!0````"+0`C&A!@```0`!4B+!0````"+`,:$&```!```2(G?Z#/^__^)J_`$ -M`0"+@_`$`0")!0````!;7<-F9F:09F9FD&9FD&9FD("_T3(```!U)4B#OY@R -M````=!)(BX>8,@``2(MX$.@`````\\-(BW\0Z`````#SPTB#OY@R````=!9( -MBX>8,@``2(MX$.@`````\\-F9F:02(M_$.@`````\\-F9I!FD+@`````PV9F -M9I!F9I!F9I!(@[^8,@```'0-2(N'F#(``$B+4!#K!$B+5Q!(@[^8,@```'0; -M2(L%`````$2+0`1!@<````0`ZQEF9F:09F:02(L%`````$2+0!Q!@<````0` -MBX+P!`$`B04`````B<&#X&*#^&)T$(G(@\AB9@^VP&:)@O`$`0"+@@``!`") -M!0````!`B+?0,@``1(G`0(@T$(F*\`0!`(N"\`0!`(D%`````,-F9F:09F9F -MD&9FD(GQA-)T#[@!````T^`(A]`R``#K#;C^____T\`@A]`R```/MK?0,@`` -MZ`````#SPTB#[!A(B1PD2(EL)`A,B60D$$B)^T&\`````(N'\`0!`(D%```` -M`(G%@^!B@_AB=!")Z(/(8F8/ML!FB8?P!`$`BX,```0`B04`````2(G?Z)O\ -M__\\/G472(G?Z*_^__^%P+@"````1`]$X&9F9I!(BP4`````BT`8QH08```$ -M`+")J_`$`0"+@_`$`0")!0````!!#[;$2(L<)$B+;"0(3(MD)!!(@\08PV9F -MD&:055-(B?V[`````&9FD&9FD$C'!0``````````2(GOZ"W___^$P'4*_\.! -M^^<#``!^WP^VP%M=PV9FD&9FD&9FD%532(/L"$B)_;L`````9I`/MH4($`$` -MB`4`````J`AT![@`````ZQF_`0```.@`````_\.!^P\G``!VU+C_````2(/$ -M"%M=PV9F9I!F9F:0#[:'#!`!`(@%`````$`X\`^4P`^VP,-F9I!F9I!F9I!3 -M2(G[QH<($`$`8.B`____AUU!\:#"!`!`$0/MM")T$B+7"0(2(ML -M)!!(@\08PV9F9I!F9I!F9I!F9I!33(G#A`@^V1@9%A-MY#$R-5@%FD$2("4C_P4G_R'7UQP0D`0```,=$)`P`````QD0D!`1, -MB50D&&8/ML!FB40D)(U&`\'H`F:)1"0F9D$/ML-FB40D*&8/ML-FB40D*L9$ -M)"Y`QD0D+V=(QT0D,`````!(B50D.$B)X@^V=0#H`````(7`#Y3`#[;`2(/$ -M2%M=PV:005=!5D%505154TB#[%A)B?Y,B40D($2)3"0<0(AT)#"(5"0OB`"9HE"!&;'0@8` -M@,="#`````!(BT0D2$*)A"LL`@``BT0D3$*)A"LP`@``0HL$*XD%`````"7_ -M__O_B40D"$*)!"O'1"0,`0```(!\)"\`>`K'1"0,"0```.L:28N^H#,``(M4 -M)!S!X@*)TDB+="0@Z`````"+1"08BU0D#$*)E"@D`@``O0````!$BV0D&&9F -MD&9FD$.+A"PH`@``B04`````B<.H`704O^@#``#H`````/_%@?WG`P``=MCV -MPP%T2(M$)!A"QX0H)`(````````/MD0D,"7^````08G`0<'@!T$/MC=!@<@K -M```/N98```"Z#P```$R)]^@`````NP````#IE@```/;#`G04BT0D&$+'1"@( -M`````+L`````ZWV+1"080L=$*`@`````NP$```"`?"0O`'@ZBU0D','B`D*+ -MA"@D`@``B04`````P>@0*<)(BX0DD````(E0((G228NVH#,``$B+?"0@Z``` -M``#K#TB+E"20````QT(@`````$$/MC=,C40D1+F6````N@\```!,B??H```` -M`$$/M@^#X0-)C844``,`28V5%``"`$'V!P1(#T70N`$!``#3X/?0B0)(BU0D -M2$F-OE@S``!(BW0D$.@`````@V0D#/Z+1"08BU0D#$*)E"@D`@``@4PD"``` -M!`"+5"0(0HD4*$+'1"@H`@```$''1T@!````B=A(@\186UU!7$%=05Y!7\-( -M@^Q(2(E<)!A(B6PD($R)9"0H3(EL)#!,B70D.$R)?"1`28GT3(MO$$R+=BA) -M_\:+1AS_R(E$)!#'1"04`````$B+5C!(B50D"$&`?@$!=1]!#[9&`HB'P#,` -M`$$/MD8#B(?!,P``Z50"``!F9F:008!^`0)U*4&`?@(!=1!!#[9&`XB'T3(` -M`.DR`@``QT90_O___^DF`@``9F:09F:008`^!78_08!^!"MF9I!FD'4S2(U, -M)!1(B?),B?;H+OO__X7`#X7^`0``0<=$)%#_____3(GG0?]4)$AF9I!FD.GC -M`0``0<:%`!`!``1!QH4($`$`1$R)\T&`?@$`#X3M````#[8#2/_#08G'#[8# -M2/_#B<5,B>_H1/G__T`/MO6Z`0```$R)[^AC^?__A,`/A5\!``!`]L4!=%6] -M`````$$/ML>)PH/X``^&DP```$&)QT&+1"0@.T0D%'8EC4+_.>A`#Y3&0`^V -M]DR)[^@`````BU0D%$B+3"0(B`0*_T0D%/_%1(GZ03GO=\;K5&:01(GZ#[;" -M2`'83"GP2(/``DAC5"002#G0#X_N````O0````!%A/]T*D4/MO]F9F:0#[8S -MN@````!,B>_HP/C__X3`#X6R````_\5(_\-!.>]WWH![`0`/A1?___]F9F:0 -M0<:%"!`!`%2`.P`/A*0```!,B>_HY_?__X7`#X6+````0<:%"!`!`$2^8``` -M`$R)[^@:^/__A`````ZPK_P3L-`````'RCBP4`````2&/02(D\U0````#_P(D%```` -M`,-F9I!FD$B#["A(B1PD2(EL)`A,B60D$$R);"083(ET)"!(B?U)B?8/MX;X -M`9!T``/____](BT40QX!H'0`` -M`@```$F+1A#'@/`$`0!B````OQ0```#H`````$F+1A"+D`#^"0")%0````!( -MBT401(FH9!T``$B+11!$B:!H'0``28M&$(F8\`0!`/;""`^4P`^VP$B+'"1( -MBVPD"$R+9"003(ML)!A,BW0D($B#Q"C#D$B#[!A(B1PD2(EL)`A,B60D$$B) -M^XGU2(M'$$2+H/`$`0!$B24`````2(M'$,>`\`0!`&(```"_%````.@````` -M2(M3$$"$[0^5P(B"`/P)`+\4````Z`````!(BT,01(F@\`0!`$B+'"1(BVPD -M"$R+9"002(/$&,-F9F:09F:0N``````[/0````!]-TACQTC'P0````!(C02` -M2,'@`@^W%`AFB18/MU0(`F:)5@(/ME0("(A6"`^V1`@)B$8)N`$```#SPV9F -M9I!F9I!F9I!!54%455-!O`````!!NO__``!$BRT`````NP````!$B>U!N0`` -M``!!B>MF9I!F9I"^`````$0YWGT]2,?'`````$6)V$ACQDB-!(!(C0R%```` -M``^W1#D"P>`0#[<4.0G01#G0=0K_1#D,9F:09F:0_\9$.<9\S4'_P4&`^0=V -ML/_#@/L?=II!_\1!@/S_=8E;74%<05W#9F:09F:09F:055-(B?U(B?.#/0`` -M````=0_'!0`````!````Z$#___](A=MT`\8#`+D`````.PT`````?4=(Q\8` -M````9F9FD$ACP4B-!(!(C12%`````(M%`#D$,G4;2(7;=`B+@@````"(`TAC -MP4B-!(`/MD2&#.L/_\$[#0````!\Q+@`````6UW#9F9FD&9F9I!F9F:0N+AT -M``##9F9FD&9FD&9FD+AH````PV9F9I!F9I!F9I!32(G[2(._@`````!U$DB+ -M?Q#H`````(A#!&9FD&9FD(![!`)T%TB#NX``````=")(BX.`````@'@$`G45 -MO@````!(B=_H`````$B)W^@`````N`````!(@[N``````'4&@'L$`'0%N`$` -M``!;PV:0055!5%532(/L"$F)_$&)]4B)U4B)STB)T[D`````NKAT``!(B>B( -M"$C_P$C_RG7VBQ4`````C4(!B04`````B1-(B7L(00^W1"0"/4`B```/A,P` -M```]0"(``']G/4(7```/A,H````]0A<``&9FD'\;/2`7```/A+4````]0!<` -M``^$J@```.FM````/2`B```/A(H````]("(``&9FD'\3/1`B```/A(4```!F -M9I#IA0```#TD(@``9F:09F:0=&#K=CT@(P``9F9FD&9FD'10/2`C``!_&3T` -M(P``9I!T2#T0(P``=$%F9F:09F:0ZT@]0",``'0I/4`C``!FD'\0/2(C``!T -M&69F9I!F9I#K*#TB)0``=!EF9F:09F:0ZQAFQT,&@6#K&F;'0P9"<.L29L=# -M!D)@ZPI!#[=$)`)FB4,&00^V1"0(B$,%9H%[!H%@N0``"`"X```0``]$R+H` -M````O@````#H`````$B)0Q!$B:WX_HY?G__[X`````2(GOZ(C[__^X -M`0```$B#Q`A;74%<05W#9F9FD&9F9I!32(G[2(-_$`!T#4B+=Q!(BW\(Z``` -M``!(@[N0=````'0>2(N3F'0``$B+LY!T``!(C;L(=```Z`````!F9F:02(.[ -MH'0```!T&DB+DZAT``!(B[.@=```2(V[*'0``.@`````2(.[B'0```!T$TB+ -MLXAT``!(C;MH=```Z`````!;PV9F9I!F9I!F9I!F9I!!5%-(@^P(28G\2(GS -M#[:':7$``(A&%<9&$@'&1A<(QD80"$B#OX``````#Y1&$TB-?CQ(Q\8````` -MZ`````#'0QA(:6=HQT,<4&]I;L=#('0@5&7'0R1C:&YOQT,H;&]G:<=#+&5S -M+"#'0S!);F,NQD,T`$&+A"3X8=```J?\#``!U-(E!)$C!Z"")02")\,'@"$B8 -M2(G"2`.7H'0``$B)41A(`X>H=```A,!U"HE!+$C!Z"")02CSPV9FD&9FD&9F -MD%532(/L"$B)_>@`````2(F%8'$``$B-M9AT``!(C;T(=```Z`````!(B860 -M=```2(VUJ'0``$B-O2AT``#H`````$B)A:!T``!(C;UH=```Z`````!(B86( -M=```2(M]"+X0````Z`````")A7!Q``!(BWT(OA0```#H`````(F%='$``$B+ -M?0B^/````.@`````B(5I<0``NP`````/ML/'1(48`0```,=$A2`!````_\.` -M^P%VYL=%=.9_UP#'17CF?]<`QT5P<>,'`4C'12@`````2(GOZ`````"Z```` -M`(7`#X2=````2(GOZ`````"[``````^V\TB)[^AO_O___\.`^P=V[DB+?0B^ -M$````.@`````B85P<0``2(M]"+X4````Z`````")A71Q``!(BWT(O@0```#H -M`````&:)A6QQ``!(BWT(O@P```#H`````(B%:G$``$B+?0B^#0```.@````` -MB(5K<0``2(M]"+X\````Z`````"(A6EQ``"Z`0```(G02(/$"%M=PY!,C4]` -M]H?@````X'0TN0````!-B`^@6X```` -M``]#T$'V06H"="U!]D%C"'0F08"Y@`````!T'$$/MH&`````J`)U"Z@!=`RZ -M`P```.L%N@0```")T(/("(A&`<8&_[@`````0?9!:@1T2$$/MX&P````N@8` -M``"H0'4KN@4```"H('4BN@0```"H$'49N@,```"H"'40N@(```"H!'4'B<+1 -MZH/B`8G0@\A`B`:X`0```//#9F:09F:09F:04TB)^TB+1S!(BU`0BT<\QH00 *** 21542 LINES SKIPPED *** From owner-dev-commits-src-main@freebsd.org Mon Apr 12 20:58:46 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 898F25DEB34; Mon, 12 Apr 2021 20:58:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FK1LG3XStz4tRG; Mon, 12 Apr 2021 20:58:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6C4811E555; Mon, 12 Apr 2021 20:58:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CKwk2P017571; Mon, 12 Apr 2021 20:58:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CKwktY017570; Mon, 12 Apr 2021 20:58:46 GMT (envelope-from git) Date: Mon, 12 Apr 2021 20:58:46 GMT Message-Id: <202104122058.13CKwktY017570@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 568e69e4eb0a - main - cxgbe: Add counters for iSCSI PDUs transmitted via TOE. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 568e69e4eb0ad1a5c69d8ea4592a4314bd6b6679 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 20:58:46 -0000 The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=568e69e4eb0ad1a5c69d8ea4592a4314bd6b6679 commit 568e69e4eb0ad1a5c69d8ea4592a4314bd6b6679 Author: John Baldwin AuthorDate: 2021-04-12 20:56:04 +0000 Commit: John Baldwin CommitDate: 2021-04-12 20:57:45 +0000 cxgbe: Add counters for iSCSI PDUs transmitted via TOE. Reviewed by: np MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D29297 --- sys/dev/cxgbe/adapter.h | 2 ++ sys/dev/cxgbe/t4_main.c | 2 ++ sys/dev/cxgbe/t4_sge.c | 10 ++++++++++ sys/dev/cxgbe/tom/t4_cpl_io.c | 3 +++ 4 files changed, 17 insertions(+) diff --git a/sys/dev/cxgbe/adapter.h b/sys/dev/cxgbe/adapter.h index 7dd4cb72c63c..c46f9626b95b 100644 --- a/sys/dev/cxgbe/adapter.h +++ b/sys/dev/cxgbe/adapter.h @@ -712,6 +712,8 @@ struct sge_wrq { /* ofld_txq: SGE egress queue + miscellaneous items */ struct sge_ofld_txq { struct sge_wrq wrq; + counter_u64_t tx_iscsi_pdus; + counter_u64_t tx_iscsi_octets; counter_u64_t tx_toe_tls_records; counter_u64_t tx_toe_tls_octets; } __aligned(CACHE_LINE_SIZE); diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c index b8500984fb8a..ce439b94aa6c 100644 --- a/sys/dev/cxgbe/t4_main.c +++ b/sys/dev/cxgbe/t4_main.c @@ -10756,6 +10756,8 @@ clear_stats(struct adapter *sc, u_int port_id) for_each_ofld_txq(vi, i, ofld_txq) { ofld_txq->wrq.tx_wrs_direct = 0; ofld_txq->wrq.tx_wrs_copied = 0; + counter_u64_zero(ofld_txq->tx_iscsi_pdus); + counter_u64_zero(ofld_txq->tx_iscsi_octets); counter_u64_zero(ofld_txq->tx_toe_tls_records); counter_u64_zero(ofld_txq->tx_toe_tls_octets); } diff --git a/sys/dev/cxgbe/t4_sge.c b/sys/dev/cxgbe/t4_sge.c index 002b4892e110..2c7e8f348331 100644 --- a/sys/dev/cxgbe/t4_sge.c +++ b/sys/dev/cxgbe/t4_sge.c @@ -4507,8 +4507,16 @@ alloc_ofld_txq(struct vi_info *vi, struct sge_ofld_txq *ofld_txq, int idx, if (rc != 0) return (rc); + ofld_txq->tx_iscsi_pdus = counter_u64_alloc(M_WAITOK); + ofld_txq->tx_iscsi_octets = counter_u64_alloc(M_WAITOK); ofld_txq->tx_toe_tls_records = counter_u64_alloc(M_WAITOK); ofld_txq->tx_toe_tls_octets = counter_u64_alloc(M_WAITOK); + SYSCTL_ADD_COUNTER_U64(&vi->ctx, children, OID_AUTO, + "tx_iscsi_pdus", CTLFLAG_RD, &ofld_txq->tx_iscsi_pdus, + "# of iSCSI PDUs transmitted"); + SYSCTL_ADD_COUNTER_U64(&vi->ctx, children, OID_AUTO, + "tx_iscsi_octets", CTLFLAG_RD, &ofld_txq->tx_iscsi_octets, + "# of payload octets in transmitted iSCSI PDUs"); SYSCTL_ADD_COUNTER_U64(&vi->ctx, children, OID_AUTO, "tx_toe_tls_records", CTLFLAG_RD, &ofld_txq->tx_toe_tls_records, "# of TOE TLS records transmitted"); @@ -4529,6 +4537,8 @@ free_ofld_txq(struct vi_info *vi, struct sge_ofld_txq *ofld_txq) if (rc != 0) return (rc); + counter_u64_free(ofld_txq->tx_iscsi_pdus); + counter_u64_free(ofld_txq->tx_iscsi_octets); counter_u64_free(ofld_txq->tx_toe_tls_records); counter_u64_free(ofld_txq->tx_toe_tls_octets); diff --git a/sys/dev/cxgbe/tom/t4_cpl_io.c b/sys/dev/cxgbe/tom/t4_cpl_io.c index 07340709934a..ee40d0646b71 100644 --- a/sys/dev/cxgbe/tom/t4_cpl_io.c +++ b/sys/dev/cxgbe/tom/t4_cpl_io.c @@ -1092,6 +1092,9 @@ t4_push_pdus(struct adapter *sc, struct toepcb *toep, int drop) } toep->txsd_avail--; + counter_u64_add(toep->ofld_txq->tx_iscsi_pdus, 1); + counter_u64_add(toep->ofld_txq->tx_iscsi_octets, plen); + t4_l2t_send(sc, wr, toep->l2te); } From owner-dev-commits-src-main@freebsd.org Mon Apr 12 20:58:47 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ADA775DEC10; Mon, 12 Apr 2021 20:58:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FK1LH4Mplz4tZn; Mon, 12 Apr 2021 20:58:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 88B6C1E069; Mon, 12 Apr 2021 20:58:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CKwlI8017599; Mon, 12 Apr 2021 20:58:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CKwlRD017598; Mon, 12 Apr 2021 20:58:47 GMT (envelope-from git) Date: Mon, 12 Apr 2021 20:58:47 GMT Message-Id: <202104122058.13CKwlRD017598@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 89df484739ef - main - iscsi: Kick threads out of iscsi_ioctl() during unload. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 89df484739efe93b52da467f35255ae538bb946b Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 20:58:47 -0000 The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=89df484739efe93b52da467f35255ae538bb946b commit 89df484739efe93b52da467f35255ae538bb946b Author: John Baldwin AuthorDate: 2021-04-12 20:56:16 +0000 Commit: John Baldwin CommitDate: 2021-04-12 20:58:21 +0000 iscsi: Kick threads out of iscsi_ioctl() during unload. iscsid can be sleeping in iscsi_ioctl() causing the destroy_dev() to sleep forever if iscsi.ko is unloaded while iscsid is running. Reported by: Jithesh Arakkan @ Chelsio Reviewed by: mav MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D29688 --- sys/dev/iscsi/iscsi.c | 11 +++++++++++ sys/dev/iscsi/iscsi.h | 1 + 2 files changed, 12 insertions(+) diff --git a/sys/dev/iscsi/iscsi.c b/sys/dev/iscsi/iscsi.c index 4367f780d84b..13a35c371c40 100644 --- a/sys/dev/iscsi/iscsi.c +++ b/sys/dev/iscsi/iscsi.c @@ -1333,6 +1333,11 @@ iscsi_ioctl_daemon_wait(struct iscsi_softc *sc, } if (is == NULL) { + if (sc->sc_unloading) { + sx_sunlock(&sc->sc_lock); + return (ENXIO); + } + /* * No session requires attention from iscsid(8); wait. */ @@ -2560,6 +2565,12 @@ static int iscsi_unload(void) { + /* Awaken any threads asleep in iscsi_ioctl(). */ + sx_xlock(&sc->sc_lock); + sc->sc_unloading = true; + cv_signal(&sc->sc_cv); + sx_xunlock(&sc->sc_lock); + if (sc->sc_cdev != NULL) { ISCSI_DEBUG("removing device node"); destroy_dev(sc->sc_cdev); diff --git a/sys/dev/iscsi/iscsi.h b/sys/dev/iscsi/iscsi.h index 80ac9d877107..793b7529c7c0 100644 --- a/sys/dev/iscsi/iscsi.h +++ b/sys/dev/iscsi/iscsi.h @@ -132,6 +132,7 @@ struct iscsi_softc { TAILQ_HEAD(, iscsi_session) sc_sessions; struct cv sc_cv; unsigned int sc_last_session_id; + bool sc_unloading; eventhandler_tag sc_shutdown_pre_eh; eventhandler_tag sc_shutdown_post_eh; }; From owner-dev-commits-src-main@freebsd.org Mon Apr 12 21:35:09 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8DE665DF826; Mon, 12 Apr 2021 21:35:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FK28F3f3Lz3BmR; Mon, 12 Apr 2021 21:35:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 613CE1EF9A; Mon, 12 Apr 2021 21:35:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CLZ9ac070343; Mon, 12 Apr 2021 21:35:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CLZ9Z7070342; Mon, 12 Apr 2021 21:35:09 GMT (envelope-from git) Date: Mon, 12 Apr 2021 21:35:09 GMT Message-Id: <202104122135.13CLZ9Z7070342@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 76681661be28 - main - OCF: Remove support for asymmetric cryptographic operations. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 76681661be2859622872c3a8a1bd68260403ddd0 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 21:35:09 -0000 The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=76681661be2859622872c3a8a1bd68260403ddd0 commit 76681661be2859622872c3a8a1bd68260403ddd0 Author: John Baldwin AuthorDate: 2021-04-12 21:27:42 +0000 Commit: John Baldwin CommitDate: 2021-04-12 21:28:43 +0000 OCF: Remove support for asymmetric cryptographic operations. There haven't been any non-obscure drivers that supported this functionality and it has been impossible to test to ensure that it still works. The only known consumer of this interface was the engine in OpenSSL < 1.1. Modern OpenSSL versions do not include support for this interface as it was not well-documented. Reviewed by: cem Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D29736 --- ObsoleteFiles.inc | 7 + share/man/man4/crypto.4 | 145 +++---------- share/man/man9/Makefile | 5 - share/man/man9/crypto.9 | 32 +-- share/man/man9/crypto_asym.9 | 178 ---------------- share/man/man9/crypto_driver.9 | 7 +- sys/dev/hifn/hifn7751.c | 2 +- sys/dev/safe/safe.c | 4 +- sys/mips/nlm/dev/sec/nlmsec.c | 2 +- sys/opencrypto/crypto.c | 404 +------------------------------------ sys/opencrypto/cryptodev.c | 248 ----------------------- sys/opencrypto/cryptodev.h | 58 ------ sys/opencrypto/cryptodev_if.m | 36 +--- tools/tools/crypto/Makefile | 5 +- tools/tools/crypto/cryptokeytest.c | 270 ------------------------- 15 files changed, 56 insertions(+), 1347 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 1019436f1e28..39cb638129e9 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -40,6 +40,13 @@ # xargs -n1 | sort | uniq -d; # done +# 20210412: Remove kernel asymmetric crypto +OLD_FILES+=usr/share/man/man9/crypto_asym.9 +OLD_FILES+=usr/share/man/man9/crypto_kdispatch.9 +OLD_FILES+=usr/share/man/man9/crypto_kdone.9 +OLD_FILES+=usr/share/man/man9/crypto_kregister.9 +OLD_FILES+=usr/share/man/man9/CRYPTODEV_KPROCESS.9 + # 20210410: remove unused libexec/rc.d/archdep OLD_FILES+=etc/rc.d/archdep diff --git a/share/man/man4/crypto.4 b/share/man/man4/crypto.4 index f146b50ecd4b..56fd4f484c3b 100644 --- a/share/man/man4/crypto.4 +++ b/share/man/man4/crypto.4 @@ -60,7 +60,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 24, 2020 +.Dd April 12, 2021 .Dt CRYPTO 4 .Os .Sh NAME @@ -93,53 +93,32 @@ then issue calls on the descriptor. User-mode access to .Pa /dev/crypto -is controlled by two +is controlled by the +.Ic kern.cryptodevallowsoft .Xr sysctl 8 -variables: -.Ic kern.userasymcrypto -and -.Ic kern.cryptodevallowsoft . -.Pp -The -.Nm -device provides two distinct modes of operation: one mode for -symmetric-keyed cryptographic requests and digests, and a second mode for -both asymmetric-key (public-key/private-key) requests and -modular arithmetic (for Diffie-Hellman key exchange and other -cryptographic protocols). -The two modes are described separately below. -.Sh DEPRECATION NOTICE -The asymmetric-key operations supported by this interface will not be -present in -.Fx 14.0 -and later. +variable. +If this variable is zero, +then user-mode sessions are only permitted to use cryptography coprocessors. .Sh THEORY OF OPERATION -Regardless of whether symmetric-key or asymmetric-key operations are -to be performed, use of the device requires a basic series of steps: +Use of the device requires a basic series of steps: .Bl -enum .It Open the .Pa /dev/crypto device. .It -If any symmetric-keyed cryptographic or digest operations will be performed, -create a session with +Create a session with .Dv CIOCGSESSION or .Dv CIOCGSESSION2 . -Most applications will require at least one symmetric session. +Applications will require at least one symmetric session. Since cipher and MAC keys are tied to sessions, many applications will require more. -Asymmetric operations do not use sessions. .It Submit requests, synchronously with .Dv CIOCCRYPT -(symmetric), -.Dv CIOCCRYPTAEAD -(symmetric), or -.Dv CIOCKEY -(asymmetric). +.Dv CIOCCRYPTAEAD . .It Optionally destroy a session with .Dv CIOCFSESSION . @@ -151,22 +130,27 @@ This will automatically close any remaining sessions associated with the file desriptor. .El .Sh SYMMETRIC-KEY OPERATION -The symmetric-key operation mode provides a context-based API +.Nm cryptodev +provides a context-based API to traditional symmetric-key encryption (or privacy) algorithms, -or to keyed and unkeyed one-way hash (HMAC and MAC) algorithms. -The symmetric-key mode also permits encrypt-then-authenticate fused operation, -where the hardware performs both a privacy algorithm and an integrity-check +keyed and unkeyed one-way hash (HMAC and MAC) algorithms, +encrypt-then-authenticate (ETA) fused operations, +and authenticated encryption with additional data (AEAD) operations. +For ETA operations, +drivers perform both a privacy algorithm and an integrity-check algorithm in a single pass over the data: either a fused encrypt/HMAC-generate operation, or a fused HMAC-verify/decrypt operation. +Similarly, for AEAD operations, +drivers perform either an encrypt/MAC-generate operation +or a MAC-verify/decrypt operation. .Pp -To use symmetric mode, you must first create a session specifying -the algorithm(s) and key(s) to use; then issue encrypt or decrypt -requests against the session. +The algorithm(s) and key(s) to use are specified when a session is +created. +Individual requests are able to specify per-request initialization vectors +or nonces. .Ss Algorithms For a list of supported algorithms, see -.Xr crypto 7 -and -.Xr crypto 9 . +.Xr crypto 7 . .Ss IOCTL Request Descriptions .\" .Bl -tag -width CIOCGSESSION @@ -216,11 +200,13 @@ privacy algorithm, integrity algorithm, and keys specified in The special value 0 for either privacy or integrity is reserved to indicate that the indicated operation (privacy or integrity) is not desired for this session. +ETA sessions specify both privacy and integrity algorithms. +AEAD sessions specify only a privacy algorithm. .Pp Multiple sessions may be bound to a single file descriptor. The session ID returned in .Fa sessp-\*[Gt]ses -is supplied as a required field in the symmetric-operation structure +is supplied as a required field in the operation structure .Fa crypt_op for future encryption or hashing requests. .\" .Pp @@ -229,7 +215,7 @@ for future encryption or hashing requests. .\" .Nx .\" extension. .Pp -For non-zero symmetric-key privacy algorithms, the privacy algorithm +For non-zero privacy algorithms, the privacy algorithm must be specified in .Fa sessp-\*[Gt]cipher , the key length in @@ -290,7 +276,7 @@ struct crypt_op { }; .Ed -Request a symmetric-key (or hash) operation. +Request an encryption/decryption (or hash) operation. To encrypt, set .Fa cr_op-\*[Gt]op to @@ -344,75 +330,6 @@ to include in the authentication mode. Destroys the session identified by .Fa ses_id . .El -.\" -.Sh ASYMMETRIC-KEY OPERATION -.Ss Asymmetric-key algorithms -Contingent upon hardware support, the following asymmetric -(public-key/private-key; or key-exchange subroutine) operations may -also be available: -.Pp -.Bl -column "CRK_DH_COMPUTE_KEY" "Input parameter" "Output parameter" -offset indent -compact -.It Em "Algorithm" Ta "Input parameter" Ta "Output parameter" -.It Em " " Ta "Count" Ta "Count" -.It Dv CRK_MOD_EXP Ta 3 Ta 1 -.It Dv CRK_MOD_EXP_CRT Ta 6 Ta 1 -.It Dv CRK_DSA_SIGN Ta 5 Ta 2 -.It Dv CRK_DSA_VERIFY Ta 7 Ta 0 -.It Dv CRK_DH_COMPUTE_KEY Ta 3 Ta 1 -.El -.Pp -See below for discussion of the input and output parameter counts. -.Ss Asymmetric-key commands -.Bl -tag -width CIOCKEY -.It Dv CIOCASYMFEAT Fa int *feature_mask -Returns a bitmask of supported asymmetric-key operations. -Each of the above-listed asymmetric operations is present -if and only if the bit position numbered by the code for that operation -is set. -For example, -.Dv CRK_MOD_EXP -is available if and only if the bit -.Pq 1 \*[Lt]\*[Lt] Dv CRK_MOD_EXP -is set. -.It Dv CIOCKEY Fa struct crypt_kop *kop -.Bd -literal -struct crypt_kop { - u_int crk_op; /* e.g. CRK_MOD_EXP */ - u_int crk_status; /* return status */ - u_short crk_iparams; /* # of input params */ - u_short crk_oparams; /* # of output params */ - u_int crk_pad1; - struct crparam crk_param[CRK_MAXPARAM]; -}; - -/* Bignum parameter, in packed bytes. */ -struct crparam { - void * crp_p; - u_int crp_nbits; -}; - -.Ed -Performs an asymmetric-key operation from the list above. -The specific operation is supplied in -.Fa kop-\*[Gt]crk_op ; -final status for the operation is returned in -.Fa kop-\*[Gt]crk_status . -The number of input arguments and the number of output arguments -is specified in -.Fa kop-\*[Gt]crk_iparams -and -.Fa kop-\*[Gt]crk_iparams , -respectively. -The field -.Fa crk_param[] -must be filled in with exactly -.Fa kop-\*[Gt]crk_iparams + kop-\*[Gt]crk_oparams -arguments, each encoded as a -.Fa struct crparam -(address, bitlength) pair. -.Pp -The semantics of these arguments are currently undocumented. -.El .Sh SEE ALSO .Xr aesni 4 , .Xr hifn 4 , @@ -444,5 +361,3 @@ must follow whether privacy or integrity algorithms were specified for session: if you request a .No non- Ns Dv NULL algorithm, you must supply a suitably-sized buffer. -.Pp -The scheme for passing arguments for asymmetric requests is baroque. diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index efdd8b2f6e9c..1a68b1f80882 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -72,7 +72,6 @@ MAN= accept_filter.9 \ cr_seeothergids.9 \ cr_seeotheruids.9 \ crypto.9 \ - crypto_asym.9 \ crypto_buffer.9 \ crypto_driver.9 \ crypto_request.9 \ @@ -913,10 +912,6 @@ MLINKS+=cpuset.9 CPUSET_T_INITIALIZER.9 \ cpuset.9 CPU_COPY_STORE_REL.9 MLINKS+=critical_enter.9 critical.9 \ critical_enter.9 critical_exit.9 -MLINKS+=crypto_asym.9 crypto_kdispatch.9 \ - crypto_asym.9 crypto_kdone.9 \ - crypto_asym.9 crypto_kregister.9 \ - crypto_asym.9 CRYPTODEV_KPROCESS.9 MLINKS+=crypto_buffer.9 crypto_apply.9 \ crypto_buffer.9 crypto_apply_buf.9 \ crypto_buffer.9 crypto_buffer_contiguous_segment.9 \ diff --git a/share/man/man9/crypto.9 b/share/man/man9/crypto.9 index 69fe3339a757..d78daa253945 100644 --- a/share/man/man9/crypto.9 +++ b/share/man/man9/crypto.9 @@ -17,7 +17,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 18, 2021 +.Dd April 12, 2021 .Dt CRYPTO 9 .Os .Sh NAME @@ -35,15 +35,10 @@ through the device. .Pp .Nm -supports two modes of operation: -one mode for symmetric-keyed cryptographic requests and digest, -and a second mode for asymmetric-key requests and modular arithmetic. -.Ss Symmetric-Key Mode -Symmetric-key operations include encryption and decryption operations +supports encryption and decryption operations using block and stream ciphers as well as computation and verification of message authentication codes (MACs). -In this mode, -consumers allocate sessions to describe a transform as discussed in +Consumers allocate sessions to describe a transform as discussed in .Xr crypto_session 9 . Consumers then allocate request objects to describe each transformation such as encrypting a network packet or decrypting a disk sector. @@ -56,18 +51,6 @@ consumers. describes the interfaces drivers use to register with the framework, helper routines the framework provides to faciliate request processing, and the interfaces drivers are required to provide. -.Ss Asymmetric-Key Mode -Assymteric-key operations do not use sessions. -Instead, -these operations perform individual mathematical operations using a set -of input and output parameters. -These operations are described in -.Xr crypto_asym 9 . -Drivers that support asymmetric operations use additional interfaces -described in -.Xr crypto_asym 9 -in addition to the base interfaces described in -.Xr crypto_driver 9 . .Ss Callbacks Since the consumers may not be associated with a process, drivers may not @@ -83,10 +66,9 @@ Errors are reported to the callback function. Session initialization does not use callbacks and returns errors synchronously. .Ss Session Migration -For symmetric-key operations, -a specific error code, +Operations may fail with a specific error code, .Er EAGAIN , -is used to indicate that a session handle has changed and that the +to indicate that a session handle has changed and that the request may be re-submitted immediately with the new session. The consumer should update its saved copy of the session handle to the value of @@ -95,9 +77,6 @@ so that future requests use the new session. .Ss Supported Algorithms More details on some algorithms may be found in .Xr crypto 7 . -These algorithms are used for symmetric-mode operations. -Asymmetric-mode operations support operations described in -.Xr crypto_asym 9 . .Pp The following authentication algorithms are supported: .Pp @@ -156,7 +135,6 @@ most of the framework code .Xr crypto 4 , .Xr ipsec 4 , .Xr crypto 7 , -.Xr crypto_asym 9 , .Xr crypto_driver 9 , .Xr crypto_request 9 , .Xr crypto_session 9 , diff --git a/share/man/man9/crypto_asym.9 b/share/man/man9/crypto_asym.9 deleted file mode 100644 index c21a72f8d1c4..000000000000 --- a/share/man/man9/crypto_asym.9 +++ /dev/null @@ -1,178 +0,0 @@ -.\" Copyright (c) 2020, Chelsio Inc -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions are met: -.\" -.\" 1. Redistributions of source code must retain the above copyright notice, -.\" this list of conditions and the following disclaimer. -.\" -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" 3. Neither the name of the Chelsio Inc nor the names of its -.\" contributors may be used to endorse or promote products derived from -.\" this software without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -.\" POSSIBILITY OF SUCH DAMAGE. -.\" -.\" * Other names and brands may be claimed as the property of others. -.\" -.\" $FreeBSD$ -.\" -.Dd March 27, 2020 -.Dt CRYPTO_ASYM 9 -.Os -.Sh NAME -.Nm crypto_asym -.Nd asymmetric cryptographic operations -.Sh SYNOPSIS -.In opencrypto/cryptodev.h -.Ft int -.Fn crypto_kdispatch "struct cryptkop *krp" -.Ft void -.Fn crypto_kdone "struct cryptkop *krp" -.Ft int -.Fn crypto_kregister "uint32_t driverid" "int kalg" "uint32_t flags" -.Ft int -.Fn CRYPTODEV_KPROCESS "device_t dev" "struct cryptop *krp" "int flags" -.Sh DESCRIPTION -The in-kernel cryptographic kernel framework supports asymmetric -requests (keying requests) in addition to symmetric operations. -There are currently no in-kernel users of these requests, -but applications can make requests of hardware drivers via the -.Pa /dev/crypto -device . -.Pp -Some APIs are shared with the framework's symmetric request support. -This manual describes the APIs and data structures unique to -asymmetric requests. -.Pp -.Ss Request Objects -A request is described by a -.Vt struct cryptkop -containing the following fields: -.Bl -tag -width "krp_callback" -.It Fa krp_op -Operation to perform. -Available operations include -.Dv CRK_MOD_EXP , -.Dv CRK_MOD_EXP_CRT , -.Dv CRK_DSA_SIGN , -.Dv CRK_DSA_VERIFY , -and -.Dv CRK_DH_COMPUTE_KEY . -.It Fa krp_status -Error status. -Either zero on success, -or an error if an operation fails. -Set by drivers prior to completing a request via -.Fn crypto_kdone . -.It Fa krp_iparams -Count of input parameters. -.It Fa krp_oparams -Count of output parameters. -.It Fa krp_crid -Requested device. -.It Fa krp_hid -Device used to complete the request. -.It Fa krp_param -Array of parameters. -The array contains the input parameters first followed by the output -parameters. -Each parameter is stored as a bignum. -Each bignum is described by a -.Vt struct crparam -containing the following fields: -.Bl -tag -width "crp_nbits" -.It Fa crp_p -Pointer to array of packed bytes. -.It Fa crp_nbits -Size of bignum in bits. -.El -.It Fa krp_callback -Callback function. -This must point to a callback function of type -.Vt void (*)(struct cryptkop *) . -The callback function should inspect -.Fa krp_status -to determine the status of the completed operation. -.El -.Pp -New requests should be initialized to zero before setting fields to -appropriate values. -Once the request has been populated, -it should be passed to -.Fn crypto_kdispatch . -.Pp -.Fn crypto_kdispatch -will choose a device driver to perform the operation described by -.Fa krp -and invoke that driver's -.Fn CRYPTO_KPROCESS -method. -.Ss Driver API -Drivers register support for asymmetric operations by calling -.Fn crypto_kregister -for each supported algorithm. -.Fa driverid -should be the value returned by an earlier call to -.Fn crypto_get_driverid . -.Fa kalg -should list one of the operations that can be set in -.Fa krp_op . -.Fa flags -is a bitmask of zero or more of the following values: -.Bl -tag -width "CRYPTO_ALG_FLAG_RNG_ENABLE" -.It Dv CRYPTO_ALG_FLAG_RNG_ENABLE -Device has a hardware RNG for DH/DSA. -.It Dv CRYPTO_ALG_FLAG_DSA_SHA -Device can compute a SHA digest of a message. -.El -.Pp -Drivers unregister with the framework via -.Fn crypto_unregister_all . -.Pp -Similar to -.Fn CRYPTO_PROCESS , -.Fn CRYPTO_KPROCESS -should complete the request or schedule it for asynchronous -completion. -If this method is not able to complete a request due to insufficient -resources, -it can defer the request (and future asymmetric requests) by returning -.Dv ERESTART . -Once resources are available, -the driver should invoke -.Fn crypto_unblock -with -.Dv CRYPTO_ASYMQ -to resume processing of asymmetric requests. -.Pp -Once a request is completed, -the driver should set -.Fa krp_status -and then call -.Fn crypto_kdone . -.Sh RETURN VALUES -.Fn crypto_kdispatch , -.Fn crypto_kregister , -and -.Fn CRYPTODEV_KPROCESS -return zero on success or an error on failure. -.Sh SEE ALSO -.Xr crypto 7 , -.Xr crypto 9 , -.Xr crypto_driver 9 , -.Xr crypto_request 9 , -.Xr crypto_session 9 diff --git a/share/man/man9/crypto_driver.9 b/share/man/man9/crypto_driver.9 index 930cc0d8bde4..b0032e7fa385 100644 --- a/share/man/man9/crypto_driver.9 +++ b/share/man/man9/crypto_driver.9 @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 9, 2020 +.Dd April 12, 2021 .Dt CRYPTO_DRIVER 9 .Os .Sh NAME @@ -285,13 +285,10 @@ is the value returned by .Fn crypto_get_driverid . .Fa what indicates which types of requests the driver is able to handle again: -.Bl -tag -width "CRYPTO_ASYMQ" +.Bl -tag -width "CRYPTO_SYMQ" .It Dv CRYPTO_SYMQ indicates that the driver is able to handle symmetric requests passed to .Fn CRYPTODEV_PROCESS . -.It Dv CRYPTO_ASYMQ -indicates that the driver is able to handle asymmetric requests passed to -.Fn CRYPTODEV_KPROCESS . .El .Pp .Pp diff --git a/sys/dev/hifn/hifn7751.c b/sys/dev/hifn/hifn7751.c index 240d801e5b12..033ef7edf10d 100644 --- a/sys/dev/hifn/hifn7751.c +++ b/sys/dev/hifn/hifn7751.c @@ -2252,7 +2252,7 @@ hifn_intr(void *arg) HIFN_UNLOCK(sc); if (sc->sc_needwakeup) { /* XXX check high watermark */ - int wakeup = sc->sc_needwakeup & (CRYPTO_SYMQ|CRYPTO_ASYMQ); + int wakeup = sc->sc_needwakeup & CRYPTO_SYMQ; #ifdef HIFN_DEBUG if (hifn_debug) device_printf(sc->sc_dev, diff --git a/sys/dev/safe/safe.c b/sys/dev/safe/safe.c index 46cd8e1b6147..cc1f16fc9ed3 100644 --- a/sys/dev/safe/safe.c +++ b/sys/dev/safe/safe.c @@ -385,8 +385,6 @@ safe_attach(device_t dev) #if 0 printf(" key"); sc->sc_flags |= SAFE_FLAGS_KEY; - crypto_kregister(sc->sc_cid, CRK_MOD_EXP, 0); - crypto_kregister(sc->sc_cid, CRK_MOD_EXP_CRT, 0); #endif } if (sc->sc_devinfo & SAFE_DEVINFO_DES) { @@ -584,7 +582,7 @@ safe_intr(void *arg) } if (sc->sc_needwakeup) { /* XXX check high watermark */ - int wakeup = sc->sc_needwakeup & (CRYPTO_SYMQ|CRYPTO_ASYMQ); + int wakeup = sc->sc_needwakeup & CRYPTO_SYMQ; DPRINTF(("%s: wakeup crypto %x\n", __func__, sc->sc_needwakeup)); sc->sc_needwakeup &= ~wakeup; diff --git a/sys/mips/nlm/dev/sec/nlmsec.c b/sys/mips/nlm/dev/sec/nlmsec.c index c28eaf334613..9318206a04fd 100644 --- a/sys/mips/nlm/dev/sec/nlmsec.c +++ b/sys/mips/nlm/dev/sec/nlmsec.c @@ -281,7 +281,7 @@ nlm_xlpsec_msgring_handler(int vc, int size, int code, int src_id, atomic_add_int(&creditleft, sc->sec_msgsz); if (creditleft >= (NLM_CRYPTO_LEFT_REQS)) { crypto_unblock(sc->sc_cid, sc->sc_needwakeup); - sc->sc_needwakeup &= (~(CRYPTO_SYMQ | CRYPTO_ASYMQ)); + sc->sc_needwakeup &= ~CRYPTO_SYMQ; } } if (cmd->hash_dst_len != 0) { diff --git a/sys/opencrypto/crypto.c b/sys/opencrypto/crypto.c index 1c9d79af8c91..b56d0fb70698 100644 --- a/sys/opencrypto/crypto.c +++ b/sys/opencrypto/crypto.c @@ -98,8 +98,7 @@ SDT_PROVIDER_DEFINE(opencrypto); /* * Crypto drivers register themselves by allocating a slot in the - * crypto_drivers table with crypto_get_driverid() and then registering - * each asym algorithm they support with crypto_kregister(). + * crypto_drivers table with crypto_get_driverid(). */ static struct mtx crypto_drivers_mtx; /* lock on driver table */ #define CRYPTO_DRIVER_LOCK() mtx_lock(&crypto_drivers_mtx) @@ -118,13 +117,10 @@ struct cryptocap { device_t cc_dev; uint32_t cc_hid; uint32_t cc_sessions; /* (d) # of sessions */ - uint32_t cc_koperations; /* (d) # os asym operations */ - uint8_t cc_kalg[CRK_ALGORITHM_MAX + 1]; int cc_flags; /* (d) flags */ #define CRYPTOCAP_F_CLEANUP 0x80000000 /* needs resource cleanup */ int cc_qblocked; /* (q) symmetric q blocked */ - int cc_kqblocked; /* (q) asymmetric q blocked */ size_t cc_session_size; volatile int cc_refs; }; @@ -139,16 +135,8 @@ struct crypto_session { /* Driver softc follows. */ }; -/* - * There are two queues for crypto requests; one for symmetric (e.g. - * cipher) operations and one for asymmetric (e.g. MOD)operations. - * A single mutex is used to lock access to both queues. We could - * have one per-queue but having one simplifies handling of block/unblock - * operations. - */ static int crp_sleep = 0; static TAILQ_HEAD(cryptop_q ,cryptop) crp_q; /* request queues */ -static TAILQ_HEAD(,cryptkop) crp_kq; static struct mtx crypto_q_mtx; #define CRYPTO_Q_LOCK() mtx_lock(&crypto_q_mtx) #define CRYPTO_Q_UNLOCK() mtx_unlock(&crypto_q_mtx) @@ -172,7 +160,6 @@ struct crypto_ret_worker { TAILQ_HEAD(,cryptop) crp_ordered_ret_q; /* ordered callback queue for symetric jobs */ TAILQ_HEAD(,cryptop) crp_ret_q; /* callback queue for symetric jobs */ - TAILQ_HEAD(,cryptkop) crp_ret_kq; /* callback queue for asym jobs */ uint32_t reorder_ops; /* total ordered sym jobs received */ uint32_t reorder_cur_seq; /* current sym job dispatched */ @@ -201,16 +188,6 @@ SYSCTL_INT(_kern, OID_AUTO, crypto_workers_num, CTLFLAG_RDTUN, static uma_zone_t cryptop_zone; -int crypto_userasymcrypto = 1; -SYSCTL_INT(_kern_crypto, OID_AUTO, asym_enable, CTLFLAG_RW, - &crypto_userasymcrypto, 0, - "Enable user-mode access to asymmetric crypto support"); -#ifdef COMPAT_FREEBSD12 -SYSCTL_INT(_kern, OID_AUTO, userasymcrypto, CTLFLAG_RW, - &crypto_userasymcrypto, 0, - "Enable/disable user-mode access to asymmetric crypto support"); -#endif - int crypto_devallowsoft = 0; SYSCTL_INT(_kern_crypto, OID_AUTO, allow_soft, CTLFLAG_RW, &crypto_devallowsoft, 0, @@ -228,7 +205,6 @@ static struct proc *cryptoproc; static void crypto_ret_proc(struct crypto_ret_worker *ret_worker); static void crypto_destroy(void); static int crypto_invoke(struct cryptocap *cap, struct cryptop *crp, int hint); -static int crypto_kinvoke(struct cryptkop *krp); static void crypto_task_invoke(void *ctx, int pending); static void crypto_batch_enqueue(struct cryptop *crp); @@ -308,8 +284,6 @@ cap_rele(struct cryptocap *cap) KASSERT(cap->cc_sessions == 0, ("freeing crypto driver with active sessions")); - KASSERT(cap->cc_koperations == 0, - ("freeing crypto driver with active key operations")); free(cap, M_CRYPTO_DATA); } @@ -324,7 +298,6 @@ crypto_init(void) MTX_DEF|MTX_QUIET); TAILQ_INIT(&crp_q); - TAILQ_INIT(&crp_kq); mtx_init(&crypto_q_mtx, "crypto", "crypto op queues", MTX_DEF); cryptop_zone = uma_zcreate("cryptop", @@ -358,7 +331,6 @@ crypto_init(void) FOREACH_CRYPTO_RETW(ret_worker) { TAILQ_INIT(&ret_worker->crp_ordered_ret_q); TAILQ_INIT(&ret_worker->crp_ret_q); - TAILQ_INIT(&ret_worker->crp_ret_kq); ret_worker->reorder_ops = 0; ret_worker->reorder_cur_seq = 0; @@ -1114,43 +1086,6 @@ crypto_getcaps(int hid) return (flags); } -/* - * Register support for a key-related algorithm. This routine - * is called once for each algorithm supported a driver. - */ -int -crypto_kregister(uint32_t driverid, int kalg, uint32_t flags) -{ - struct cryptocap *cap; - int err; - - CRYPTO_DRIVER_LOCK(); - - cap = crypto_checkdriver(driverid); - if (cap != NULL && - (CRK_ALGORITM_MIN <= kalg && kalg <= CRK_ALGORITHM_MAX)) { - /* - * XXX Do some performance testing to determine placing. - * XXX We probably need an auxiliary data structure that - * XXX describes relative performances. - */ - - cap->cc_kalg[kalg] = flags | CRYPTO_ALG_FLAG_SUPPORTED; - if (bootverbose) - printf("crypto: %s registers key alg %u flags %u\n" - , device_get_nameunit(cap->cc_dev) - , kalg - , flags - ); - gone_in_dev(cap->cc_dev, 14, "asymmetric crypto"); - err = 0; - } else - err = EINVAL; - - CRYPTO_DRIVER_UNLOCK(); - return err; -} - /* * Unregister all algorithms associated with a crypto driver. * If there are pending sessions using it, leave enough information @@ -1177,7 +1112,7 @@ crypto_unregister_all(uint32_t driverid) * XXX: This doesn't do anything to kick sessions that * have no pending operations. */ - while (cap->cc_sessions != 0 || cap->cc_koperations != 0) + while (cap->cc_sessions != 0) mtx_sleep(cap, &crypto_drivers_mtx, 0, "cryunreg", 0); CRYPTO_DRIVER_UNLOCK(); cap_rele(cap); @@ -1200,8 +1135,6 @@ crypto_unblock(uint32_t driverid, int what) if (cap != NULL) { if (what & CRYPTO_SYMQ) cap->cc_qblocked = 0; - if (what & CRYPTO_ASYMQ) - cap->cc_kqblocked = 0; if (crp_sleep) wakeup_one(&crp_q); err = 0; @@ -1499,189 +1432,6 @@ crypto_batch_enqueue(struct cryptop *crp) CRYPTO_Q_UNLOCK(); } -/* - * Add an asymetric crypto request to a queue, - * to be processed by the kernel thread. - */ -int -crypto_kdispatch(struct cryptkop *krp) -{ - int error; - - CRYPTOSTAT_INC(cs_kops); - - krp->krp_cap = NULL; - error = crypto_kinvoke(krp); - if (error == ERESTART) { - CRYPTO_Q_LOCK(); - TAILQ_INSERT_TAIL(&crp_kq, krp, krp_next); - if (crp_sleep) - wakeup_one(&crp_q); - CRYPTO_Q_UNLOCK(); - error = 0; - } - return error; -} - -/* - * Verify a driver is suitable for the specified operation. - */ -static __inline int -kdriver_suitable(const struct cryptocap *cap, const struct cryptkop *krp) -{ - return (cap->cc_kalg[krp->krp_op] & CRYPTO_ALG_FLAG_SUPPORTED) != 0; -} - -/* - * Select a driver for an asym operation. The driver must - * support the necessary algorithm. The caller can constrain - * which device is selected with the flags parameter. The - * algorithm we use here is pretty stupid; just use the first - * driver that supports the algorithms we need. If there are - * multiple suitable drivers we choose the driver with the - * fewest active operations. We prefer hardware-backed - * drivers to software ones when either may be used. - */ -static struct cryptocap * -crypto_select_kdriver(const struct cryptkop *krp, int flags) -{ - struct cryptocap *cap, *best; - int match, hid; - - CRYPTO_DRIVER_ASSERT(); - - /* - * Look first for hardware crypto devices if permitted. - */ - if (flags & CRYPTOCAP_F_HARDWARE) - match = CRYPTOCAP_F_HARDWARE; - else - match = CRYPTOCAP_F_SOFTWARE; - best = NULL; -again: - for (hid = 0; hid < crypto_drivers_size; hid++) { - /* - * If there is no driver for this slot, or the driver - * is not appropriate (hardware or software based on - * match), then skip. - */ - cap = crypto_drivers[hid]; - if (cap == NULL || - (cap->cc_flags & match) == 0) - continue; - - /* verify all the algorithms are supported. */ - if (kdriver_suitable(cap, krp)) { - if (best == NULL || - cap->cc_koperations < best->cc_koperations) - best = cap; - } - } - if (best != NULL) - return best; - if (match == CRYPTOCAP_F_HARDWARE && (flags & CRYPTOCAP_F_SOFTWARE)) { - /* sort of an Algol 68-style for loop */ - match = CRYPTOCAP_F_SOFTWARE; - goto again; - } - return best; -} - -/* - * Choose a driver for an asymmetric crypto request. - */ -static struct cryptocap * -crypto_lookup_kdriver(struct cryptkop *krp) -{ - struct cryptocap *cap; - uint32_t crid; - - /* If this request is requeued, it might already have a driver. */ - cap = krp->krp_cap; - if (cap != NULL) - return (cap); - - /* Use krp_crid to choose a driver. */ - crid = krp->krp_crid; - if ((crid & (CRYPTOCAP_F_HARDWARE | CRYPTOCAP_F_SOFTWARE)) == 0) { - cap = crypto_checkdriver(crid); - if (cap != NULL) { - /* - * Driver present, it must support the - * necessary algorithm and, if s/w drivers are - * excluded, it must be registered as - * hardware-backed. - */ - if (!kdriver_suitable(cap, krp) || - (!crypto_devallowsoft && - (cap->cc_flags & CRYPTOCAP_F_HARDWARE) == 0)) - cap = NULL; - } - } else { - /* - * No requested driver; select based on crid flags. - */ - if (!crypto_devallowsoft) /* NB: disallow s/w drivers */ - crid &= ~CRYPTOCAP_F_SOFTWARE; - cap = crypto_select_kdriver(krp, crid); - } - - if (cap != NULL) { - krp->krp_cap = cap_ref(cap); - krp->krp_hid = cap->cc_hid; - } - return (cap); -} - -/* - * Dispatch an asymmetric crypto request. - */ -static int -crypto_kinvoke(struct cryptkop *krp) -{ - struct cryptocap *cap = NULL; - int error; - - KASSERT(krp != NULL, ("%s: krp == NULL", __func__)); - KASSERT(krp->krp_callback != NULL, - ("%s: krp->crp_callback == NULL", __func__)); - - CRYPTO_DRIVER_LOCK(); - cap = crypto_lookup_kdriver(krp); - if (cap == NULL) { - CRYPTO_DRIVER_UNLOCK(); - krp->krp_status = ENODEV; - crypto_kdone(krp); - return (0); - } - - /* - * If the device is blocked, return ERESTART to requeue it. - */ - if (cap->cc_kqblocked) { - /* - * XXX: Previously this set krp_status to ERESTART and - * invoked crypto_kdone but the caller would still - * requeue it. - */ - CRYPTO_DRIVER_UNLOCK(); - return (ERESTART); - } *** 1019 LINES SKIPPED *** From owner-dev-commits-src-main@freebsd.org Mon Apr 12 21:35:10 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 920335DF828; Mon, 12 Apr 2021 21:35:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FK28G3j6sz4vdk; Mon, 12 Apr 2021 21:35:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7257E1E9DE; Mon, 12 Apr 2021 21:35:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CLZAlI070364; Mon, 12 Apr 2021 21:35:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CLZA96070363; Mon, 12 Apr 2021 21:35:10 GMT (envelope-from git) Date: Mon, 12 Apr 2021 21:35:10 GMT Message-Id: <202104122135.13CLZA96070363@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 06cdfe2d8a3b - main - RELNOTES: Document removal of asym crypto from OCF. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 06cdfe2d8a3b0080b60bde5fa7dfcd9e3c64f4d7 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 21:35:10 -0000 The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=06cdfe2d8a3b0080b60bde5fa7dfcd9e3c64f4d7 commit 06cdfe2d8a3b0080b60bde5fa7dfcd9e3c64f4d7 Author: John Baldwin AuthorDate: 2021-04-12 21:34:23 +0000 Commit: John Baldwin CommitDate: 2021-04-12 21:34:45 +0000 RELNOTES: Document removal of asym crypto from OCF. Sponsored by: Chelsio Communications --- RELNOTES | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RELNOTES b/RELNOTES index a4f276592a73..ec989a428f9e 100644 --- a/RELNOTES +++ b/RELNOTES @@ -10,3 +10,6 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +76681661be28 + Remove support for assymetric cryptographic operations from + the kernel open cryptographic framework (OCF). From owner-dev-commits-src-main@freebsd.org Mon Apr 12 21:37:18 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 115FE5DFC08; Mon, 12 Apr 2021 21:37:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FK2Bj71rYz3C1W; Mon, 12 Apr 2021 21:37:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E43451E9DF; Mon, 12 Apr 2021 21:37:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CLbHcn070728; Mon, 12 Apr 2021 21:37:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CLbHPF070727; Mon, 12 Apr 2021 21:37:17 GMT (envelope-from git) Date: Mon, 12 Apr 2021 21:37:17 GMT Message-Id: <202104122137.13CLbHPF070727@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 45d5c28439f2 - main - cxgbe: Ignore doomed virtual interfaces when updating the clip table. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 45d5c28439f2464dd5022abb0dd53f9da649686c Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 21:37:18 -0000 The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=45d5c28439f2464dd5022abb0dd53f9da649686c commit 45d5c28439f2464dd5022abb0dd53f9da649686c Author: John Baldwin AuthorDate: 2021-04-12 21:36:40 +0000 Commit: John Baldwin CommitDate: 2021-04-12 21:36:40 +0000 cxgbe: Ignore doomed virtual interfaces when updating the clip table. A doomed VI does not have a valid ifnet. Reported by: Jithesh Arakkan @ Chelsio Reviewed by: np MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D29662 --- sys/dev/cxgbe/t4_clip.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/dev/cxgbe/t4_clip.c b/sys/dev/cxgbe/t4_clip.c index cc4a9b517a49..a93271103998 100644 --- a/sys/dev/cxgbe/t4_clip.c +++ b/sys/dev/cxgbe/t4_clip.c @@ -215,6 +215,9 @@ update_clip_table(struct adapter *sc) last_vnet = (uintptr_t)(-1); for_each_port(sc, i) for_each_vi(sc->port[i], j, vi) { + if (IS_DOOMED(vi)) + continue; + if (last_vnet == (uintptr_t)vi->ifp->if_vnet) continue; From owner-dev-commits-src-main@freebsd.org Mon Apr 12 22:13:10 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B510A5E0537; Mon, 12 Apr 2021 22:13:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FK3064j1pz3Dh7; Mon, 12 Apr 2021 22:13:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 94AE21F799; Mon, 12 Apr 2021 22:13:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13CMDAbE023531; Mon, 12 Apr 2021 22:13:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13CMDAd2023530; Mon, 12 Apr 2021 22:13:10 GMT (envelope-from git) Date: Mon, 12 Apr 2021 22:13:10 GMT Message-Id: <202104122213.13CMDAd2023530@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 1f64f32a4cc5 - main - Spellcheck. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1f64f32a4cc5443ea19787e8af32de84ff8d711f Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 22:13:10 -0000 The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=1f64f32a4cc5443ea19787e8af32de84ff8d711f commit 1f64f32a4cc5443ea19787e8af32de84ff8d711f Author: John Baldwin AuthorDate: 2021-04-12 22:12:19 +0000 Commit: John Baldwin CommitDate: 2021-04-12 22:12:19 +0000 Spellcheck. Reported by: 0mp --- RELNOTES | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELNOTES b/RELNOTES index ec989a428f9e..963ddd8c43a8 100644 --- a/RELNOTES +++ b/RELNOTES @@ -11,5 +11,5 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. 76681661be28 - Remove support for assymetric cryptographic operations from + Remove support for asymmetric cryptographic operations from the kernel open cryptographic framework (OCF). From owner-dev-commits-src-main@freebsd.org Tue Apr 13 04:47:38 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D45C65D1B6E; Tue, 13 Apr 2021 04:47:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKClG5gwYz3nRB; Tue, 13 Apr 2021 04:47:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B156824737; Tue, 13 Apr 2021 04:47:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13D4lcDZ042497; Tue, 13 Apr 2021 04:47:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13D4lctn042496; Tue, 13 Apr 2021 04:47:38 GMT (envelope-from git) Date: Tue, 13 Apr 2021 04:47:38 GMT Message-Id: <202104130447.13D4lctn042496@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gordon Bergling Subject: git: bc54f5f1cd5c - main - route(8): Add an example how to print the routing tables MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bc54f5f1cd5c01aa5f941234034839fb0b8f54ed Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 04:47:38 -0000 The branch main has been updated by gbe (doc committer): URL: https://cgit.FreeBSD.org/src/commit/?id=bc54f5f1cd5c01aa5f941234034839fb0b8f54ed commit bc54f5f1cd5c01aa5f941234034839fb0b8f54ed Author: Gordon Bergling AuthorDate: 2021-04-13 04:44:04 +0000 Commit: Gordon Bergling CommitDate: 2021-04-13 04:45:22 +0000 route(8): Add an example how to print the routing tables The manual page currently doesn't show an example how to print the routing table, so add one and .Xr netstat while here. PR: 231579 Reported by: Pekka Järvinen Reviewed by: debdrup MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D29702 --- sbin/route/route.8 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sbin/route/route.8 b/sbin/route/route.8 index 6f34795ce883..c353bfb73d62 100644 --- a/sbin/route/route.8 +++ b/sbin/route/route.8 @@ -28,7 +28,7 @@ .\" @(#)route.8 8.3 (Berkeley) 3/19/94 .\" $FreeBSD$ .\" -.Dd January 9, 2019 +.Dd April 11, 2021 .Dt ROUTE 8 .Os .Sh NAME @@ -453,6 +453,10 @@ Delete a static route from the routing table: Remove all routes from the routing table: .Pp .Dl route flush +.Pp +List all routing tables: +.Pp +.Dl netstat -r .Sh DIAGNOSTICS .Bl -diag .It "add [host \&| network ] %s: gateway %s flags %x" @@ -493,6 +497,7 @@ The next-hop gateway should be reachable through a different route. .El .Sh SEE ALSO .\".Xr esis 4 , +.Xr netstat 1 , .Xr netintro 4 , .Xr route 4 , .Xr arp 8 , From owner-dev-commits-src-main@freebsd.org Tue Apr 13 04:53:53 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C90B95D1F62; Tue, 13 Apr 2021 04:53:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKCtT58Dnz3nq1; Tue, 13 Apr 2021 04:53:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A399724C08; Tue, 13 Apr 2021 04:53:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13D4rrjB055100; Tue, 13 Apr 2021 04:53:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13D4rrF4055099; Tue, 13 Apr 2021 04:53:53 GMT (envelope-from git) Date: Tue, 13 Apr 2021 04:53:53 GMT Message-Id: <202104130453.13D4rrF4055099@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gordon Bergling Subject: git: e6ab1e365c06 - main - config(8): Correct the mentioned paper in the SEE ALSO section MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e6ab1e365c06559e964667d2f5a6de856fa28be6 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 04:53:53 -0000 The branch main has been updated by gbe (doc committer): URL: https://cgit.FreeBSD.org/src/commit/?id=e6ab1e365c06559e964667d2f5a6de856fa28be6 commit e6ab1e365c06559e964667d2f5a6de856fa28be6 Author: Gordon Bergling AuthorDate: 2021-04-13 04:49:00 +0000 Commit: Gordon Bergling CommitDate: 2021-04-13 04:49:00 +0000 config(8): Correct the mentioned paper in the SEE ALSO section FreeBSD's version of the config(8) utility is based on 4.3BSD not 4.4BSD. So correct the mentioned paper in the SEE ALSO section. Reported by: imp Reviewed by: imp X-MFC-with: 2b59392cb0da804e825c63469beb1934ec4267db Differential Revision: https://reviews.freebsd.org/D29701 --- usr.sbin/config/config.8 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/usr.sbin/config/config.8 b/usr.sbin/config/config.8 index 929607712ef8..1e874c3e8355 100644 --- a/usr.sbin/config/config.8 +++ b/usr.sbin/config/config.8 @@ -28,7 +28,7 @@ .\" @(#)config.8 8.2 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd April 9, 2021 +.Dd April 11, 2021 .Dt CONFIG 8 .Os .Sh NAME @@ -249,11 +249,12 @@ The .Sx SYNOPSIS portion of each device in section 4. .Rs -.\" 4.4BSD SMM:2 +.\" 4.3BSD SMM:2 .%A S. J. Leffler .%A M. J. Karels .%T "Building 4.3 BSD UNIX System with Config" -.%B 4.4BSD System Manager's Manual (SMM) +.%B 4.3BSD System Manager's Manual (SMM) +.%D June 3, 1986 .Re .Sh HISTORY The From owner-dev-commits-src-main@freebsd.org Tue Apr 13 10:36:18 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E024A5DB1AA; Tue, 13 Apr 2021 10:36:18 +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 4FKMTZ4Ql6z4YQq; Tue, 13 Apr 2021 10:36:17 +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 13DAaEjd037968; Tue, 13 Apr 2021 03:36:14 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 13DAaESx037967; Tue, 13 Apr 2021 03:36:14 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202104131036.13DAaESx037967@gndrsh.dnsmgr.net> Subject: Re: git: bc54f5f1cd5c - main - route(8): Add an example how to print the routing tables In-Reply-To: <202104130447.13D4lctn042496@gitrepo.freebsd.org> To: Gordon Bergling Date: Tue, 13 Apr 2021 03:36:14 -0700 (PDT) CC: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@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: 4FKMTZ4Ql6z4YQq X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 10:36:18 -0000 > The branch main has been updated by gbe (doc committer): > > URL: https://cgit.FreeBSD.org/src/commit/?id=bc54f5f1cd5c01aa5f941234034839fb0b8f54ed > > commit bc54f5f1cd5c01aa5f941234034839fb0b8f54ed > Author: Gordon Bergling > AuthorDate: 2021-04-13 04:44:04 +0000 > Commit: Gordon Bergling > CommitDate: 2021-04-13 04:45:22 +0000 > > route(8): Add an example how to print the routing tables > > The manual page currently doesn't show an example how to print > the routing table, so add one and .Xr netstat while here. Because the route command does not print the routing table. Manual pages should have examples of how to use that command, not examples of how to do associated things that are done using another command. The add of xref to netstat is long overdue. > > PR: 231579 > Reported by: Pekka J?rvinen > Reviewed by: debdrup > MFC after: 5 days > Differential Revision: https://reviews.freebsd.org/D29702 > --- > sbin/route/route.8 | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/sbin/route/route.8 b/sbin/route/route.8 > index 6f34795ce883..c353bfb73d62 100644 > --- a/sbin/route/route.8 > +++ b/sbin/route/route.8 > @@ -28,7 +28,7 @@ > .\" @(#)route.8 8.3 (Berkeley) 3/19/94 > .\" $FreeBSD$ > .\" > -.Dd January 9, 2019 > +.Dd April 11, 2021 > .Dt ROUTE 8 > .Os > .Sh NAME > @@ -453,6 +453,10 @@ Delete a static route from the routing table: > Remove all routes from the routing table: > .Pp > .Dl route flush > +.Pp > +List all routing tables: > +.Pp > +.Dl netstat -r > .Sh DIAGNOSTICS > .Bl -diag > .It "add [host \&| network ] %s: gateway %s flags %x" > @@ -493,6 +497,7 @@ The next-hop gateway should be reachable through a different route. > .El > .Sh SEE ALSO > .\".Xr esis 4 , > +.Xr netstat 1 , > .Xr netintro 4 , > .Xr route 4 , > .Xr arp 8 , > -- Rod Grimes rgrimes@freebsd.org From owner-dev-commits-src-main@freebsd.org Tue Apr 13 10:41:24 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D72305DB594; Tue, 13 Apr 2021 10:41:24 +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 4FKMbS3c80z4YKg; Tue, 13 Apr 2021 10:41:24 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id 13DAfM4a037987; Tue, 13 Apr 2021 03:41:22 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 13DAfMA0037986; Tue, 13 Apr 2021 03:41:22 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202104131041.13DAfMA0037986@gndrsh.dnsmgr.net> Subject: Re: git: e6ab1e365c06 - main - config(8): Correct the mentioned paper in the SEE ALSO section In-Reply-To: <202104130453.13D4rrF4055099@gitrepo.freebsd.org> To: Gordon Bergling Date: Tue, 13 Apr 2021 03:41:22 -0700 (PDT) CC: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@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: 4FKMbS3c80z4YKg X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 10:41:24 -0000 > The branch main has been updated by gbe (doc committer): > > URL: https://cgit.FreeBSD.org/src/commit/?id=e6ab1e365c06559e964667d2f5a6de856fa28be6 > > commit e6ab1e365c06559e964667d2f5a6de856fa28be6 > Author: Gordon Bergling > AuthorDate: 2021-04-13 04:49:00 +0000 > Commit: Gordon Bergling > CommitDate: 2021-04-13 04:49:00 +0000 > > config(8): Correct the mentioned paper in the SEE ALSO section > > FreeBSD's version of the config(8) utility is based on 4.3BSD not > 4.4BSD. So correct the mentioned paper in the SEE ALSO section. What is this based upon? As far as I know, and I am the one that did the imports, we never had the source code to config(8) for 4.3BSD, the config sources in the system are imported from the 4.4BSD lite source tape. > > Reported by: imp > Reviewed by: imp > X-MFC-with: 2b59392cb0da804e825c63469beb1934ec4267db > Differential Revision: https://reviews.freebsd.org/D29701 > --- > usr.sbin/config/config.8 | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/usr.sbin/config/config.8 b/usr.sbin/config/config.8 > index 929607712ef8..1e874c3e8355 100644 > --- a/usr.sbin/config/config.8 > +++ b/usr.sbin/config/config.8 > @@ -28,7 +28,7 @@ > .\" @(#)config.8 8.2 (Berkeley) 4/19/94 > .\" $FreeBSD$ > .\" > -.Dd April 9, 2021 > +.Dd April 11, 2021 > .Dt CONFIG 8 > .Os > .Sh NAME > @@ -249,11 +249,12 @@ The > .Sx SYNOPSIS > portion of each device in section 4. > .Rs > -.\" 4.4BSD SMM:2 > +.\" 4.3BSD SMM:2 > .%A S. J. Leffler > .%A M. J. Karels > .%T "Building 4.3 BSD UNIX System with Config" > -.%B 4.4BSD System Manager's Manual (SMM) > +.%B 4.3BSD System Manager's Manual (SMM) > +.%D June 3, 1986 > .Re > .Sh HISTORY > The > -- Rod Grimes rgrimes@freebsd.org From owner-dev-commits-src-main@freebsd.org Tue Apr 13 10:54:24 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 15A305DBAA6; Tue, 13 Apr 2021 10:54:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKMtS028Gz4Z3k; Tue, 13 Apr 2021 10:54:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E7F961717; Tue, 13 Apr 2021 10:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DAsNBP032325; Tue, 13 Apr 2021 10:54:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DAsN0H032324; Tue, 13 Apr 2021 10:54:23 GMT (envelope-from git) Date: Tue, 13 Apr 2021 10:54:23 GMT Message-Id: <202104131054.13DAsN0H032324@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 2aa21096c734 - main - pf: Implement the NAT source port selection of MAP-E Customer Edge MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2aa21096c7349390f22aa5d06b373a575baed1b4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 10:54:24 -0000 The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=2aa21096c7349390f22aa5d06b373a575baed1b4 commit 2aa21096c7349390f22aa5d06b373a575baed1b4 Author: Kurosawa Takahiro AuthorDate: 2021-04-13 08:50:00 +0000 Commit: Kristof Provost CommitDate: 2021-04-13 08:53:18 +0000 pf: Implement the NAT source port selection of MAP-E Customer Edge MAP-E (RFC 7597) requires special care for selecting source ports in NAT operation on the Customer Edge because a part of bits of the port numbers are used by the Border Relay to distinguish another side of the IPv4-over-IPv6 tunnel. PR: 254577 Reviewed by: kp Differential Revision: https://reviews.freebsd.org/D29468 --- lib/libpfctl/libpfctl.c | 24 ++++++++++++ lib/libpfctl/libpfctl.h | 1 + sbin/pfctl/parse.y | 57 ++++++++++++++++++++++++++- sbin/pfctl/pfctl_parser.c | 3 ++ share/man/man5/pf.conf.5 | 24 +++++++++++- sys/net/pfvar.h | 1 + sys/netpfil/pf/pf.h | 6 +++ sys/netpfil/pf/pf_ioctl.c | 40 +++++++++++++++++++ sys/netpfil/pf/pf_lb.c | 65 +++++++++++++++++++++++++++---- tests/sys/netpfil/pf/Makefile | 1 + tests/sys/netpfil/pf/map_e.sh | 91 +++++++++++++++++++++++++++++++++++++++++++ 11 files changed, 303 insertions(+), 10 deletions(-) diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index a487e5a20018..b8b8c1b526b3 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -196,6 +196,18 @@ pf_nvrule_addr_to_rule_addr(const nvlist_t *nvl, struct pf_rule_addr *addr) addr->port_op = nvlist_get_number(nvl, "port_op"); } +static void +pfctl_nv_add_mape(nvlist_t *nvparent, const char *name, + const struct pf_mape_portset *mape) +{ + nvlist_t *nvl = nvlist_create(0); + + nvlist_add_number(nvl, "offset", mape->offset); + nvlist_add_number(nvl, "psidlen", mape->psidlen); + nvlist_add_number(nvl, "psid", mape->psid); + nvlist_add_nvlist(nvparent, name, nvl); +} + static void pfctl_nv_add_pool(nvlist_t *nvparent, const char *name, const struct pfctl_pool *pool) @@ -211,10 +223,19 @@ pfctl_nv_add_pool(nvlist_t *nvparent, const char *name, ports[1] = pool->proxy_port[1]; nvlist_add_number_array(nvl, "proxy_port", ports, 2); nvlist_add_number(nvl, "opts", pool->opts); + pfctl_nv_add_mape(nvl, "mape", &pool->mape); nvlist_add_nvlist(nvparent, name, nvl); } +static void +pf_nvmape_to_mape(const nvlist_t *nvl, struct pf_mape_portset *mape) +{ + mape->offset = nvlist_get_number(nvl, "offset"); + mape->psidlen = nvlist_get_number(nvl, "psidlen"); + mape->psid = nvlist_get_number(nvl, "psid"); +} + static void pf_nvpool_to_pool(const nvlist_t *nvl, struct pfctl_pool *pool) { @@ -230,6 +251,9 @@ pf_nvpool_to_pool(const nvlist_t *nvl, struct pfctl_pool *pool) pool->tblidx = nvlist_get_number(nvl, "tblidx"); pf_nvuint_16_array(nvl, "proxy_port", 2, pool->proxy_port, NULL); pool->opts = nvlist_get_number(nvl, "opts"); + + if (nvlist_exists_nvlist(nvl, "mape")) + pf_nvmape_to_mape(nvlist_get_nvlist(nvl, "mape"), &pool->mape); } static void diff --git a/lib/libpfctl/libpfctl.h b/lib/libpfctl/libpfctl.h index bc27c18cfbb6..674a25f04b9a 100644 --- a/lib/libpfctl/libpfctl.h +++ b/lib/libpfctl/libpfctl.h @@ -43,6 +43,7 @@ struct pfctl_pool { struct pf_pooladdr *cur; struct pf_poolhashkey key; struct pf_addr counter; + struct pf_mape_portset mape; int tblidx; u_int16_t proxy_port[2]; u_int8_t opts; diff --git a/sbin/pfctl/parse.y b/sbin/pfctl/parse.y index 08da7e6bddd6..9eac41fbf66f 100644 --- a/sbin/pfctl/parse.y +++ b/sbin/pfctl/parse.y @@ -306,6 +306,7 @@ static struct pool_opts { int type; int staticport; struct pf_poolhashkey *key; + struct pf_mape_portset mape; } pool_opts; @@ -461,7 +462,7 @@ int parseport(char *, struct range *r, int); %token SET OPTIMIZATION TIMEOUT LIMIT LOGINTERFACE BLOCKPOLICY FAILPOLICY %token RANDOMID REQUIREORDER SYNPROXY FINGERPRINTS NOSYNC DEBUG SKIP HOSTID %token ANTISPOOF FOR INCLUDE -%token BITMASK RANDOM SOURCEHASH ROUNDROBIN STATICPORT PROBABILITY +%token BITMASK RANDOM SOURCEHASH ROUNDROBIN STATICPORT PROBABILITY MAPEPORTSET %token ALTQ CBQ CODEL PRIQ HFSC FAIRQ BANDWIDTH TBRSIZE LINKSHARE REALTIME %token UPPERLIMIT QUEUE PRIORITY QLIMIT HOGS BUCKETS RTABLE TARGET INTERVAL %token LOAD RULESET_OPTIMIZATION PRIO @@ -4015,6 +4016,36 @@ pool_opt : BITMASK { pool_opts.marker |= POM_STICKYADDRESS; pool_opts.opts |= PF_POOL_STICKYADDR; } + | MAPEPORTSET number '/' number '/' number { + if (pool_opts.mape.offset) { + yyerror("map-e-portset cannot be redefined"); + YYERROR; + } + if (pool_opts.type) { + yyerror("map-e-portset cannot be used with " + "address pools"); + YYERROR; + } + if ($2 <= 0 || $2 >= 16) { + yyerror("MAP-E PSID offset must be 1-15"); + YYERROR; + } + if ($4 < 0 || $4 >= 16 || $2 + $4 > 16) { + yyerror("Invalid MAP-E PSID length"); + YYERROR; + } else if ($4 == 0) { + yyerror("PSID Length = 0: this means" + " you do not need MAP-E"); + YYERROR; + } + if ($6 < 0 || $6 > 65535) { + yyerror("Invalid MAP-E PSID"); + YYERROR; + } + pool_opts.mape.offset = $2; + pool_opts.mape.psidlen = $4; + pool_opts.mape.psid = $6; + } ; redirection : /* empty */ { $$ = NULL; } @@ -4220,6 +4251,29 @@ natrule : nataction interface af proto fromto tag tagged rtable r.rpool.proxy_port[1] = 0; } + if ($10.mape.offset) { + if (r.action != PF_NAT) { + yyerror("the 'map-e-portset' option is" + " only valid with nat rules"); + YYERROR; + } + if ($10.staticport) { + yyerror("the 'map-e-portset' option" + " can't be used 'static-port'"); + YYERROR; + } + if (r.rpool.proxy_port[0] != + PF_NAT_PROXY_PORT_LOW && + r.rpool.proxy_port[1] != + PF_NAT_PROXY_PORT_HIGH) { + yyerror("the 'map-e-portset' option" + " can't be used when specifying" + " a port range"); + YYERROR; + } + r.rpool.mape = $10.mape; + } + expand_rule(&r, $2, $9 == NULL ? NULL : $9->host, $4, $5.src_os, $5.src.host, $5.src.port, $5.dst.host, $5.dst.port, 0, 0, 0, ""); @@ -5545,6 +5599,7 @@ lookup(char *s) { "load", LOAD}, { "log", LOG}, { "loginterface", LOGINTERFACE}, + { "map-e-portset", MAPEPORTSET}, { "max", MAXIMUM}, { "max-mss", MAXMSS}, { "max-src-conn", MAXSRCCONN}, diff --git a/sbin/pfctl/pfctl_parser.c b/sbin/pfctl/pfctl_parser.c index e0dd04cb4c3d..422e93460a43 100644 --- a/sbin/pfctl/pfctl_parser.c +++ b/sbin/pfctl/pfctl_parser.c @@ -486,6 +486,9 @@ print_pool(struct pfctl_pool *pool, u_int16_t p1, u_int16_t p2, printf(" sticky-address"); if (id == PF_NAT && p1 == 0 && p2 == 0) printf(" static-port"); + if (pool->mape.offset > 0) + printf(" map-e-portset %u/%u/%u", + pool->mape.offset, pool->mape.psidlen, pool->mape.psid); } const char * const pf_reasons[PFRES_MAX+1] = PFRES_NAMES; diff --git a/share/man/man5/pf.conf.5 b/share/man/man5/pf.conf.5 index d31d20e29bea..52a7331c7cb2 100644 --- a/share/man/man5/pf.conf.5 +++ b/share/man/man5/pf.conf.5 @@ -1998,6 +1998,27 @@ rules, the option prevents .Xr pf 4 from modifying the source port on TCP and UDP packets. +.It Xo Ar map-e-portset Aq Ar psid-offset +.No / Aq Ar psid-len +.No / Aq Ar psid +.Xc +With +.Ar nat +rules, the +.Ar map-e-portset +option enables the source port translation of MAP-E (RFC 7597) Customer Edge. +In order to make the host act as a MAP-E Customer Edge, setting up a tunneling +interface and pass rules for encapsulated packets are required in addition +to the map-e-portset nat rule. +.Pp +For example: +.Bd -literal -offset indent +nat on $gif_mape_if from $int_if:network to any \e + -> $ipv4_mape_src map-e-portset 6/8/0x34 +.Ed +.Pp +sets PSID offset 6, PSID length 8, PSID 0x34. +.Ed .El .Pp Additionally, the @@ -2893,7 +2914,8 @@ nat-rule = [ "no" ] "nat" [ "pass" [ "log" [ "(" logopts ")" ] ] ] [ "on" ifspec ] [ af ] [ protospec ] hosts [ "tag" string ] [ "tagged" string ] [ "-\*(Gt" ( redirhost | "{" redirhost-list "}" ) - [ portspec ] [ pooltype ] [ "static-port" ] ] + [ portspec ] [ pooltype ] [ "static-port" ] + [ "map-e-portset" number "/" number "/" number ] ] binat-rule = [ "no" ] "binat" [ "pass" [ "log" [ "(" logopts ")" ] ] ] [ "on" interface-name ] [ af ] diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index abce11e8dfd6..0372dfa65e57 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -309,6 +309,7 @@ struct pf_kpool { struct pf_kpooladdr *cur; struct pf_poolhashkey key; struct pf_addr counter; + struct pf_mape_portset mape; int tblidx; u_int16_t proxy_port[2]; u_int8_t opts; diff --git a/sys/netpfil/pf/pf.h b/sys/netpfil/pf/pf.h index 3e358de8aba5..d7063e70b0af 100644 --- a/sys/netpfil/pf/pf.h +++ b/sys/netpfil/pf/pf.h @@ -317,6 +317,12 @@ struct pf_poolhashkey { #define key32 pfk.key32 }; +struct pf_mape_portset { + u_int8_t offset; + u_int8_t psidlen; + u_int16_t psid; +}; + struct pf_pool { struct pf_palist list; struct pf_pooladdr *cur; diff --git a/sys/netpfil/pf/pf_ioctl.c b/sys/netpfil/pf/pf_ioctl.c index 6ea2a1c4571c..152fa9dafca1 100644 --- a/sys/netpfil/pf/pf_ioctl.c +++ b/sys/netpfil/pf/pf_ioctl.c @@ -1644,6 +1644,36 @@ pf_addr_to_nvaddr(const struct pf_addr *paddr) return (nvl); } +static int +pf_nvmape_to_mape(const nvlist_t *nvl, struct pf_mape_portset *mape) +{ + int error = 0; + + bzero(mape, sizeof(*mape)); + PFNV_CHK(pf_nvuint8(nvl, "offset", &mape->offset)); + PFNV_CHK(pf_nvuint8(nvl, "psidlen", &mape->psidlen)); + PFNV_CHK(pf_nvuint16(nvl, "psid", &mape->psid)); + +errout: + return (error); +} + +static nvlist_t * +pf_mape_to_nvmape(const struct pf_mape_portset *mape) +{ + nvlist_t *nvl; + + nvl = nvlist_create(0); + if (nvl == NULL) + return (NULL); + + nvlist_add_number(nvl, "offset", mape->offset); + nvlist_add_number(nvl, "psidlen", mape->psidlen); + nvlist_add_number(nvl, "psid", mape->psid); + + return (nvl); +} + static int pf_nvpool_to_pool(const nvlist_t *nvl, struct pf_kpool *kpool) { @@ -1663,6 +1693,11 @@ pf_nvpool_to_pool(const nvlist_t *nvl, struct pf_kpool *kpool) NULL)); PFNV_CHK(pf_nvuint8(nvl, "opts", &kpool->opts)); + if (nvlist_exists_nvlist(nvl, "mape")) { + PFNV_CHK(pf_nvmape_to_mape(nvlist_get_nvlist(nvl, "mape"), + &kpool->mape)); + } + errout: return (error); } @@ -1687,6 +1722,11 @@ pf_pool_to_nvpool(const struct pf_kpool *pool) pf_uint16_array_nv(nvl, "proxy_port", pool->proxy_port, 2); nvlist_add_number(nvl, "opts", pool->opts); + tmp = pf_mape_to_nvmape(&pool->mape); + if (tmp == NULL) + goto error; + nvlist_add_nvlist(nvl, "mape", tmp); + return (nvl); error: diff --git a/sys/netpfil/pf/pf_lb.c b/sys/netpfil/pf/pf_lb.c index 0892d13d9575..3796ab9fb80a 100644 --- a/sys/netpfil/pf/pf_lb.c +++ b/sys/netpfil/pf/pf_lb.c @@ -224,11 +224,6 @@ pf_get_sport(sa_family_t af, u_int8_t proto, struct pf_krule *r, if (pf_map_addr(af, r, saddr, naddr, &init_addr, sn)) return (1); - if (proto == IPPROTO_ICMP) { - low = 1; - high = 65535; - } - bzero(&key, sizeof(key)); key.af = af; key.proto = proto; @@ -310,6 +305,42 @@ pf_get_sport(sa_family_t af, u_int8_t proto, struct pf_krule *r, return (1); /* none available */ } +static int +pf_get_mape_sport(sa_family_t af, u_int8_t proto, struct pf_krule *r, + struct pf_addr *saddr, uint16_t sport, struct pf_addr *daddr, + uint16_t dport, struct pf_addr *naddr, uint16_t *nport, + struct pf_ksrc_node **sn) +{ + uint16_t psmask, low, highmask; + uint16_t i, ahigh, cut; + int ashift, psidshift; + + ashift = 16 - r->rpool.mape.offset; + psidshift = ashift - r->rpool.mape.psidlen; + psmask = r->rpool.mape.psid & ((1U << r->rpool.mape.psidlen) - 1); + psmask = psmask << psidshift; + highmask = (1U << psidshift) - 1; + + ahigh = (1U << r->rpool.mape.offset) - 1; + cut = arc4random() & ahigh; + if (cut == 0) + cut = 1; + + for (i = cut; i <= ahigh; i++) { + low = (i << ashift) | psmask; + if (!pf_get_sport(af, proto, r, saddr, sport, daddr, dport, + naddr, nport, low, low | highmask, sn)) + return (0); + } + for (i = cut - 1; i > 0; i--) { + low = (i << ashift) | psmask; + if (!pf_get_sport(af, proto, r, saddr, sport, daddr, dport, + naddr, nport, low, low | highmask, sn)) + return (0); + } + return (1); +} + int pf_map_addr(sa_family_t af, struct pf_krule *r, struct pf_addr *saddr, struct pf_addr *naddr, struct pf_addr *init_addr, struct pf_ksrc_node **sn) @@ -530,6 +561,7 @@ pf_get_translation(struct pf_pdesc *pd, struct mbuf *m, int off, int direction, struct pf_krule *r = NULL; struct pf_addr *naddr; uint16_t *nport; + uint16_t low, high; PF_RULES_RASSERT(); KASSERT(*skp == NULL, ("*skp not NULL")); @@ -577,9 +609,26 @@ pf_get_translation(struct pf_pdesc *pd, struct mbuf *m, int off, int direction, switch (r->action) { case PF_NAT: - if (pf_get_sport(pd->af, pd->proto, r, saddr, sport, daddr, - dport, naddr, nport, r->rpool.proxy_port[0], - r->rpool.proxy_port[1], sn)) { + if (pd->proto == IPPROTO_ICMP) { + low = 1; + high = 65535; + } else { + low = r->rpool.proxy_port[0]; + high = r->rpool.proxy_port[1]; + } + if (r->rpool.mape.offset > 0) { + if (pf_get_mape_sport(pd->af, pd->proto, r, saddr, + sport, daddr, dport, naddr, nport, sn)) { + DPFPRINTF(PF_DEBUG_MISC, + ("pf: MAP-E port allocation (%u/%u/%u)" + " failed\n", + r->rpool.mape.offset, + r->rpool.mape.psidlen, + r->rpool.mape.psid)); + goto notrans; + } + } else if (pf_get_sport(pd->af, pd->proto, r, saddr, sport, + daddr, dport, naddr, nport, low, high, sn)) { DPFPRINTF(PF_DEBUG_MISC, ("pf: NAT proxy port allocation (%u-%u) failed\n", r->rpool.proxy_port[0], r->rpool.proxy_port[1])); diff --git a/tests/sys/netpfil/pf/Makefile b/tests/sys/netpfil/pf/Makefile index 132b681226dc..86b85df8e18d 100644 --- a/tests/sys/netpfil/pf/Makefile +++ b/tests/sys/netpfil/pf/Makefile @@ -12,6 +12,7 @@ ATF_TESTS_SH+= altq \ forward \ fragmentation \ icmp \ + map_e \ names \ nat \ pass_block \ diff --git a/tests/sys/netpfil/pf/map_e.sh b/tests/sys/netpfil/pf/map_e.sh new file mode 100644 index 000000000000..cc68fe26be5e --- /dev/null +++ b/tests/sys/netpfil/pf/map_e.sh @@ -0,0 +1,91 @@ +# $FreeBSD$ +# +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright (c) 2021 KUROSAWA Takahiro +# +# 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)/utils.subr + +atf_test_case "map_e" "cleanup" +map_e_head() +{ + atf_set descr 'map-e-portset test' + atf_set require.user root +} + +map_e_body() +{ + NC_TRY_COUNT=12 + + pft_init + + epair_map_e=$(vnet_mkepair) + epair_echo=$(vnet_mkepair) + + vnet_mkjail map_e ${epair_map_e}b ${epair_echo}a + vnet_mkjail echo ${epair_echo}b + + ifconfig ${epair_map_e}a 192.0.2.2/24 up + route add -net 198.51.100.0/24 192.0.2.1 + + jexec map_e ifconfig ${epair_map_e}b 192.0.2.1/24 up + jexec map_e ifconfig ${epair_echo}a 198.51.100.1/24 up + jexec map_e sysctl net.inet.ip.forwarding=1 + + jexec echo ifconfig ${epair_echo}b 198.51.100.2/24 up + jexec echo /usr/sbin/inetd -p inetd-echo.pid $(atf_get_srcdir)/echo_inetd.conf + + # Enable pf! + jexec map_e pfctl -e + pft_set_rules map_e \ + "nat pass on ${epair_echo}a inet from 192.0.2.0/24 to any -> (${epair_echo}a) map-e-portset 2/12/0x342" + + # Only allow specified ports. + jexec echo pfctl -e + pft_set_rules echo "block return all" \ + "pass in on ${epair_echo}b inet proto tcp from 198.51.100.1 port 19720:19723 to (${epair_echo}b) port 7" \ + "pass in on ${epair_echo}b inet proto tcp from 198.51.100.1 port 36104:36107 to (${epair_echo}b) port 7" \ + "pass in on ${epair_echo}b inet proto tcp from 198.51.100.1 port 52488:52491 to (${epair_echo}b) port 7" + + i=0 + while [ ${i} -lt ${NC_TRY_COUNT} ] + do + echo "foo ${i}" | timeout 2 nc -N 198.51.100.2 7 + if [ $? -ne 0 ]; then + atf_fail "nc failed (${i})" + fi + i=$((${i}+1)) + done +} + +map_e_cleanup() +{ + rm -f inetd-echo.pid + pft_cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case "map_e" +} From owner-dev-commits-src-main@freebsd.org Tue Apr 13 11:38:42 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A56225DC8BE; Tue, 13 Apr 2021 11:38:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKNsZ4JgLz4bcs; Tue, 13 Apr 2021 11:38:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 86A651877; Tue, 13 Apr 2021 11:38:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DBcgCt085663; Tue, 13 Apr 2021 11:38:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DBcgrt085662; Tue, 13 Apr 2021 11:38:42 GMT (envelope-from git) Date: Tue, 13 Apr 2021 11:38:42 GMT Message-Id: <202104131138.13DBcgrt085662@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alex Richardson Subject: git: 73c14cc76b5f - main - Remove history.immutable from .arcconfig MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: arichardson X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 73c14cc76b5f815c6b1bd93089ebafdd9269d343 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 11:38:42 -0000 The branch main has been updated by arichardson: URL: https://cgit.FreeBSD.org/src/commit/?id=73c14cc76b5f815c6b1bd93089ebafdd9269d343 commit 73c14cc76b5f815c6b1bd93089ebafdd9269d343 Author: Alex Richardson AuthorDate: 2021-04-13 11:36:24 +0000 Commit: Alex Richardson CommitDate: 2021-04-13 11:36:25 +0000 Remove history.immutable from .arcconfig The `history.immutable` setting prevents arcanist from updating the commit messages with the Differential URL and therefore makes updating patches awkward with a rebase workflow. In case this new behaviour is not wanted the old one can be restored by running `arc set-config --local history.immutable true`. Test Plan: `arc diff --create HEAD^` adds the metadata now. Reviewed By: #phabric-admin, imp, lwhsu Differential Revision: https://reviews.freebsd.org/D27971 --- .arcconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/.arcconfig b/.arcconfig index dec83771f390..f04bd0f39945 100644 --- a/.arcconfig +++ b/.arcconfig @@ -1,7 +1,6 @@ { "repository.callsign" : "S", "phabricator.uri" : "https://reviews.freebsd.org/", - "history.immutable" : true, "arc.land.onto.default": "main", "arc.land.onto": ["main"] } From owner-dev-commits-src-main@freebsd.org Tue Apr 13 12:00:30 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 781175DD46C; Tue, 13 Apr 2021 12:00:30 +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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKPLh3XZfz4cr0; Tue, 13 Apr 2021 12:00:28 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.16.1/8.16.1) with ESMTPS id 13DC0KXu047551 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 13 Apr 2021 15:00:23 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 13DC0KXu047551 Received: (from kostik@localhost) by tom.home (8.16.1/8.16.1/Submit) id 13DC0Kgn047550; Tue, 13 Apr 2021 15:00:20 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 13 Apr 2021 15:00:20 +0300 From: Konstantin Belousov To: Rick Macklem Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: e152bbecb221 - main - param.h: bump __FreeBSD_version for commit 7763814fc9c2 Message-ID: References: <202104112153.13BLrZ6B079911@gitrepo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202104112153.13BLrZ6B079911@gitrepo.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: 4FKPLh3XZfz4cr0 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.85 / 15.00]; ARC_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; FREEMAIL_FROM(0.00)[gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; RBL_DBL_DONT_QUERY_IPS(0.00)[2001:470:d5e7:1::1:from]; R_SPF_SOFTFAIL(0.00)[~all:c]; NEURAL_SPAM_MEDIUM(0.85)[0.849]; SPAMHAUS_ZRD(0.00)[2001:470:d5e7:1::1:from:127.0.2.255]; TO_DN_SOME(0.00)[]; NEURAL_SPAM_SHORT(1.00)[1.000]; NEURAL_SPAM_LONG(1.00)[1.000]; 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]; MAILMAN_DEST(0.00)[dev-commits-src-all,dev-commits-src-main]; DMARC_POLICY_SOFTFAIL(0.10)[gmail.com : No valid SPF, No valid DKIM,none] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 12:00:30 -0000 On Sun, Apr 11, 2021 at 09:53:35PM +0000, Rick Macklem wrote: > The branch main has been updated by rmacklem: > > URL: https://cgit.FreeBSD.org/src/commit/?id=e152bbecb221a592e7dbcabe3d1170a60f0d0dfe > > commit e152bbecb221a592e7dbcabe3d1170a60f0d0dfe > Author: Rick Macklem > AuthorDate: 2021-04-11 21:47:36 +0000 > Commit: Rick Macklem > CommitDate: 2021-04-11 21:50:56 +0000 > > param.h: bump __FreeBSD_version for commit 7763814fc9c2 > > Commit 7763814fc9c2 changed the internal KAPI between the krpc > and NFS. As such, the krpc, nfscommon and nfscl modules must > all be rebuilt from sources. In fact this commit introduced the dependency between xdr.ko and nfscl.ko. Do you have an objections against the following? commit 717018345b07939cde2db5c6be040cd9de3314cf Author: Konstantin Belousov Date: Tue Apr 13 14:47:20 2021 +0300 nfs client: depend on xdr Since 7763814fc9c27 nfsrpc_setclient() uses mem_alloc() that is macro around malloc(M_RPC). M_RPC is provided by xdr.ko. diff --git a/sys/fs/nfsclient/nfs_clvfsops.c b/sys/fs/nfsclient/nfs_clvfsops.c index 365b1c387cc2..08a25c6fe632 100644 --- a/sys/fs/nfsclient/nfs_clvfsops.c +++ b/sys/fs/nfsclient/nfs_clvfsops.c @@ -155,6 +155,7 @@ MODULE_VERSION(nfs, 1); MODULE_DEPEND(nfs, nfscommon, 1, 1, 1); MODULE_DEPEND(nfs, krpc, 1, 1, 1); MODULE_DEPEND(nfs, nfssvc, 1, 1, 1); +MODULE_DEPEND(nfs, xdr, 1, 1, 1); /* * This structure is now defined in sys/nfs/nfs_diskless.c so that it From owner-dev-commits-src-main@freebsd.org Tue Apr 13 12:14:33 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 41F7A5DE701; Tue, 13 Apr 2021 12:14:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKPfx1S1bz4dN0; Tue, 13 Apr 2021 12:14:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 24AA626F0; Tue, 13 Apr 2021 12:14:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DCEX3B038336; Tue, 13 Apr 2021 12:14:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DCEXjU038335; Tue, 13 Apr 2021 12:14:33 GMT (envelope-from git) Date: Tue, 13 Apr 2021 12:14:33 GMT Message-Id: <202104131214.13DCEXjU038335@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Edward Tomasz Napierala Subject: git: ca6e1fa3ce87 - main - linux: adjust ordering of Linux auxv and add dummy AT_HWCAP2 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: trasz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ca6e1fa3ce87f56847633530cb94a6fb63405680 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 12:14:33 -0000 The branch main has been updated by trasz: URL: https://cgit.FreeBSD.org/src/commit/?id=ca6e1fa3ce87f56847633530cb94a6fb63405680 commit ca6e1fa3ce87f56847633530cb94a6fb63405680 Author: Edward Tomasz Napierala AuthorDate: 2021-04-13 11:38:37 +0000 Commit: Edward Tomasz Napierala CommitDate: 2021-04-13 12:14:30 +0000 linux: adjust ordering of Linux auxv and add dummy AT_HWCAP2 This should be a no-op; the purpose of this is to reduce a spurious difference between Linuxulator and Linux, to make debugging core dumps slightly easier. Note that AT_HWCAP2 we pass to Linux binaries is always 0, instead of being equal to 'cpu_feature2'. This matches what I've observed under Ubuntu Focal VM. Reviewed By: chuck, dchagin Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D29609 --- sys/amd64/linux/linux.h | 2 +- sys/amd64/linux/linux_sysvec.c | 5 +++-- sys/amd64/linux32/linux.h | 2 +- sys/amd64/linux32/linux32_sysvec.c | 11 ++++++----- sys/compat/linux/linux_misc.h | 1 + 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/sys/amd64/linux/linux.h b/sys/amd64/linux/linux.h index d343f920f6eb..cf9f5cccb287 100644 --- a/sys/amd64/linux/linux.h +++ b/sys/amd64/linux/linux.h @@ -88,7 +88,7 @@ typedef struct { /* * Miscellaneous */ -#define LINUX_AT_COUNT 19 /* Count of used aux entry types. */ +#define LINUX_AT_COUNT 20 /* Count of used aux entry types. */ struct l___sysctl_args { diff --git a/sys/amd64/linux/linux_sysvec.c b/sys/amd64/linux/linux_sysvec.c index 252579a4809e..a04cddeb3c71 100644 --- a/sys/amd64/linux/linux_sysvec.c +++ b/sys/amd64/linux/linux_sysvec.c @@ -265,11 +265,11 @@ linux_copyout_auxargs(struct image_params *imgp, uintptr_t base) AUXARGS_ENTRY(pos, LINUX_AT_SYSINFO_EHDR, imgp->proc->p_sysent->sv_shared_page_base); AUXARGS_ENTRY(pos, LINUX_AT_HWCAP, cpu_feature); + AUXARGS_ENTRY(pos, AT_PAGESZ, args->pagesz); AUXARGS_ENTRY(pos, LINUX_AT_CLKTCK, stclohz); AUXARGS_ENTRY(pos, AT_PHDR, args->phdr); AUXARGS_ENTRY(pos, AT_PHENT, args->phent); AUXARGS_ENTRY(pos, AT_PHNUM, args->phnum); - AUXARGS_ENTRY(pos, AT_PAGESZ, args->pagesz); AUXARGS_ENTRY(pos, AT_BASE, args->base); AUXARGS_ENTRY(pos, AT_FLAGS, args->flags); AUXARGS_ENTRY(pos, AT_ENTRY, args->entry); @@ -278,12 +278,13 @@ linux_copyout_auxargs(struct image_params *imgp, uintptr_t base) AUXARGS_ENTRY(pos, AT_GID, imgp->proc->p_ucred->cr_rgid); AUXARGS_ENTRY(pos, AT_EGID, imgp->proc->p_ucred->cr_svgid); AUXARGS_ENTRY(pos, LINUX_AT_SECURE, issetugid); - AUXARGS_ENTRY(pos, LINUX_AT_PLATFORM, PTROUT(linux_platform)); AUXARGS_ENTRY_PTR(pos, LINUX_AT_RANDOM, imgp->canary); + AUXARGS_ENTRY(pos, LINUX_AT_HWCAP2, 0); if (imgp->execpathp != 0) AUXARGS_ENTRY_PTR(pos, LINUX_AT_EXECFN, imgp->execpathp); if (args->execfd != -1) AUXARGS_ENTRY(pos, AT_EXECFD, args->execfd); + AUXARGS_ENTRY(pos, LINUX_AT_PLATFORM, PTROUT(linux_platform)); AUXARGS_ENTRY(pos, AT_NULL, 0); free(imgp->auxargs, M_TEMP); diff --git a/sys/amd64/linux32/linux.h b/sys/amd64/linux32/linux.h index e79d16e9e28a..244daba4b5c0 100644 --- a/sys/amd64/linux32/linux.h +++ b/sys/amd64/linux32/linux.h @@ -101,7 +101,7 @@ typedef struct { /* * Miscellaneous */ -#define LINUX_AT_COUNT 20 /* Count of used aux entry types. +#define LINUX_AT_COUNT 21 /* Count of used aux entry types. * Keep this synchronized with * linux_fixup_elf() code. */ diff --git a/sys/amd64/linux32/linux32_sysvec.c b/sys/amd64/linux32/linux32_sysvec.c index 3790d0fcb69c..86402035ff5a 100644 --- a/sys/amd64/linux32/linux32_sysvec.c +++ b/sys/amd64/linux32/linux32_sysvec.c @@ -199,10 +199,11 @@ linux_copyout_auxargs(struct image_params *imgp, uintptr_t base) M_WAITOK | M_ZERO); issetugid = imgp->proc->p_flag & P_SUGID ? 1 : 0; + AUXARGS_ENTRY(pos, LINUX_AT_SYSINFO, linux32_vsyscall); AUXARGS_ENTRY(pos, LINUX_AT_SYSINFO_EHDR, imgp->proc->p_sysent->sv_shared_page_base); - AUXARGS_ENTRY(pos, LINUX_AT_SYSINFO, linux32_vsyscall); AUXARGS_ENTRY(pos, LINUX_AT_HWCAP, cpu_feature); + AUXARGS_ENTRY(pos, AT_PAGESZ, args->pagesz); /* * Do not export AT_CLKTCK when emulating Linux kernel prior to 2.4.0, @@ -217,21 +218,21 @@ linux_copyout_auxargs(struct image_params *imgp, uintptr_t base) AUXARGS_ENTRY(pos, AT_PHDR, args->phdr); AUXARGS_ENTRY(pos, AT_PHENT, args->phent); AUXARGS_ENTRY(pos, AT_PHNUM, args->phnum); - AUXARGS_ENTRY(pos, AT_PAGESZ, args->pagesz); + AUXARGS_ENTRY(pos, AT_BASE, args->base); AUXARGS_ENTRY(pos, AT_FLAGS, args->flags); AUXARGS_ENTRY(pos, AT_ENTRY, args->entry); - AUXARGS_ENTRY(pos, AT_BASE, args->base); - AUXARGS_ENTRY(pos, LINUX_AT_SECURE, issetugid); AUXARGS_ENTRY(pos, AT_UID, imgp->proc->p_ucred->cr_ruid); AUXARGS_ENTRY(pos, AT_EUID, imgp->proc->p_ucred->cr_svuid); AUXARGS_ENTRY(pos, AT_GID, imgp->proc->p_ucred->cr_rgid); AUXARGS_ENTRY(pos, AT_EGID, imgp->proc->p_ucred->cr_svgid); - AUXARGS_ENTRY(pos, LINUX_AT_PLATFORM, PTROUT(linux_platform)); + AUXARGS_ENTRY(pos, LINUX_AT_SECURE, issetugid); AUXARGS_ENTRY(pos, LINUX_AT_RANDOM, PTROUT(imgp->canary)); + AUXARGS_ENTRY(pos, LINUX_AT_HWCAP2, 0); if (imgp->execpathp != 0) AUXARGS_ENTRY(pos, LINUX_AT_EXECFN, PTROUT(imgp->execpathp)); if (args->execfd != -1) AUXARGS_ENTRY(pos, AT_EXECFD, args->execfd); + AUXARGS_ENTRY(pos, LINUX_AT_PLATFORM, PTROUT(linux_platform)); AUXARGS_ENTRY(pos, AT_NULL, 0); free(imgp->auxargs, M_TEMP); diff --git a/sys/compat/linux/linux_misc.h b/sys/compat/linux/linux_misc.h index da76753e3d24..bd8b2f3f63b4 100644 --- a/sys/compat/linux/linux_misc.h +++ b/sys/compat/linux/linux_misc.h @@ -88,6 +88,7 @@ extern const char *linux_kplatform; * differ from AT_PLATFORM. */ #define LINUX_AT_RANDOM 25 /* address of random bytes */ +#define LINUX_AT_HWCAP2 26 /* CPU capabilities, second part */ #define LINUX_AT_EXECFN 31 /* filename of program */ #define LINUX_AT_SYSINFO 32 /* vsyscall */ #define LINUX_AT_SYSINFO_EHDR 33 /* vdso header */ From owner-dev-commits-src-main@freebsd.org Tue Apr 13 14:45:48 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D791F5E2E8C; Tue, 13 Apr 2021 14:45:48 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FKT1S0knBz4mNr; Tue, 13 Apr 2021 14:45:47 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-il1-f175.google.com with SMTP id c15so14305971ilj.1; Tue, 13 Apr 2021 07:45:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=eteG+V5O62UWqQLcYhfZ4bdFrFPuXtAMMP1r/qlS/l8=; b=DLc+tBmDATnaIwMdse7v4Z2ygqL0bVJ4ot6H1Silx7Ba2BuHMaUxr/Gh2G2YQ0hhtp sEFt7qmi3rwL1j0w0R2eSVQ3GjZ1BfRoKYBD8lvTLhkmZ7ho132vT90cg5JSD/awAaft unHNX2KmFWvs162Ntiw2YkNo1gsF3Or9aNIyTc4t2DtqJCq0vsMewFrI+7JfHAaF8Bk8 OTtM6uochOzL6nsw0JdgOWiEUahCnQgDY2N7vdXKB1XDv6PXEuda4eyPnVYELfddhca4 lG156UraRjynHbT507O83QVyEhf5HUsb2zZLgAnxVMtYw5a4J8QngKj8rzX2e4JjySEI yH0A== X-Gm-Message-State: AOAM532NpyytWebGY3SRG6gYsuIzvxgEtezAAlg/7XW1OTkKk3Ai44Jq F7bZPdhoXK5TJVKAk/olgcdvlksmT9PS8x5AXpawscgM X-Google-Smtp-Source: ABdhPJwKVjAYbvu+l1AkJEphLGln2DDMMsP2W/Eee//jLhDtq33Il2Pw32Ho/GQWwPCzCDD6KIGAu1iOAZHexRBaJ7E= X-Received: by 2002:a92:cd43:: with SMTP id v3mr28355872ilq.11.1618325146514; Tue, 13 Apr 2021 07:45:46 -0700 (PDT) MIME-Version: 1.0 References: <202104051716.135HGoYJ012524@gitrepo.freebsd.org> <44444ea1-0c4c-98fb-9cae-fe3650441422@FreeBSD.org> In-Reply-To: <44444ea1-0c4c-98fb-9cae-fe3650441422@FreeBSD.org> From: Ed Maste Date: Tue, 13 Apr 2021 10:45:33 -0400 Message-ID: Subject: Re: git: 4bbfa3d3baf7 - main - release: move installworld before installkernel To: John Baldwin Cc: src-committers , "" , dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 4FKT1S0knBz4mNr X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of carpeddiem@gmail.com designates 209.85.166.175 as permitted sender) smtp.mailfrom=carpeddiem@gmail.com X-Spamd-Result: default: False [1.00 / 15.00]; RCVD_TLS_ALL(0.00)[]; ARC_NA(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FREEFALL_USER(0.00)[carpeddiem]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; DMARC_NA(0.00)[freebsd.org]; NEURAL_SPAM_SHORT(1.00)[0.999]; SPAMHAUS_ZRD(0.00)[209.85.166.175:from:127.0.2.255]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; RBL_DBL_DONT_QUERY_IPS(0.00)[209.85.166.175:from]; NEURAL_SPAM_LONG(1.00)[1.000]; RCVD_IN_DNSWL_NONE(0.00)[209.85.166.175:from]; FORGED_SENDER(0.30)[emaste@freebsd.org,carpeddiem@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[209.85.166.175:from]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; MIME_TRACE(0.00)[0:+]; FROM_NEQ_ENVFROM(0.00)[emaste@freebsd.org,carpeddiem@gmail.com]; MAILMAN_DEST(0.00)[dev-commits-src-all,dev-commits-src-main] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 14:45:48 -0000 On Thu, 8 Apr 2021 at 13:48, John Baldwin wrote: > > Alternatively, installworld and installkernel should perhaps write to separate > intermediate METALOG files that are assembled into the final METALOG file when > a single file is needed. Yes, I think that's what we'll need to do - might make sense as part of larger pkgbase work. From owner-dev-commits-src-main@freebsd.org Tue Apr 13 14:46:12 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 026905E2C4D; Tue, 13 Apr 2021 14:46:12 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-TO1-obe.outbound.protection.outlook.com (mail-to1can01on062c.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe5d::62c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKT1v5TB0z4mZ2; Tue, 13 Apr 2021 14:46:10 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fcoenJDhBBiBEiue2mfHn40eY6qcR08TVfbX2oc7JwVCiR0gY0Meu7BQkLNTO/HSu6paUEHzVUGv5H870CTCryT3DDNIz3sd0ltUNOevh8IOjSZoPRZBOe8qhauH1ILpCynKgJPRNPXvxRYbNygq4T8YFPKr9qOe7Uzgfr0EKoZLz6J6OTA4TqzyRmSZ2pu7SSzNZTdOoSupWnEncMdorXRH0ONpdNobdcZej1NlDm7jMXc5kFQY0xvX0jR2yShAxqktXwJ3wEkb2oMIUpIJv50MnIymv5qjIfXbT6Pmfdp7w3/m6dqjJIGNlHB4SQGrr2dHRkBNmqJ0fPfXZmj6AQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GwawcOVayqK2zePEV+bh1vBrCVBhOZFKE+chcxVAEm0=; b=lXjD4StuVHpmYW7WmoVkip0NV0WF3Q9tHgkWErNswWLWl+2fNgIgzgQ+hOptNsXBBsHwbPeRbrI8OrcIRcnxG85tFPruzksrU8ofmfxonD7gXUc+eMrCbqek/yfjpceBCA+w/aRKadVHgycQfGIXnytPJ6Lgl7W3c7QJSQFrdTeJ391+zPZpBGnHmBISWg1cORWUsRFVwH5Y7XT7yYTedR33HbpNajswwQlXTqpMMY36qb4kU91YWbp7m7dQWnbvwh4h0k3l85BRcv0MCaIdhcXOuJjChlJtOkUn8TlgE28iuHqv1K+6o96mTxBHm/XNN59asLIWgaCVGi6m7wU4fg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=uoguelph.ca; dmarc=pass action=none header.from=uoguelph.ca; dkim=pass header.d=uoguelph.ca; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uoguelph.ca; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GwawcOVayqK2zePEV+bh1vBrCVBhOZFKE+chcxVAEm0=; b=LoeDbpa0oCd1UGOy99rKby5TBnxwflNF07Iqltgggp91IIyONJ2btWf0SHmyJQZL84QHCj50LMU6rpo7Dx1DJCIoCJgTxGlN7w6dZ3fiGsM9/h7I15Hzr0pFT7W4EVTlady3qCxLjTgUk1QOQobeuUTyYx4rUK9EfhsVjgQst3PRQJByDK5TKFP6PlnMFzi6p5y5WJ0ydf0TXAKZm8sHTcJTH46+wEzxZZvjN1Vr2BKy2hiNx8Rx7Nez/bGQheHrhsJdidkFfZkcqQOI1TLPhVfYvw8rjWqU3KC4qbZ8a2hEUrixl3qL/bwh4dalLqepit8gp2fTTBHCRIfIP7FV9g== Received: from YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c00:19::29) by YQXPR01MB2759.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c00:48::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.32; Tue, 13 Apr 2021 14:46:09 +0000 Received: from YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM ([fe80::1c05:585a:132a:f08e]) by YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM ([fe80::1c05:585a:132a:f08e%4]) with mapi id 15.20.3999.037; Tue, 13 Apr 2021 14:46:01 +0000 From: Rick Macklem To: Konstantin Belousov , Rick Macklem CC: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Subject: Re: git: e152bbecb221 - main - param.h: bump __FreeBSD_version for commit 7763814fc9c2 Thread-Topic: git: e152bbecb221 - main - param.h: bump __FreeBSD_version for commit 7763814fc9c2 Thread-Index: AQHXMFycRRmJ6uIj1ECSMLv7lVdZHaqyhfVB Date: Tue, 13 Apr 2021 14:46:01 +0000 Message-ID: References: <202104112153.13BLrZ6B079911@gitrepo.freebsd.org>, In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 541717f0-531d-4675-9e56-08d8fe8adbbd x-ms-traffictypediagnostic: YQXPR01MB2759: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1417; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BA0NT+DbdqrbOa7nlEWBSsQOl1eYDntS7cKfZpzBUY7fUHswsAQC3tjsaMP+uZyVUyI4KTlT6fPUMSup3HPRLnvo5nziUv8xWnbIxMLP1l7ycIQnesq1/K7TebQufUSc6IK5yJy6sw65tLUriQTi6XXmOfu9l3DgX7Ji26MI1sf6c+Y0M3IflRjKfq4zQcM1w4D/VCffX7dEWEy0amCmHdvzb5gOVIyF33elh0FFGkih3mlwXyEirTCg5LAejWudIn7PoF3fYNFWiVybDc02bMcPQPya/F1an3/cwPJJROG26znd8fnCBLKhRJaOZt2xu3mAgIRw1vQ2TpHemIUsHJuS9xOx7Fbh2SA++BsFQ1vY6A+kP7geIJh1XTMW97xe/KXhJe5HqT02H8KxPKfzvFWOmXJ/Kl/i7HlM3IWqhZJUnDtJ8hhJ8feUpjpvUmC4Q9NNjdJ3/pthEEXX2M6vU/H+cUmHWTp0CYOvOFXha8zL0v0fAGIvB58J8efpN6vGlDZGMhm6Qilk3IMwdTIAjxgMN/+TcHRGSfUzjWZpY2ROwRK00jpvHT8P9gnzV0vcFNeSxvxxo1dfZHdSYy0Cqukcf/m5MZTfKlDmVqON+XAZzniNyH/6LZRv415GIBpY9PAy2CsmpxJsTxwWvkY62HtvX2I6Bx9tlmrskwtl2DREG0FifD9dwbxCLmMlp95+ x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(376002)(396003)(346002)(136003)(366004)(39860400002)(83380400001)(54906003)(71200400001)(7696005)(66946007)(66446008)(52536014)(8936002)(110136005)(91956017)(966005)(64756008)(786003)(66476007)(76116006)(5660300002)(66556008)(2906002)(53546011)(6506007)(86362001)(478600001)(8676002)(186003)(316002)(4326008)(33656002)(38100700002)(122000001)(55016002)(9686003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?Hs4b+FU7N0GdiDRXyC4EC6X4iuAGhdilm4OtsLwoSJmoKiadrUKiLpNV6++g?= =?us-ascii?Q?+BxeKYl+5Xcrm2z0NUtyislpcABWf/wfWQYPfc/2RYcifjCrDB3EeqDcbVe/?= =?us-ascii?Q?ZCIOCwTJl3Wr+uVDqdGBhiAlKRelQbK3T5JOLhw5w54ifzrGdmJKMSWPA0Tl?= =?us-ascii?Q?Wtl7Ns6xraOZfOlsjqrelnpwSzJ4DoAJYoVCFsHkqmuzZT7z0s74Hwhvu2pj?= =?us-ascii?Q?DMPTxUJDlFpl2rtZW8prxFrb0SXO99IPKWAJ4BDEOjBot+QxB6alq0n4+4jM?= =?us-ascii?Q?dMIHdG91rrcIHdOJi4J+NqS8zAILCP+6C2XR6ebQLm6zRTBBne/EkIrZCryK?= =?us-ascii?Q?C0cctCPCWfBKC0/eDqhSOVV5tGga0YdKxqd17OTAWUomTbDuMdEHwfJc7jqD?= =?us-ascii?Q?kPPvYvScOQhPZcJB7wyceobkTMIe8fPxDD5RftOlOuAzlcmfdKWMYDSUIpHi?= =?us-ascii?Q?16V5p8952EKiAFCABwfPYNHT7J/FGttWH2R0uCQp8wayGW7kO1XtJjDCpHZd?= =?us-ascii?Q?Ns1V2lPYs7jE4Os7D5AHUnO66pLACGztBXZlSjKavFx4FcRD6kUnVrlt9Fvq?= =?us-ascii?Q?LsLpoTF0YOawzhdZv73k8XhFJXcCq4uScyKYo2lfLGgvxSzmtyqIEeInuJ26?= =?us-ascii?Q?RThVSNsFjz4xT+baFT/5Dm6o7RF07XDUsbHBVI8O1g4CriPsYd8WHOJpKx3F?= =?us-ascii?Q?SeFRRQf598vTmwNIl93Lt1egxdjugOHyWMwU9OmIZuduotw/kAlQT6m8Ut+z?= =?us-ascii?Q?YbjGgHU9M2h3NNDaq1HkxMDLlYp1lzhCnPMhqZ7poqnRf5ZQ/K3iaUngXNEZ?= =?us-ascii?Q?0D73dYpJXzlpeTf4avX6+1r2OFrP7djBHWlHAxtEVNJSSfitVKjCdFegi6TC?= =?us-ascii?Q?YpBGk2Pj1uPZXrN4Ja4NzBd/8TouHNdD2O9qdM7rb2iY8YjT9WAa2u9ab0m1?= =?us-ascii?Q?l+e14VRB9G9T9opgGn6nMEdS19ar5CnLThsyKMp1xxrR97HmER5mHjvtqbr/?= =?us-ascii?Q?X7sGwGEUSYkje9mEVTMqeW46UcXoQr19SE2qfricByMtptPNgOi1Hmt9iXra?= =?us-ascii?Q?MCG9tS5vlv8uNT9Rn8ldunzPSn3XnrSt9rmYOFDaKnU4QqB6QnfTvN5lCFYW?= =?us-ascii?Q?7opIU7uzIv2anRO2NMzmdQ2pPtqZSFKx3LB7YCHhOmMlbzWjE0fjuOWAbIyp?= =?us-ascii?Q?a/0D87dXh1xIx4IpBYYBbnoAwiSlgVEbyni99L2/0MKUij7lgqs8fVyQBPpN?= =?us-ascii?Q?/itaWEIR6Zn+RAjsJzXJUySrROCOx7qE0eEb+YiqBObq9KuMSyG2iVw9mk1I?= =?us-ascii?Q?2RH808+SR5m0WNx7znjKv3e551eOSI55VBbeZnwCRXveYTJ4Am/IUxMEi7G2?= =?us-ascii?Q?tJ8wBfaqXC5R65BWdTie+r5mZjwl?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 541717f0-531d-4675-9e56-08d8fe8adbbd X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2021 14:46:01.7944 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dgvrZVfWNyVlNGTDisVGtqU1nCYaxwemPld+UKiDjnftUNtjl3uBOknL4jX+nfRNsCDlZPkUpBWaa3/OMIKTzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQXPR01MB2759 X-Rspamd-Queue-Id: 4FKT1v5TB0z4mZ2 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 14:46:12 -0000 No problem. The xdr is always needed by the krpc. I tend to forget when the extra dependency is needed, but adding it is certainly harmless. Thanks for doing this, rick ________________________________________ From: Konstantin Belousov Sent: Tuesday, April 13, 2021 8:00 AM To: Rick Macklem Cc: src-committers@freebsd.org; dev-commits-src-all@freebsd.org; dev-commit= s-src-main@freebsd.org Subject: Re: git: e152bbecb221 - main - param.h: bump __FreeBSD_version for= commit 7763814fc9c2 CAUTION: This email originated from outside of the University of Guelph. Do= not click links or open attachments unless you recognize the sender and kn= ow the content is safe. If in doubt, forward suspicious emails to IThelp@uo= guelph.ca On Sun, Apr 11, 2021 at 09:53:35PM +0000, Rick Macklem wrote: > The branch main has been updated by rmacklem: > > URL: https://cgit.FreeBSD.org/src/commit/?id=3De152bbecb221a592e7dbcabe3d= 1170a60f0d0dfe > > commit e152bbecb221a592e7dbcabe3d1170a60f0d0dfe > Author: Rick Macklem > AuthorDate: 2021-04-11 21:47:36 +0000 > Commit: Rick Macklem > CommitDate: 2021-04-11 21:50:56 +0000 > > param.h: bump __FreeBSD_version for commit 7763814fc9c2 > > Commit 7763814fc9c2 changed the internal KAPI between the krpc > and NFS. As such, the krpc, nfscommon and nfscl modules must > all be rebuilt from sources. In fact this commit introduced the dependency between xdr.ko and nfscl.ko. Do you have an objections against the following? commit 717018345b07939cde2db5c6be040cd9de3314cf Author: Konstantin Belousov Date: Tue Apr 13 14:47:20 2021 +0300 nfs client: depend on xdr Since 7763814fc9c27 nfsrpc_setclient() uses mem_alloc() that is macro around malloc(M_RPC). M_RPC is provided by xdr.ko. diff --git a/sys/fs/nfsclient/nfs_clvfsops.c b/sys/fs/nfsclient/nfs_clvfsop= s.c index 365b1c387cc2..08a25c6fe632 100644 --- a/sys/fs/nfsclient/nfs_clvfsops.c +++ b/sys/fs/nfsclient/nfs_clvfsops.c @@ -155,6 +155,7 @@ MODULE_VERSION(nfs, 1); MODULE_DEPEND(nfs, nfscommon, 1, 1, 1); MODULE_DEPEND(nfs, krpc, 1, 1, 1); MODULE_DEPEND(nfs, nfssvc, 1, 1, 1); +MODULE_DEPEND(nfs, xdr, 1, 1, 1); /* * This structure is now defined in sys/nfs/nfs_diskless.c so that it From owner-dev-commits-src-main@freebsd.org Tue Apr 13 15:05:21 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A1C435E384D; Tue, 13 Apr 2021 15:05:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKTS14FpBz4nZB; Tue, 13 Apr 2021 15:05:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 84EC14BDB; Tue, 13 Apr 2021 15:05:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DF5Lbc064550; Tue, 13 Apr 2021 15:05:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DF5L3J064549; Tue, 13 Apr 2021 15:05:21 GMT (envelope-from git) Date: Tue, 13 Apr 2021 15:05:21 GMT Message-Id: <202104131505.13DF5L3J064549@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 8cca7b7f28fe - main - nfs client: depend on xdr MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8cca7b7f28feaf0c5e2dfedb985ae334a4013ef6 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 15:05:21 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=8cca7b7f28feaf0c5e2dfedb985ae334a4013ef6 commit 8cca7b7f28feaf0c5e2dfedb985ae334a4013ef6 Author: Konstantin Belousov AuthorDate: 2021-04-13 11:47:20 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-13 15:04:43 +0000 nfs client: depend on xdr Since 7763814fc9c27 nfsrpc_setclient() uses mem_alloc() that is macro around malloc(M_RPC). M_RPC is provided by xdr.ko. Reviewed by: rmacklem Sponsored by: Mellanox Technologies/NVidia Networking MFC after: 1 week --- sys/fs/nfsclient/nfs_clvfsops.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/fs/nfsclient/nfs_clvfsops.c b/sys/fs/nfsclient/nfs_clvfsops.c index 365b1c387cc2..08a25c6fe632 100644 --- a/sys/fs/nfsclient/nfs_clvfsops.c +++ b/sys/fs/nfsclient/nfs_clvfsops.c @@ -155,6 +155,7 @@ MODULE_VERSION(nfs, 1); MODULE_DEPEND(nfs, nfscommon, 1, 1, 1); MODULE_DEPEND(nfs, krpc, 1, 1, 1); MODULE_DEPEND(nfs, nfssvc, 1, 1, 1); +MODULE_DEPEND(nfs, xdr, 1, 1, 1); /* * This structure is now defined in sys/nfs/nfs_diskless.c so that it From owner-dev-commits-src-main@freebsd.org Tue Apr 13 15:23:52 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A90CD5E3C67; Tue, 13 Apr 2021 15:23:52 +0000 (UTC) (envelope-from jhb@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKTsN4VdNz4pG9; Tue, 13 Apr 2021 15:23:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro.local (ralph.baldwin.cx [66.234.199.215]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 2414A2CD35; Tue, 13 Apr 2021 15:23:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: git: 73c14cc76b5f - main - Remove history.immutable from .arcconfig To: Alex Richardson , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202104131138.13DBcgrt085662@gitrepo.freebsd.org> From: John Baldwin Message-ID: <9e0d4574-bcad-b24c-78ad-c172d6d2c221@FreeBSD.org> Date: Tue, 13 Apr 2021 08:23:50 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:78.0) Gecko/20100101 Thunderbird/78.9.0 MIME-Version: 1.0 In-Reply-To: <202104131138.13DBcgrt085662@gitrepo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 15:23:52 -0000 On 4/13/21 4:38 AM, Alex Richardson wrote: > The branch main has been updated by arichardson: > > URL: https://cgit.FreeBSD.org/src/commit/?id=73c14cc76b5f815c6b1bd93089ebafdd9269d343 > > commit 73c14cc76b5f815c6b1bd93089ebafdd9269d343 > Author: Alex Richardson > AuthorDate: 2021-04-13 11:36:24 +0000 > Commit: Alex Richardson > CommitDate: 2021-04-13 11:36:25 +0000 > > Remove history.immutable from .arcconfig > > The `history.immutable` setting prevents arcanist from updating > the commit messages with the Differential URL and therefore > makes updating patches awkward with a rebase workflow. > > In case this new behaviour is not wanted the old one can be restored > by running `arc set-config --local history.immutable true`. > > Test Plan: `arc diff --create HEAD^` adds the metadata now. > > Reviewed By: #phabric-admin, imp, lwhsu > Differential Revision: https://reviews.freebsd.org/D27971 FYI, this might break git arc since arc will now start rewriting commits rather than leaving them alone. If so, we can look use 'arc diff' with --head to turn off some of its magic. It would also avoid having 'git arc' have to adjust the working copy. -- John Baldwin From owner-dev-commits-src-main@freebsd.org Tue Apr 13 15:25:46 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A4F435E3F10; Tue, 13 Apr 2021 15:25:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKTvZ4JlSz4pLN; Tue, 13 Apr 2021 15:25:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 86D1F503E; Tue, 13 Apr 2021 15:25:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DFPk72090432; Tue, 13 Apr 2021 15:25:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DFPkfh090431; Tue, 13 Apr 2021 15:25:46 GMT (envelope-from git) Date: Tue, 13 Apr 2021 15:25:46 GMT Message-Id: <202104131525.13DFPkfh090431@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alexander Motin Subject: git: e49d3eb40324 - main - Fix race in case of device destruction. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e49d3eb40324eaffaa13b93f2c4173dfa04dfa34 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 15:25:46 -0000 The branch main has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=e49d3eb40324eaffaa13b93f2c4173dfa04dfa34 commit e49d3eb40324eaffaa13b93f2c4173dfa04dfa34 Author: Alexander Motin AuthorDate: 2021-04-13 15:19:10 +0000 Commit: Alexander Motin CommitDate: 2021-04-13 15:25:27 +0000 Fix race in case of device destruction. During device destruction it is possible that open() succeed, but fdevname() return NULL, that can't be assigned to string variable. Fix that by adding explicit NULL check. Also while there switch from fdevname() to fdevname_r(). Sponsored by: iXsystems, Inc. MFC after: 2 weeks --- lib/libdevdctl/event.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/libdevdctl/event.cc b/lib/libdevdctl/event.cc index 36c9b725fed1..76ef1896975a 100644 --- a/lib/libdevdctl/event.cc +++ b/lib/libdevdctl/event.cc @@ -277,6 +277,7 @@ Event::GetTimestamp() const bool Event::DevPath(std::string &path) const { + char buf[SPECNAMELEN + 1]; string devName; if (!DevName(devName)) @@ -288,7 +289,11 @@ Event::DevPath(std::string &path) const return (false); /* Normalize the device name in case the DEVFS event is for a link. */ - devName = fdevname(devFd); + if (fdevname_r(devFd, buf, sizeof(buf)) == NULL) { + close(devFd); + return (false); + } + devName = buf; path = _PATH_DEV + devName; close(devFd); From owner-dev-commits-src-main@freebsd.org Tue Apr 13 17:47:12 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 52AC45E6D83; Tue, 13 Apr 2021 17:47:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKY2m1rk3z3Bvp; Tue, 13 Apr 2021 17:47:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2DFE3719E; Tue, 13 Apr 2021 17:47:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DHlCW6077259; Tue, 13 Apr 2021 17:47:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DHlCAg077258; Tue, 13 Apr 2021 17:47:12 GMT (envelope-from git) Date: Tue, 13 Apr 2021 17:47:12 GMT Message-Id: <202104131747.13DHlCAg077258@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: a2a8b582bdc1 - main - arm64: clear debug registers after execve(2) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a2a8b582bdc1c8c1f4da3ae727349327f5fc9dd8 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 17:47:12 -0000 The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=a2a8b582bdc1c8c1f4da3ae727349327f5fc9dd8 commit a2a8b582bdc1c8c1f4da3ae727349327f5fc9dd8 Author: Mitchell Horne AuthorDate: 2021-04-09 14:13:21 +0000 Commit: Mitchell Horne CommitDate: 2021-04-13 17:41:03 +0000 arm64: clear debug registers after execve(2) This is both intuitive and required, as any previous breakpoint settings may not be applicable to the new process. Reported by: arichardson Reviewed by: kib MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29672 --- sys/arm64/arm64/elf32_machdep.c | 8 +++++++- sys/arm64/arm64/machdep.c | 5 ++++- sys/arm64/linux/linux_sysvec.c | 12 +++++++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/sys/arm64/arm64/elf32_machdep.c b/sys/arm64/arm64/elf32_machdep.c index 84b62caf8590..b9669616e1dd 100644 --- a/sys/arm64/arm64/elf32_machdep.c +++ b/sys/arm64/arm64/elf32_machdep.c @@ -239,6 +239,7 @@ freebsd32_setregs(struct thread *td, struct image_params *imgp, uintptr_t stack) { struct trapframe *tf = td->td_frame; + struct pcb *pcb = td->td_pcb; memset(tf, 0, sizeof(struct trapframe)); @@ -256,8 +257,13 @@ freebsd32_setregs(struct thread *td, struct image_params *imgp, tf->tf_spsr = PSR_M_32; #ifdef VFP - vfp_reset_state(td, td->td_pcb); + vfp_reset_state(td, pcb); #endif + + /* + * Clear debug register state. It is not applicable to the new process. + */ + bzero(&pcb->pcb_dbg_regs, sizeof(pcb->pcb_dbg_regs)); } void diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c index 97fa374b1c75..c2e0eae188f2 100644 --- a/sys/arm64/arm64/machdep.c +++ b/sys/arm64/arm64/machdep.c @@ -569,7 +569,10 @@ exec_setregs(struct thread *td, struct image_params *imgp, uintptr_t stack) vfp_reset_state(td, pcb); #endif - /* TODO: Shouldn't we also reset pcb_dbg_regs? */ + /* + * Clear debug register state. It is not applicable to the new process. + */ + bzero(&pcb->pcb_dbg_regs, sizeof(pcb->pcb_dbg_regs)); } /* Sanity check these are the same size, they will be memcpy'd to and fro */ diff --git a/sys/arm64/linux/linux_sysvec.c b/sys/arm64/linux/linux_sysvec.c index df16db4040a7..e20e0fd32b91 100644 --- a/sys/arm64/linux/linux_sysvec.c +++ b/sys/arm64/linux/linux_sysvec.c @@ -351,6 +351,7 @@ linux_exec_setregs(struct thread *td, struct image_params *imgp, uintptr_t stack) { struct trapframe *regs = td->td_frame; + struct pcb *pcb = td->td_pcb; /* LINUXTODO: validate */ LIN_SDT_PROBE0(sysvec, linux_exec_setregs, todo); @@ -365,14 +366,19 @@ linux_exec_setregs(struct thread *td, struct image_params *imgp, #endif regs->tf_elr = imgp->entry_addr; - td->td_pcb->pcb_tpidr_el0 = 0; - td->td_pcb->pcb_tpidrro_el0 = 0; + pcb->pcb_tpidr_el0 = 0; + pcb->pcb_tpidrro_el0 = 0; WRITE_SPECIALREG(tpidrro_el0, 0); WRITE_SPECIALREG(tpidr_el0, 0); #ifdef VFP - vfp_reset_state(td, td->td_pcb); + vfp_reset_state(td, pcb); #endif + + /* + * Clear debug register state. It is not applicable to the new process. + */ + bzero(&pcb->pcb_dbg_regs, sizeof(pcb->pcb_dbg_regs)); } int From owner-dev-commits-src-main@freebsd.org Tue Apr 13 17:47:13 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6462F5E6B98; Tue, 13 Apr 2021 17:47:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKY2n2HyQz3Bsd; Tue, 13 Apr 2021 17:47:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 41A006DD7; Tue, 13 Apr 2021 17:47:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DHlD3q077282; Tue, 13 Apr 2021 17:47:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DHlDIc077281; Tue, 13 Apr 2021 17:47:13 GMT (envelope-from git) Date: Tue, 13 Apr 2021 17:47:13 GMT Message-Id: <202104131747.13DHlDIc077281@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 5742f2d89c03 - main - arm64: adjust comments in dbg_monitor_exit() MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5742f2d89c03311e8b2d92422c0e2e4063cb2e1d Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 17:47:13 -0000 The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=5742f2d89c03311e8b2d92422c0e2e4063cb2e1d commit 5742f2d89c03311e8b2d92422c0e2e4063cb2e1d Author: Mitchell Horne AuthorDate: 2021-04-13 17:34:58 +0000 Commit: Mitchell Horne CommitDate: 2021-04-13 17:41:31 +0000 arm64: adjust comments in dbg_monitor_exit() These comments were copied from dbg_monitor_enter(), but the intended modifications weren't made. Update them to reflect what this code actually does. MFC after: 3 days Sponsored by: The FreeBSD Foundation --- sys/arm64/arm64/debug_monitor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/debug_monitor.c b/sys/arm64/arm64/debug_monitor.c index c3dce1883e68..8ef2ba360786 100644 --- a/sys/arm64/arm64/debug_monitor.c +++ b/sys/arm64/arm64/debug_monitor.c @@ -583,11 +583,11 @@ dbg_monitor_exit(struct thread *thread, struct trapframe *frame) if (!(SV_PROC_FLAG(thread->td_proc, SV_ILP32))) frame->tf_spsr |= PSR_D; if ((thread->td_pcb->pcb_dbg_regs.dbg_flags & DBGMON_ENABLED) != 0) { - /* Install the kernel version of the registers */ + /* Install the thread's version of the registers */ dbg_register_sync(&thread->td_pcb->pcb_dbg_regs); frame->tf_spsr &= ~PSR_D; } else if ((kernel_monitor.dbg_flags & DBGMON_ENABLED) != 0) { - /* Disable the user breakpoints until we return to userspace */ + /* Disable the kernel breakpoints until we re-enter */ for (i = 0; i < dbg_watchpoint_num; i++) { dbg_wb_write_reg(DBG_REG_BASE_WCR, i, 0); dbg_wb_write_reg(DBG_REG_BASE_WVR, i, 0); From owner-dev-commits-src-main@freebsd.org Tue Apr 13 19:53:19 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BD59D5EA2EC for ; Tue, 13 Apr 2021 19:53:19 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x731.google.com (mail-qk1-x731.google.com [IPv6:2607:f8b0:4864:20::731]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FKbrH4l9Nz3K1T for ; Tue, 13 Apr 2021 19:53:19 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x731.google.com with SMTP id 130so4935817qkm.4 for ; Tue, 13 Apr 2021 12:53:19 -0700 (PDT) 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=+HvWLAX8L+JSwgY53akFzeehsKaEXff5iWNs2oQrWSs=; b=h207l1JNgDDEE8k7yGa1BLB3ZLBRcyqBIMiKZIeV4AhlDXRecEirCR5sTDKCqbTOwW 1AjT+hYG/4QI5NY6ZRBv1cf/LVf9XMI8jAmJnewg8YC26HnGY3AG/Se7AZytC/CXeQ8U PDXeWfDZjtBB6XcXE2SDlmsAbPCmlC78pFNCPfzdKDRC8qkHvndVeOx51vZ+EiiRo4cK U+WFihgz4EiqcPvfiaTseekRCAMGq8FxPF2Jwt1A2Fbjw6G/s3Zjhb2Pf56yDco8hKU2 mg1/jWURQigbgjtM/ToxYWXN2UMbu6Bgp/Agxx4hVFoEGZ1H1iuMS32YXeHIehdZJb6j IEnA== 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=+HvWLAX8L+JSwgY53akFzeehsKaEXff5iWNs2oQrWSs=; b=PYnumzcg02jyjTwbySZtUwg27+tZL3bFCMHtkisvWiXggTP7DRIGjjgI8ytw+CLuSK CaVTArsfFwFk4s4JaNnzUJ7Rmc7DIklLmRzH8ayOjZoHbU8LfjvmYxOr+e5JAEJLEs0H GVLOT3yLIBV3BzvYu1pKpzFYrMRVGH2qcS4QhGM6jOER2pdtSFKV4aW2tJcZJuS8DHV+ 52ALPa9nDQ6525FCBenXOveV/F2e612InDVQfWjm9BSgaWyvRfrl7bsH5XGHwDy3DSNy 326xUyntkpw7DalCH268osZSe5f0HqEebA8dkLA2nRWiz+M6kSNJVtvrr9BnLp/JVouS F7iw== X-Gm-Message-State: AOAM530cExd9G3oSmtM/qP17n3k2L4prtwPYfghdZdh9QOV0+LKH5dD6 V4mw/w0yBcp7EUaOrGEi6fSdU+U3Mu2T2WVk98T1vg== X-Google-Smtp-Source: ABdhPJwT3buwJsD0zeIMTg3qg5OovbMrlNDgvcGyHdV0ayco/chuAmpPyd+wXggFmPDn/xq60ZeDM2QzvP6/ulz1t/g= X-Received: by 2002:ae9:ed07:: with SMTP id c7mr15179723qkg.89.1618343598579; Tue, 13 Apr 2021 12:53:18 -0700 (PDT) MIME-Version: 1.0 References: <202104131138.13DBcgrt085662@gitrepo.freebsd.org> <9e0d4574-bcad-b24c-78ad-c172d6d2c221@FreeBSD.org> In-Reply-To: <9e0d4574-bcad-b24c-78ad-c172d6d2c221@FreeBSD.org> From: Warner Losh Date: Tue, 13 Apr 2021 13:53:07 -0600 Message-ID: Subject: Re: git: 73c14cc76b5f - main - Remove history.immutable from .arcconfig To: John Baldwin Cc: Alex Richardson , src-committers , "" , dev-commits-src-main@freebsd.org X-Rspamd-Queue-Id: 4FKbrH4l9Nz3K1T X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.34 X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 19:53:19 -0000 On Tue, Apr 13, 2021 at 9:23 AM John Baldwin wrote: > On 4/13/21 4:38 AM, Alex Richardson wrote: > > The branch main has been updated by arichardson: > > > > URL: > https://cgit.FreeBSD.org/src/commit/?id=73c14cc76b5f815c6b1bd93089ebafdd9269d343 > > > > commit 73c14cc76b5f815c6b1bd93089ebafdd9269d343 > > Author: Alex Richardson > > AuthorDate: 2021-04-13 11:36:24 +0000 > > Commit: Alex Richardson > > CommitDate: 2021-04-13 11:36:25 +0000 > > > > Remove history.immutable from .arcconfig > > > > The `history.immutable` setting prevents arcanist from updating > > the commit messages with the Differential URL and therefore > > makes updating patches awkward with a rebase workflow. > > > > In case this new behaviour is not wanted the old one can be restored > > by running `arc set-config --local history.immutable true`. > > > > Test Plan: `arc diff --create HEAD^` adds the metadata now. > > > > Reviewed By: #phabric-admin, imp, lwhsu > > Differential Revision: https://reviews.freebsd.org/D27971 > > FYI, this might break git arc since arc will now start rewriting commits > rather than leaving them alone. If so, we can look use 'arc diff' > with --head to turn off some of its magic. It would also avoid having > 'git arc' have to adjust the working copy. > I'd honestly rather have 'git arc create' stamp this in from the git go. I really dislike having it not there until just before I go to commit. Warner From owner-dev-commits-src-main@freebsd.org Tue Apr 13 20:15:28 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DFA685EB01A; Tue, 13 Apr 2021 20:15:28 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FKcKr0WWnz3KrG; Tue, 13 Apr 2021 20:15:27 +0000 (UTC) (envelope-from etnapierala@gmail.com) Received: by mail-wr1-x42b.google.com with SMTP id p6so10944953wrn.9; Tue, 13 Apr 2021 13:15:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to; bh=oo5C2yTzS3AbpsZV+9NaRzdfusnz4n39u433YeFNGrE=; b=AEDsk/z0MF4yXEmNDzsRo+FqbzIMXzYtL+xH89P9qq3W3XiwQBt+JZrCRNhFKm99Cl osKJmQBi+104d7exJLTcBKFBd/F9sCM3AJClixApHPov56aRGf2tO7hJLV4m0oj54OVA +Zz2cf2qhrhRXGqB6o962eDrTxFfZ8IX5gtnsto1zCUgpbSgz6CtuDDXK0zQr14EElK7 UVX4ucIOaC3mtVTIo1i7j6RDxKARIkeFHUzSGOx5BSLHCj7BtVFymAuUfXhByCfkCfl8 lJxFEP/aM/W2ghOtR/VasrcM8qTioXmVMne25MRvTkFgsgda6HqqGEztEO5v4hX3HZOw 3/Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to; bh=oo5C2yTzS3AbpsZV+9NaRzdfusnz4n39u433YeFNGrE=; b=mkdnK0HdNKSGcNshp3iprRh835AJzDmyh0xsTsT9MchsiXUh8n0/W34Wc4jRQDRbTC uqd0vIWmK6+paO24fTvYXJesILuIXHbfytpwEguA7G8t40CEf/K0QM4plEg490EMW66j Y/QePYbjkwQ/kpky6FK1yfcXK8lBrlSkXekqT4kzgEVQ0jT6Y3YGNvm0rwXKAL1aiZ8v 7K6YRplfgZYGvFQISzHoSHfIux0MbT8PrbYcbfy2t/CYfcveUnO1fX0huClJrVtPBHUf FQ3lbYNTjOHB4Uzq1rWhk3wKMECvs2/WYiNr4TtnMIkBybTLOI5KRd/ydVt+0m8Y+LDT pPfA== X-Gm-Message-State: AOAM530DkYmRjYRNTx24iOsCj1Bu8o5XEXsybVoenlIPbJy3/XwS2dIk oDYssjRj05rHdhPQYAcutI1k4g2Gk2g= X-Google-Smtp-Source: ABdhPJziVoepWglF4Twc2HJr8o3pq56NHKOgvOw7RjCj7UDb+ZnKqHjmSVkXXn8QZoI84cL98GPvfw== X-Received: by 2002:a5d:484d:: with SMTP id n13mr39412295wrs.71.1618344925355; Tue, 13 Apr 2021 13:15:25 -0700 (PDT) Received: from brick (cpc159423-cmbg20-2-0-cust338.5-4.cable.virginm.net. [86.7.147.83]) by smtp.gmail.com with ESMTPSA id j12sm11049885wro.29.2021.04.13.13.15.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Apr 2021 13:15:24 -0700 (PDT) Sender: =?UTF-8?Q?Edward_Tomasz_Napiera=C5=82a?= Date: Tue, 13 Apr 2021 21:15:25 +0100 From: Edward Tomasz Napierala To: rgrimes@freebsd.org Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 82431b7506d6 - main - rc: remove the 'archdep' script Message-ID: Mail-Followup-To: rgrimes@freebsd.org, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org References: <202104121418.13CEISV0082707@gitrepo.freebsd.org> <202104121851.13CIpmmQ034866@gndrsh.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202104121851.13CIpmmQ034866@gndrsh.dnsmgr.net> X-Rspamd-Queue-Id: 4FKcKr0WWnz3KrG X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=AEDsk/z0; dmarc=none; spf=pass (mx1.freebsd.org: domain of etnapierala@gmail.com designates 2a00:1450:4864:20::42b as permitted sender) smtp.mailfrom=etnapierala@gmail.com X-Spamd-Result: default: False [-2.70 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; TO_DN_NONE(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; NEURAL_HAM_SHORT(-1.00)[-1.000]; FORGED_SENDER(0.30)[trasz@freebsd.org,etnapierala@gmail.com]; RECEIVED_SPAMHAUS_PBL(0.00)[86.7.147.83:received]; MIME_TRACE(0.00)[0:+]; RBL_DBL_DONT_QUERY_IPS(0.00)[2a00:1450:4864:20::42b:from]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[trasz@freebsd.org,etnapierala@gmail.com]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; 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]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; SPAMHAUS_ZRD(0.00)[2a00:1450:4864:20::42b:from:127.0.2.255]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::42b:from]; MID_RHS_NOT_FQDN(0.50)[]; RCVD_TLS_ALL(0.00)[]; MAILMAN_DEST(0.00)[dev-commits-src-all,dev-commits-src-main] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 20:15:28 -0000 On 0412T1151, Rodney W. Grimes wrote: > > The branch main has been updated by trasz: > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=82431b7506d646165d52f11bc2958e8ce8ec5cce > > > > commit 82431b7506d646165d52f11bc2958e8ce8ec5cce > > Author: Edward Tomasz Napierala > > AuthorDate: 2021-04-12 13:38:16 +0000 > > Commit: Edward Tomasz Napierala > > CommitDate: 2021-04-12 14:18:17 +0000 > > > > rc: remove the 'archdep' script > > > > It was unused since 405c3050f10, which removed iBCS support. > > > > This also moves the 'linux' rc script slightly earlier, which > > might help in some setups. The original version of this patch > > moved it even more, before 'mountcritlocal', which would fixe > > mount(8) errors due to missing /dev/shm in setups with entries > > for /path/to/chroot/dev/shm without the "late" flag; however, > > in the end 'kldxref' turned out to depend on 'mountcritlocal' > > anyway. > > I would think that these hintts are built and kernel/module > install time, not at the much later when the system is booting. They are, for amd64. The problem here is that kldxref(8) doesn't work for cross builds. > Crazy idea, but first isnt it too late for hints by the time > this runs? So... change this from a _start to a _shutdown > action and build the hints files on the way down so that > all things are ready next time the system boots. This > would fix the /usr mount issue. This would cause failures on first boot, though. Also, no, I don't think this is too late - we mount /usr quite early in the boot sequence. From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:41:40 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0465A5ED403; Tue, 13 Apr 2021 21:41:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfFH6m88z3Ph2; Tue, 13 Apr 2021 21:41:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CFB4E12521; Tue, 13 Apr 2021 21:41:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DLfdZ1095059; Tue, 13 Apr 2021 21:41:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DLfdrc095058; Tue, 13 Apr 2021 21:41:39 GMT (envelope-from git) Date: Tue, 13 Apr 2021 21:41:39 GMT Message-Id: <202104132141.13DLfdrc095058@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dmitry Chagin Subject: git: 86887853c39b - main - Remove reference to the pfctlinput2() from domain(9) after 237c1f932b. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dchagin X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 86887853c39b0803009579e2b927bd67d524af63 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:41:40 -0000 The branch main has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=86887853c39b0803009579e2b927bd67d524af63 commit 86887853c39b0803009579e2b927bd67d524af63 Author: Dmitry Chagin AuthorDate: 2021-04-13 21:40:20 +0000 Commit: Dmitry Chagin CommitDate: 2021-04-13 21:40:20 +0000 Remove reference to the pfctlinput2() from domain(9) after 237c1f932b. Reviewed by: glebius MFC After: 1 week Differential Revision: https://reviews.freebsd.org/D29751 --- ObsoleteFiles.inc | 3 +++ share/man/man9/Makefile | 1 - share/man/man9/domain.9 | 27 +-------------------------- 3 files changed, 4 insertions(+), 27 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 39cb638129e9..5035017ade9e 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -40,6 +40,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20210413: Remove pfctlinput2 +OLD_FILES+=usr/share/man/man9/pfctlinput2.9.gz + # 20210412: Remove kernel asymmetric crypto OLD_FILES+=usr/share/man/man9/crypto_asym.9 OLD_FILES+=usr/share/man/man9/crypto_kdispatch.9 diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 1a68b1f80882..8c9906ce37b9 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1008,7 +1008,6 @@ MLINKS+=dnv.9 dnvlist.9 \ MLINKS+=domain.9 DOMAIN_SET.9 \ domain.9 domain_add.9 \ domain.9 pfctlinput.9 \ - domain.9 pfctlinput2.9 \ domain.9 pffinddomain.9 \ domain.9 pffindproto.9 \ domain.9 pffindtype.9 diff --git a/share/man/man9/domain.9 b/share/man/man9/domain.9 index d8dca08c8dab..e8f97253a1d4 100644 --- a/share/man/man9/domain.9 +++ b/share/man/man9/domain.9 @@ -26,13 +26,12 @@ .\" .\" $FreeBSD$ .\" -.Dd April 29, 2020 +.Dd April 13, 2021 .Dt DOMAIN 9 .Os .Sh NAME .Nm domain_add , .Nm pfctlinput , -.Nm pfctlinput2 , .Nm pffinddomain , .Nm pffindproto , .Nm pffindtype , @@ -47,8 +46,6 @@ .Fn domain_add "void *data" .Ft void .Fn pfctlinput "int cmd" "struct sockaddr *sa" -.Ft void -.Fn pfctlinput2 "int cmd" "struct sockaddr *sa" "void *ctlparam" .Ft struct domain * .Fn pffinddomain "int family" .Ft struct protosw * @@ -130,27 +127,6 @@ calls the protocol specific .Fn pr_ctlinput function for each protocol in that has defined one, in every domain. .Pp -.Fn pfctlinput2 -provides that same functionality of -.Fn pfctlinput , -but with a few additional checks and a new -.Vt "void *" -argument that is passed directly to the protocol's -.Fn pr_ctlinput -function. -Unlike -.Fn pfctlinput , -.Fn pfctlinput2 -verifies that -.Fa sa -is not -.Dv NULL , -and that only the protocol families that are the same as -.Fa sa -have their -.Fn pr_ctlinput -function called. -.Pp .Fn domain_add adds a new protocol domain to the system. The argument @@ -240,7 +216,6 @@ types if the domain has a default raw protocol. The functions .Fn domain_add , .Fn pfctlinput , -.Fn pfctlinput2 , .Fn pffinddomain , .Fn pffindproto , .Fn pffindtype From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:42:31 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 190A65ED1B2; Tue, 13 Apr 2021 21:42:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfGH0G7wz3PtS; Tue, 13 Apr 2021 21:42:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F08C01264C; Tue, 13 Apr 2021 21:42:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DLgUkL099077; Tue, 13 Apr 2021 21:42:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DLgUcO099076; Tue, 13 Apr 2021 21:42:30 GMT (envelope-from git) Date: Tue, 13 Apr 2021 21:42:30 GMT Message-Id: <202104132142.13DLgUcO099076@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 01028c736cbc - main - Add a KASAN option to the kernel build MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 01028c736cbcdba079967c787bee1551fc8439aa Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:42:31 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=01028c736cbcdba079967c787bee1551fc8439aa commit 01028c736cbcdba079967c787bee1551fc8439aa Author: Mark Johnston AuthorDate: 2021-04-13 20:29:47 +0000 Commit: Mark Johnston CommitDate: 2021-04-13 21:42:20 +0000 Add a KASAN option to the kernel build LLVM support for enabling KASAN has not yet landed so the option is not yet usable, but hopefully this will change soon. Reviewed by: imp, andrew MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29454 --- sys/conf/kern.pre.mk | 10 ++++++++++ sys/conf/options | 1 + 2 files changed, 11 insertions(+) diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index bb27969d6eca..539605f60ca0 100644 --- a/sys/conf/kern.pre.mk +++ b/sys/conf/kern.pre.mk @@ -92,6 +92,16 @@ CFLAGS+= -fno-common # XXX LOCORE means "don't declare C stuff" not "for locore.s". ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS} ${ASM_CFLAGS.${.IMPSRC:T}} +KASAN_ENABLED!= grep KASAN opt_global.h || true ; echo +.if !empty(KASAN_ENABLED) +SAN_CFLAGS+= -fsanitize=kernel-address \ + -mllvm -asan-stack=true \ + -mllvm -asan-instrument-dynamic-allocas=true \ + -mllvm -asan-globals=true \ + -mllvm -asan-use-after-scope=true \ + -mllvm -asan-instrumentation-with-call-threshold=0 +.endif + KCSAN_ENABLED!= grep KCSAN opt_global.h || true ; echo .if !empty(KCSAN_ENABLED) SAN_CFLAGS+= -fsanitize=thread diff --git a/sys/conf/options b/sys/conf/options index b6956193d841..882460fbf35b 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -229,6 +229,7 @@ ZSTDIO opt_zstdio.h # Sanitizers COVERAGE opt_global.h +KASAN opt_global.h KCOV KCSAN opt_global.h KUBSAN opt_global.h From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:42:32 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 453D05ED332; Tue, 13 Apr 2021 21:42:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfGJ1DBRz3Pr3; Tue, 13 Apr 2021 21:42:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1BF9D126A3; Tue, 13 Apr 2021 21:42:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DLgWlq099101; Tue, 13 Apr 2021 21:42:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DLgWXF099100; Tue, 13 Apr 2021 21:42:32 GMT (envelope-from git) Date: Tue, 13 Apr 2021 21:42:32 GMT Message-Id: <202104132142.13DLgWXF099100@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 38da497a4dfc - main - Add the KASAN runtime MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 38da497a4dfcf1979c8c2b0e9f3fa0564035c147 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:42:32 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=38da497a4dfcf1979c8c2b0e9f3fa0564035c147 commit 38da497a4dfcf1979c8c2b0e9f3fa0564035c147 Author: Mark Johnston AuthorDate: 2021-04-13 21:39:19 +0000 Commit: Mark Johnston CommitDate: 2021-04-13 21:42:20 +0000 Add the KASAN runtime KASAN enables the use of LLVM's AddressSanitizer in the kernel. This feature makes use of compiler instrumentation to validate memory accesses in the kernel and detect several types of bugs, including use-after-frees and out-of-bounds accesses. It is particularly effective when combined with test suites or syzkaller. KASAN has high CPU and memory usage overhead and so is not suited for production environments. The runtime and pmap maintain a shadow of the kernel map to store information about the validity of memory mapped at a given kernel address. The runtime implements a number of functions defined by the compiler ABI. These are prefixed by __asan. The compiler emits calls to __asan_load*() and __asan_store*() around memory accesses, and the runtime consults the shadow map to determine whether a given access is valid. kasan_mark() is called by various kernel allocators to update state in the shadow map. Updates to those allocators will come in subsequent commits. The runtime also defines various interceptors. Some low-level routines are implemented in assembly and are thus not amenable to compiler instrumentation. To handle this, the runtime implements these routines on behalf of the rest of the kernel. The sanitizer implementation validates memory accesses manually before handing off to the real implementation. The sanitizer in a KASAN-configured kernel can be disabled by setting the loader tunable debug.kasan.disable=1. Obtained from: NetBSD MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29416 --- share/man/man9/Makefile | 3 + share/man/man9/kasan.9 | 171 ++++++++ sys/conf/files | 2 + sys/kern/subr_asan.c | 1091 +++++++++++++++++++++++++++++++++++++++++++++++ sys/sys/asan.h | 68 +++ 5 files changed, 1335 insertions(+) diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 8c9906ce37b9..da68da16ddf5 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -185,6 +185,7 @@ MAN= accept_filter.9 \ insmntque.9 \ intro.9 \ ithread.9 \ + kasan.9 \ KASSERT.9 \ kern_testfrwk.9 \ kernacc.9 \ @@ -1306,6 +1307,8 @@ MLINKS+=kernel_mount.9 free_mntarg.9 \ kernel_mount.9 mount_argb.9 \ kernel_mount.9 mount_argf.9 \ kernel_mount.9 mount_argsu.9 +MLINKS+=kasan.9 KASAN.9 \ + kasan.9 kasan_mark.9 MLINKS+=khelp.9 khelp_add_hhook.9 \ khelp.9 KHELP_DECLARE_MOD.9 \ khelp.9 KHELP_DECLARE_MOD_UMA.9 \ diff --git a/share/man/man9/kasan.9 b/share/man/man9/kasan.9 new file mode 100644 index 000000000000..ecc068209913 --- /dev/null +++ b/share/man/man9/kasan.9 @@ -0,0 +1,171 @@ +.\"- +.\" Copyright (c) 2021 The FreeBSD Foundation +.\" +.\" This documentation was written by Mark Johnston under sponsorship from +.\" the FreeBSD Foundation. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd April 13, 2021 +.Dt KASAN 9 +.Os +.Sh NAME +.Nm kasan +.Nd kernel address sanitizer +.Sh SYNOPSIS +To compile KASAN into the kernel, place the following line in your kernel +configuration file: +.Bd -ragged -offset indent +.Cd "options KASAN" +.Ed +.Pp +.Ft void +.Fn kasan_mark "const void *addr" "size_t size" "size_t redzsize" "uint8_t code" +.Sh DESCRIPTION +.Nm +is a subsystem which leverages compiler instrumentation to detect invalid +memory accesses in the kernel. +Currently it is implemented only on the amd64 platform. +.Pp +When +.Nm +is compiled into the kernel, the compiler is configured to emit function +calls upon every memory access. +The functions are implemented by +.Nm +and permit run-time detection of several types of bugs including +use-after-frees, double frees and frees of invalid pointers, and out-of-bounds +accesses. +These protections apply to memory allocated by +.Xr uma 9 , +.Xr malloc 9 +and related functions, and +.Fn kmem_malloc +and related functions, +as well as global variables and kernel stacks. +.Nm +is conservative and will not detect all instances of these types of bugs. +Memory accesses through the kernel map are sanitized, but accesses via the +direct map are not. +When +.Nm +is configured, the kernel aims to minimize its use of the direct map. +.Sh IMPLEMENTATION NOTES +.Nm +is implemented using compiler instrumentation and a kernel runtime. +When a +kernel is built with the KASAN option enabled, the compiler inserts function calls +before most memory accesses in the generated code. +The runtime implements the corresponding functions, which decide whether a +given access is valid. +If not, the runtime prints a warning or panics the kernel, depending on the +value of the +.Sy debug.kasan.panic_on_violation +sysctl/tunable. +.Pp +The +.Nm +runtime works by maintaining a shadow map for the kernel map. +There exists a linear mapping between addresses in the kernel map and addresses +in the shadow map. +The shadow map is used to store information about the current state of +allocations from the kernel map. +For example, when a buffer is returned by +.Xr malloc 9 , +the corresponding region of the shadow map is marked to indicate that the +buffer is valid. +When it is freed, the shadow map is updated to mark the buffer as invalid. +Accesses to the buffer are intercepted by the +.Nm +runtime and validated using the contents of the shadow map. +.Pp +Upon booting, all kernel memory is marked as valid. +Kernel allocators must mark cached but free buffers as invalid, and must mark +them valid before freeing the kernel virtual address range. +This slightly reduces the effectiveness of +.Nm +but simplifies its maintenance and integration into the kernel. +.Pp +Updates to the shadow map are performed by calling +.Fn kasan_mark . +Parameter +.Fa addr +is the address of the buffer whose shadow is to be updated, +.Fa size +is the usable size of the buffer, and +.Fa redzsize +is the full size of the buffer allocated from lower layers of the system. +.Fa redzsize +must be greater than or equal to +.Fa size . +In some cases kernel allocators will return a buffer larger than that requested +by the consumer; the unused space at the end is referred to as a red zone and is +always marked as invalid. +.Fa code +allows the caller to specify an identifier used when marking a buffer as invalid. +The identifier is included in any reports generated by +.Nm +and helps identify the source of the invalid access. +For instance, when an item is freed to a +.Xr uma 9 +zone, the item is marked with +.Dv KASAN_UMA_FREED . +See +.In sys/asan.h +for the available identifiers. +If the entire buffer is to be marked valid, i.e., +.Fa size +and +.Fa redzsize +are equal, +.Fa code +should be 0. +.Sh SEE ALSO +.Xr malloc 9 , +.Xr memguard 9 , +.Xr redzone 9 , +.Xr uma 9 +.Sh HISTORY +.Nm +first appeared in +.Fx 14.0 . +.Sh BUGS +Accesses to kernel memory outside of the kernel map are ignored by the +.Nm +runtime. +When +.Nm +is configured, the kernel memory allocators are configured to use the kernel +map, but some uses of the direct map remain. +For example, on amd64, accesses to page table pages are not tracked. +.Pp +Some kernel memory allocators explicitly permit accesses after an object has +been freed. +These cannot be sanitized by +.Nm . +For example, memory from all +.Xr uma 9 +zones initialized with the +.Dv UMA_ZONE_NOFREE +flag are not sanitized. diff --git a/sys/conf/files b/sys/conf/files index 909002e807e5..6d7f185e79fe 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -3885,6 +3885,8 @@ kern/stack_protector.c standard \ compile-with "${NORMAL_C:N-fstack-protector*}" kern/subr_acl_nfs4.c optional ufs_acl | zfs kern/subr_acl_posix1e.c optional ufs_acl +kern/subr_asan.c optional kasan \ + compile-with "${NORMAL_C:N-fsanitize*}" kern/subr_autoconf.c standard kern/subr_blist.c standard kern/subr_boot.c standard diff --git a/sys/kern/subr_asan.c b/sys/kern/subr_asan.c new file mode 100644 index 000000000000..842370ad1e63 --- /dev/null +++ b/sys/kern/subr_asan.c @@ -0,0 +1,1091 @@ +/* $NetBSD: subr_asan.c,v 1.26 2020/09/10 14:10:46 maxv Exp $ */ + +/* + * Copyright (c) 2018-2020 Maxime Villard, m00nbsd.net + * All rights reserved. + * + * This code is part of the KASAN subsystem of the NetBSD kernel. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#define SAN_RUNTIME + +#include +__FBSDID("$FreeBSD$"); +#if 0 +__KERNEL_RCSID(0, "$NetBSD: subr_asan.c,v 1.26 2020/09/10 14:10:46 maxv Exp $"); +#endif + +#include +#include +#include +#include +#include +#include + +#include + +/* ASAN constants. Part of the compiler ABI. */ +#define KASAN_SHADOW_MASK (KASAN_SHADOW_SCALE - 1) +#define KASAN_ALLOCA_SCALE_SIZE 32 + +/* ASAN ABI version. */ +#if defined(__clang__) && (__clang_major__ - 0 >= 6) +#define ASAN_ABI_VERSION 8 +#elif __GNUC_PREREQ__(7, 1) && !defined(__clang__) +#define ASAN_ABI_VERSION 8 +#elif __GNUC_PREREQ__(6, 1) && !defined(__clang__) +#define ASAN_ABI_VERSION 6 +#else +#error "Unsupported compiler version" +#endif + +#define __RET_ADDR (unsigned long)__builtin_return_address(0) + +/* Global variable descriptor. Part of the compiler ABI. */ +struct __asan_global_source_location { + const char *filename; + int line_no; + int column_no; +}; + +struct __asan_global { + const void *beg; /* address of the global variable */ + size_t size; /* size of the global variable */ + size_t size_with_redzone; /* size with the redzone */ + const void *name; /* name of the variable */ + const void *module_name; /* name of the module where the var is declared */ + unsigned long has_dynamic_init; /* the var has dyn initializer (c++) */ + struct __asan_global_source_location *location; +#if ASAN_ABI_VERSION >= 7 + uintptr_t odr_indicator; /* the address of the ODR indicator symbol */ +#endif +}; + +FEATURE(kasan, "Kernel address sanitizer"); + +static SYSCTL_NODE(_debug, OID_AUTO, kasan, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "KASAN options"); + +static int panic_on_violation = 1; +SYSCTL_INT(_debug_kasan, OID_AUTO, panic_on_violation, CTLFLAG_RDTUN, + &panic_on_violation, 0, + "Panic if an invalid access is detected"); + +static bool kasan_enabled __read_mostly = false; + +/* -------------------------------------------------------------------------- */ + +void +kasan_shadow_map(void *addr, size_t size) +{ + size_t sz, npages, i; + vm_offset_t sva, eva; + + KASSERT((vm_offset_t)addr % KASAN_SHADOW_SCALE == 0, + ("%s: invalid address %p", __func__, addr)); + + sz = roundup(size, KASAN_SHADOW_SCALE) / KASAN_SHADOW_SCALE; + + sva = kasan_md_addr_to_shad((vm_offset_t)addr); + eva = kasan_md_addr_to_shad((vm_offset_t)addr) + sz; + + sva = rounddown(sva, PAGE_SIZE); + eva = roundup(eva, PAGE_SIZE); + + npages = (eva - sva) / PAGE_SIZE; + + KASSERT(sva >= KASAN_MIN_ADDRESS && eva < KASAN_MAX_ADDRESS, + ("%s: invalid address range %#lx-%#lx", __func__, sva, eva)); + + for (i = 0; i < npages; i++) + pmap_kasan_enter(sva + ptoa(i)); +} + +void +kasan_init(void) +{ + int disabled; + + disabled = 0; + TUNABLE_INT_FETCH("debug.kasan.disabled", &disabled); + if (disabled) + return; + + /* MD initialization. */ + kasan_md_init(); + + /* Now officially enabled. */ + kasan_enabled = true; +} + +static inline const char * +kasan_code_name(uint8_t code) +{ + switch (code) { + case KASAN_GENERIC_REDZONE: + return "GenericRedZone"; + case KASAN_MALLOC_REDZONE: + return "MallocRedZone"; + case KASAN_KMEM_REDZONE: + return "KmemRedZone"; + case KASAN_UMA_FREED: + return "UMAUseAfterFree"; + case KASAN_KSTACK_FREED: + return "KernelStack"; + case 1 ... 7: + return "RedZonePartial"; + case KASAN_STACK_LEFT: + return "StackLeft"; + case KASAN_STACK_MID: + return "StackMiddle"; + case KASAN_STACK_RIGHT: + return "StackRight"; + case KASAN_USE_AFTER_RET: + return "UseAfterRet"; + case KASAN_USE_AFTER_SCOPE: + return "UseAfterScope"; + default: + return "Unknown"; + } +} + +#define REPORT(f, ...) do { \ + if (panic_on_violation) { \ + panic(f, __VA_ARGS__); \ + } else { \ + struct stack st; \ + \ + stack_save(&st); \ + printf(f "\n", __VA_ARGS__); \ + stack_print_ddb(&st); \ + } \ +} while (0) + +static void +kasan_report(unsigned long addr, size_t size, bool write, unsigned long pc, + uint8_t code) +{ + REPORT("ASan: Invalid access, %zu-byte %s at %#lx, %s(%x)", + size, (write ? "write" : "read"), addr, kasan_code_name(code), + code); +} + +static __always_inline void +kasan_shadow_1byte_markvalid(unsigned long addr) +{ + int8_t *byte = (int8_t *)kasan_md_addr_to_shad(addr); + int8_t last = (addr & KASAN_SHADOW_MASK) + 1; + + *byte = last; +} + +static __always_inline void +kasan_shadow_Nbyte_markvalid(const void *addr, size_t size) +{ + size_t i; + + for (i = 0; i < size; i++) { + kasan_shadow_1byte_markvalid((unsigned long)addr + i); + } +} + +static __always_inline void +kasan_shadow_Nbyte_fill(const void *addr, size_t size, uint8_t code) +{ + void *shad; + + if (__predict_false(size == 0)) + return; + if (__predict_false(kasan_md_unsupported((vm_offset_t)addr))) + return; + + KASSERT((vm_offset_t)addr % KASAN_SHADOW_SCALE == 0, + ("%s: invalid address %p", __func__, addr)); + KASSERT(size % KASAN_SHADOW_SCALE == 0, + ("%s: invalid size %zu", __func__, size)); + + shad = (void *)kasan_md_addr_to_shad((uintptr_t)addr); + size = size >> KASAN_SHADOW_SCALE_SHIFT; + + __builtin_memset(shad, code, size); +} + +/* + * In an area of size 'sz_with_redz', mark the 'size' first bytes as valid, + * and the rest as invalid. There are generally two use cases: + * + * o kasan_mark(addr, origsize, size, code), with origsize < size. This marks + * the redzone at the end of the buffer as invalid. If the entire is to be + * marked invalid, origsize will be 0. + * + * o kasan_mark(addr, size, size, 0). This marks the entire buffer as valid. + */ +void +kasan_mark(const void *addr, size_t size, size_t redzsize, uint8_t code) +{ + size_t i, n, redz; + int8_t *shad; + + if ((vm_offset_t)addr >= DMAP_MIN_ADDRESS && + (vm_offset_t)addr < DMAP_MAX_ADDRESS) + return; + + KASSERT((vm_offset_t)addr >= VM_MIN_KERNEL_ADDRESS && + (vm_offset_t)addr < VM_MAX_KERNEL_ADDRESS, + ("%s: invalid address %p", __func__, addr)); + KASSERT((vm_offset_t)addr % KASAN_SHADOW_SCALE == 0, + ("%s: invalid address %p", __func__, addr)); + redz = redzsize - roundup(size, KASAN_SHADOW_SCALE); + KASSERT(redz % KASAN_SHADOW_SCALE == 0, + ("%s: invalid size %zu", __func__, redz)); + shad = (int8_t *)kasan_md_addr_to_shad((uintptr_t)addr); + + /* Chunks of 8 bytes, valid. */ + n = size / KASAN_SHADOW_SCALE; + for (i = 0; i < n; i++) { + *shad++ = 0; + } + + /* Possibly one chunk, mid. */ + if ((size & KASAN_SHADOW_MASK) != 0) { + *shad++ = (size & KASAN_SHADOW_MASK); + } + + /* Chunks of 8 bytes, invalid. */ + n = redz / KASAN_SHADOW_SCALE; + for (i = 0; i < n; i++) { + *shad++ = code; + } +} + +/* -------------------------------------------------------------------------- */ + +#define ADDR_CROSSES_SCALE_BOUNDARY(addr, size) \ + (addr >> KASAN_SHADOW_SCALE_SHIFT) != \ + ((addr + size - 1) >> KASAN_SHADOW_SCALE_SHIFT) + +static __always_inline bool +kasan_shadow_1byte_isvalid(unsigned long addr, uint8_t *code) +{ + int8_t *byte = (int8_t *)kasan_md_addr_to_shad(addr); + int8_t last = (addr & KASAN_SHADOW_MASK) + 1; + + if (__predict_true(*byte == 0 || last <= *byte)) { + return (true); + } + *code = *byte; + return (false); +} + +static __always_inline bool +kasan_shadow_2byte_isvalid(unsigned long addr, uint8_t *code) +{ + int8_t *byte, last; + + if (ADDR_CROSSES_SCALE_BOUNDARY(addr, 2)) { + return (kasan_shadow_1byte_isvalid(addr, code) && + kasan_shadow_1byte_isvalid(addr+1, code)); + } + + byte = (int8_t *)kasan_md_addr_to_shad(addr); + last = ((addr + 1) & KASAN_SHADOW_MASK) + 1; + + if (__predict_true(*byte == 0 || last <= *byte)) { + return (true); + } + *code = *byte; + return (false); +} + +static __always_inline bool +kasan_shadow_4byte_isvalid(unsigned long addr, uint8_t *code) +{ + int8_t *byte, last; + + if (ADDR_CROSSES_SCALE_BOUNDARY(addr, 4)) { + return (kasan_shadow_2byte_isvalid(addr, code) && + kasan_shadow_2byte_isvalid(addr+2, code)); + } + + byte = (int8_t *)kasan_md_addr_to_shad(addr); + last = ((addr + 3) & KASAN_SHADOW_MASK) + 1; + + if (__predict_true(*byte == 0 || last <= *byte)) { + return (true); + } + *code = *byte; + return (false); +} + +static __always_inline bool +kasan_shadow_8byte_isvalid(unsigned long addr, uint8_t *code) +{ + int8_t *byte, last; + + if (ADDR_CROSSES_SCALE_BOUNDARY(addr, 8)) { + return (kasan_shadow_4byte_isvalid(addr, code) && + kasan_shadow_4byte_isvalid(addr+4, code)); + } + + byte = (int8_t *)kasan_md_addr_to_shad(addr); + last = ((addr + 7) & KASAN_SHADOW_MASK) + 1; + + if (__predict_true(*byte == 0 || last <= *byte)) { + return (true); + } + *code = *byte; + return (false); +} + +static __always_inline bool +kasan_shadow_Nbyte_isvalid(unsigned long addr, size_t size, uint8_t *code) +{ + size_t i; + + for (i = 0; i < size; i++) { + if (!kasan_shadow_1byte_isvalid(addr+i, code)) + return (false); + } + + return (true); +} + +static __always_inline void +kasan_shadow_check(unsigned long addr, size_t size, bool write, + unsigned long retaddr) +{ + uint8_t code; + bool valid; + + if (__predict_false(!kasan_enabled)) + return; + if (__predict_false(size == 0)) + return; + if (__predict_false(kasan_md_unsupported(addr))) + return; + if (__predict_false(panicstr != NULL)) + return; + + if (__builtin_constant_p(size)) { + switch (size) { + case 1: + valid = kasan_shadow_1byte_isvalid(addr, &code); + break; + case 2: + valid = kasan_shadow_2byte_isvalid(addr, &code); + break; + case 4: + valid = kasan_shadow_4byte_isvalid(addr, &code); + break; + case 8: + valid = kasan_shadow_8byte_isvalid(addr, &code); + break; + default: + valid = kasan_shadow_Nbyte_isvalid(addr, size, &code); + break; + } + } else { + valid = kasan_shadow_Nbyte_isvalid(addr, size, &code); + } + + if (__predict_false(!valid)) { + kasan_report(addr, size, write, retaddr, code); + } +} + +/* -------------------------------------------------------------------------- */ + +void * +kasan_memcpy(void *dst, const void *src, size_t len) +{ + kasan_shadow_check((unsigned long)src, len, false, __RET_ADDR); + kasan_shadow_check((unsigned long)dst, len, true, __RET_ADDR); + return (__builtin_memcpy(dst, src, len)); +} + +int +kasan_memcmp(const void *b1, const void *b2, size_t len) +{ + kasan_shadow_check((unsigned long)b1, len, false, __RET_ADDR); + kasan_shadow_check((unsigned long)b2, len, false, __RET_ADDR); + return (__builtin_memcmp(b1, b2, len)); +} + +void * +kasan_memset(void *b, int c, size_t len) +{ + kasan_shadow_check((unsigned long)b, len, true, __RET_ADDR); + return (__builtin_memset(b, c, len)); +} + +void * +kasan_memmove(void *dst, const void *src, size_t len) +{ + kasan_shadow_check((unsigned long)src, len, false, __RET_ADDR); + kasan_shadow_check((unsigned long)dst, len, true, __RET_ADDR); + return (__builtin_memmove(dst, src, len)); +} + +size_t +kasan_strlen(const char *str) +{ + const char *s; + + s = str; + while (1) { + kasan_shadow_check((unsigned long)s, 1, false, __RET_ADDR); + if (*s == '\0') + break; + s++; + } + + return (s - str); +} + +char * +kasan_strcpy(char *dst, const char *src) +{ + char *save = dst; + + while (1) { + kasan_shadow_check((unsigned long)src, 1, false, __RET_ADDR); + kasan_shadow_check((unsigned long)dst, 1, true, __RET_ADDR); + *dst = *src; + if (*src == '\0') + break; + src++, dst++; + } + + return save; +} + +int +kasan_strcmp(const char *s1, const char *s2) +{ + while (1) { + kasan_shadow_check((unsigned long)s1, 1, false, __RET_ADDR); + kasan_shadow_check((unsigned long)s2, 1, false, __RET_ADDR); + if (*s1 != *s2) + break; + if (*s1 == '\0') + return 0; + s1++, s2++; + } + + return (*(const unsigned char *)s1 - *(const unsigned char *)s2); +} + +int +kasan_copyin(const void *uaddr, void *kaddr, size_t len) +{ + kasan_shadow_check((unsigned long)kaddr, len, true, __RET_ADDR); + return (copyin(uaddr, kaddr, len)); +} + +int +kasan_copyinstr(const void *uaddr, void *kaddr, size_t len, size_t *done) +{ + kasan_shadow_check((unsigned long)kaddr, len, true, __RET_ADDR); + return (copyinstr(uaddr, kaddr, len, done)); +} + +int +kasan_copyout(const void *kaddr, void *uaddr, size_t len) +{ + kasan_shadow_check((unsigned long)kaddr, len, false, __RET_ADDR); + return (copyout(kaddr, uaddr, len)); +} + +/* -------------------------------------------------------------------------- */ + +#include +#define ATOMIC_SAN_PREFIX kasan +#include + +#define _ASAN_ATOMIC_FUNC_ADD(name, type) \ + void kasan_atomic_add_##name(volatile type *ptr, type val) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + atomic_add_##name(ptr, val); \ + } + +#define ASAN_ATOMIC_FUNC_ADD(name, type) \ + _ASAN_ATOMIC_FUNC_ADD(name, type) \ + _ASAN_ATOMIC_FUNC_ADD(acq_##name, type) \ + _ASAN_ATOMIC_FUNC_ADD(rel_##name, type) + +#define _ASAN_ATOMIC_FUNC_SUBTRACT(name, type) \ + void kasan_atomic_subtract_##name(volatile type *ptr, type val) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + atomic_subtract_##name(ptr, val); \ + } + +#define ASAN_ATOMIC_FUNC_SUBTRACT(name, type) \ + _ASAN_ATOMIC_FUNC_SUBTRACT(name, type) \ + _ASAN_ATOMIC_FUNC_SUBTRACT(acq_##name, type) \ + _ASAN_ATOMIC_FUNC_SUBTRACT(rel_##name, type) + +#define _ASAN_ATOMIC_FUNC_SET(name, type) \ + void kasan_atomic_set_##name(volatile type *ptr, type val) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + atomic_set_##name(ptr, val); \ + } + +#define ASAN_ATOMIC_FUNC_SET(name, type) \ + _ASAN_ATOMIC_FUNC_SET(name, type) \ + _ASAN_ATOMIC_FUNC_SET(acq_##name, type) \ + _ASAN_ATOMIC_FUNC_SET(rel_##name, type) + +#define _ASAN_ATOMIC_FUNC_CLEAR(name, type) \ + void kasan_atomic_clear_##name(volatile type *ptr, type val) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + atomic_clear_##name(ptr, val); \ + } + +#define ASAN_ATOMIC_FUNC_CLEAR(name, type) \ + _ASAN_ATOMIC_FUNC_CLEAR(name, type) \ + _ASAN_ATOMIC_FUNC_CLEAR(acq_##name, type) \ + _ASAN_ATOMIC_FUNC_CLEAR(rel_##name, type) + +#define ASAN_ATOMIC_FUNC_FETCHADD(name, type) \ + type kasan_atomic_fetchadd_##name(volatile type *ptr, type val) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + return (atomic_fetchadd_##name(ptr, val)); \ + } + +#define ASAN_ATOMIC_FUNC_READANDCLEAR(name, type) \ + type kasan_atomic_readandclear_##name(volatile type *ptr) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + return (atomic_readandclear_##name(ptr)); \ + } + +#define ASAN_ATOMIC_FUNC_TESTANDCLEAR(name, type) \ + int kasan_atomic_testandclear_##name(volatile type *ptr, u_int v) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + return (atomic_testandclear_##name(ptr, v)); \ + } + +#define ASAN_ATOMIC_FUNC_TESTANDSET(name, type) \ + int kasan_atomic_testandset_##name(volatile type *ptr, u_int v) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + return (atomic_testandset_##name(ptr, v)); \ + } + +#define ASAN_ATOMIC_FUNC_SWAP(name, type) \ + type kasan_atomic_swap_##name(volatile type *ptr, type val) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + return (atomic_swap_##name(ptr, val)); \ + } + +#define _ASAN_ATOMIC_FUNC_CMPSET(name, type) \ + int kasan_atomic_cmpset_##name(volatile type *ptr, type oval, \ + type nval) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + return (atomic_cmpset_##name(ptr, oval, nval)); \ + } + +#define ASAN_ATOMIC_FUNC_CMPSET(name, type) \ + _ASAN_ATOMIC_FUNC_CMPSET(name, type) \ + _ASAN_ATOMIC_FUNC_CMPSET(acq_##name, type) \ + _ASAN_ATOMIC_FUNC_CMPSET(rel_##name, type) + +#define _ASAN_ATOMIC_FUNC_FCMPSET(name, type) \ + int kasan_atomic_fcmpset_##name(volatile type *ptr, type *oval, \ + type nval) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + return (atomic_fcmpset_##name(ptr, oval, nval)); \ + } + +#define ASAN_ATOMIC_FUNC_FCMPSET(name, type) \ + _ASAN_ATOMIC_FUNC_FCMPSET(name, type) \ + _ASAN_ATOMIC_FUNC_FCMPSET(acq_##name, type) \ + _ASAN_ATOMIC_FUNC_FCMPSET(rel_##name, type) + +#define ASAN_ATOMIC_FUNC_THREAD_FENCE(name) \ + void kasan_atomic_thread_fence_##name(void) \ + { \ + atomic_thread_fence_##name(); \ + } + +#define _ASAN_ATOMIC_FUNC_LOAD(name, type) \ + type kasan_atomic_load_##name(volatile type *ptr) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + return (atomic_load_##name(ptr)); \ + } + +#define ASAN_ATOMIC_FUNC_LOAD(name, type) \ + _ASAN_ATOMIC_FUNC_LOAD(name, type) \ + _ASAN_ATOMIC_FUNC_LOAD(acq_##name, type) + +#define _ASAN_ATOMIC_FUNC_STORE(name, type) \ + void kasan_atomic_store_##name(volatile type *ptr, type val) \ + { \ + kasan_shadow_check((uintptr_t)ptr, sizeof(type), true, \ + __RET_ADDR); \ + atomic_store_##name(ptr, val); \ + } + +#define ASAN_ATOMIC_FUNC_STORE(name, type) \ + _ASAN_ATOMIC_FUNC_STORE(name, type) \ + _ASAN_ATOMIC_FUNC_STORE(rel_##name, type) + +ASAN_ATOMIC_FUNC_ADD(8, uint8_t); +ASAN_ATOMIC_FUNC_ADD(16, uint16_t); +ASAN_ATOMIC_FUNC_ADD(32, uint32_t); +ASAN_ATOMIC_FUNC_ADD(64, uint64_t); +ASAN_ATOMIC_FUNC_ADD(int, u_int); +ASAN_ATOMIC_FUNC_ADD(long, u_long); +ASAN_ATOMIC_FUNC_ADD(ptr, uintptr_t); + +ASAN_ATOMIC_FUNC_SUBTRACT(8, uint8_t); +ASAN_ATOMIC_FUNC_SUBTRACT(16, uint16_t); +ASAN_ATOMIC_FUNC_SUBTRACT(32, uint32_t); +ASAN_ATOMIC_FUNC_SUBTRACT(64, uint64_t); +ASAN_ATOMIC_FUNC_SUBTRACT(int, u_int); +ASAN_ATOMIC_FUNC_SUBTRACT(long, u_long); +ASAN_ATOMIC_FUNC_SUBTRACT(ptr, uintptr_t); + +ASAN_ATOMIC_FUNC_SET(8, uint8_t); +ASAN_ATOMIC_FUNC_SET(16, uint16_t); +ASAN_ATOMIC_FUNC_SET(32, uint32_t); +ASAN_ATOMIC_FUNC_SET(64, uint64_t); +ASAN_ATOMIC_FUNC_SET(int, u_int); +ASAN_ATOMIC_FUNC_SET(long, u_long); +ASAN_ATOMIC_FUNC_SET(ptr, uintptr_t); + +ASAN_ATOMIC_FUNC_CLEAR(8, uint8_t); +ASAN_ATOMIC_FUNC_CLEAR(16, uint16_t); +ASAN_ATOMIC_FUNC_CLEAR(32, uint32_t); +ASAN_ATOMIC_FUNC_CLEAR(64, uint64_t); +ASAN_ATOMIC_FUNC_CLEAR(int, u_int); +ASAN_ATOMIC_FUNC_CLEAR(long, u_long); +ASAN_ATOMIC_FUNC_CLEAR(ptr, uintptr_t); + +ASAN_ATOMIC_FUNC_FETCHADD(32, uint32_t); +ASAN_ATOMIC_FUNC_FETCHADD(64, uint64_t); +ASAN_ATOMIC_FUNC_FETCHADD(int, u_int); +ASAN_ATOMIC_FUNC_FETCHADD(long, u_long); + +ASAN_ATOMIC_FUNC_READANDCLEAR(32, uint32_t); +ASAN_ATOMIC_FUNC_READANDCLEAR(64, uint64_t); *** 451 LINES SKIPPED *** From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:42:33 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E98DC5ED4C8; Tue, 13 Apr 2021 21:42:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfGK2f8Dz3Pbq; Tue, 13 Apr 2021 21:42:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 36177122D7; Tue, 13 Apr 2021 21:42:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DLgX82099122; Tue, 13 Apr 2021 21:42:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DLgXvp099121; Tue, 13 Apr 2021 21:42:33 GMT (envelope-from git) Date: Tue, 13 Apr 2021 21:42:33 GMT Message-Id: <202104132142.13DLgXvp099121@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 6faf45b34b14 - main - amd64: Implement a KASAN shadow map MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6faf45b34b14da5f138774b43ec14fb5567ac584 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:42:34 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=6faf45b34b14da5f138774b43ec14fb5567ac584 commit 6faf45b34b14da5f138774b43ec14fb5567ac584 Author: Mark Johnston AuthorDate: 2021-04-13 20:30:05 +0000 Commit: Mark Johnston CommitDate: 2021-04-13 21:42:20 +0000 amd64: Implement a KASAN shadow map The idea behind KASAN is to use a region of memory to track the validity of buffers in the kernel map. This region is the shadow map. The compiler inserts calls to the KASAN runtime for every emitted load and store, and the runtime uses the shadow map to decide whether the access is valid. Various kernel allocators call kasan_mark() to update the shadow map. Since the shadow map tracks only accesses to the kernel map, accesses to other kernel maps are not validated by KASAN. UMA_MD_SMALL_ALLOC is disabled when KASAN is configured to reduce usage of the direct map. Currently we have no mechanism to completely eliminate uses of the direct map, so KASAN's coverage is not comprehensive. The shadow map uses one byte per eight bytes in the kernel map. In pmap_bootstrap() we create an initial set of page tables for the kernel and preloaded data. When pmap_growkernel() is called, we call kasan_shadow_map() to extend the shadow map. kasan_shadow_map() uses pmap_kasan_enter() to allocate memory for the shadow region and map it. Reviewed by: kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29417 --- sys/amd64/amd64/pmap.c | 142 +++++++++++++++++++++++++++++++++++++++++++- sys/amd64/include/asan.h | 71 ++++++++++++++++++++++ sys/amd64/include/pmap.h | 15 ++++- sys/amd64/include/vmparam.h | 8 ++- sys/kern/kern_malloc.c | 10 ++++ sys/kern/vfs_bio.c | 10 ++++ 6 files changed, 252 insertions(+), 4 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index aa8810e05b63..77c486c0d00a 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -112,6 +112,7 @@ __FBSDID("$FreeBSD$"); #include "opt_vm.h" #include +#include #include #include #include @@ -154,6 +155,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -425,6 +427,10 @@ u_int64_t KPML4phys; /* phys addr of kernel level 4 */ u_int64_t KPML5phys; /* phys addr of kernel level 5, if supported */ +#ifdef KASAN +static uint64_t KASANPDPphys; +#endif + static pml4_entry_t *kernel_pml4; static u_int64_t DMPDphys; /* phys addr of direct mapped level 2 */ static u_int64_t DMPDPphys; /* phys addr of direct mapped level 3 */ @@ -1626,11 +1632,17 @@ bootaddr_rwx(vm_paddr_t pa) static void create_pagetables(vm_paddr_t *firstaddr) { - int i, j, ndm1g, nkpdpe, nkdmpde; pd_entry_t *pd_p; pdp_entry_t *pdp_p; pml4_entry_t *p4_p; uint64_t DMPDkernphys; +#ifdef KASAN + pt_entry_t *pt_p; + uint64_t KASANPDphys, KASANPTphys, KASANphys; + vm_offset_t kasankernbase; + int kasankpdpi, kasankpdi, nkasanpte; +#endif + int i, j, ndm1g, nkpdpe, nkdmpde; /* Allocate page table pages for the direct map */ ndmpdp = howmany(ptoa(Maxmem), NBPDP); @@ -1670,6 +1682,10 @@ create_pagetables(vm_paddr_t *firstaddr) /* Allocate pages */ KPML4phys = allocpages(firstaddr, 1); KPDPphys = allocpages(firstaddr, NKPML4E); +#ifdef KASAN + KASANPDPphys = allocpages(firstaddr, NKASANPML4E); + KASANPDphys = allocpages(firstaddr, 1); +#endif /* * Allocate the initial number of kernel page table pages required to @@ -1687,6 +1703,12 @@ create_pagetables(vm_paddr_t *firstaddr) KPTphys = allocpages(firstaddr, nkpt); KPDphys = allocpages(firstaddr, nkpdpe); +#ifdef KASAN + nkasanpte = howmany(nkpt, KASAN_SHADOW_SCALE); + KASANPTphys = allocpages(firstaddr, nkasanpte); + KASANphys = allocpages(firstaddr, nkasanpte * NPTEPG); +#endif + /* * Connect the zero-filled PT pages to their PD entries. This * implicitly maps the PT pages at their correct locations within @@ -1719,6 +1741,25 @@ create_pagetables(vm_paddr_t *firstaddr) for (i = 0; i < nkpdpe; i++) pdp_p[i + KPDPI] = (KPDphys + ptoa(i)) | X86_PG_RW | X86_PG_V; +#ifdef KASAN + kasankernbase = kasan_md_addr_to_shad(KERNBASE); + kasankpdpi = pmap_pdpe_index(kasankernbase); + kasankpdi = pmap_pde_index(kasankernbase); + + pdp_p = (pdp_entry_t *)KASANPDPphys; + pdp_p[kasankpdpi] = (KASANPDphys | X86_PG_RW | X86_PG_V | pg_nx); + + pd_p = (pd_entry_t *)KASANPDphys; + for (i = 0; i < nkasanpte; i++) + pd_p[i + kasankpdi] = (KASANPTphys + ptoa(i)) | X86_PG_RW | + X86_PG_V | pg_nx; + + pt_p = (pt_entry_t *)KASANPTphys; + for (i = 0; i < nkasanpte * NPTEPG; i++) + pt_p[i] = (KASANphys + ptoa(i)) | X86_PG_RW | X86_PG_V | + X86_PG_M | X86_PG_A | pg_nx; +#endif + /* * Now, set up the direct map region using 2MB and/or 1GB pages. If * the end of physical memory is not aligned to a 1GB page boundary, @@ -1767,7 +1808,15 @@ create_pagetables(vm_paddr_t *firstaddr) p4_p[PML4PML4I] = KPML4phys; p4_p[PML4PML4I] |= X86_PG_RW | X86_PG_V | pg_nx; - /* Connect the Direct Map slot(s) up to the PML4. */ +#ifdef KASAN + /* Connect the KASAN shadow map slots up to the PML4. */ + for (i = 0; i < NKASANPML4E; i++) { + p4_p[KASANPML4I + i] = KASANPDPphys + ptoa(i); + p4_p[KASANPML4I + i] |= X86_PG_RW | X86_PG_V | pg_nx; + } +#endif + + /* Connect the Direct Map slots up to the PML4. */ for (i = 0; i < ndmpdpphys; i++) { p4_p[DMPML4I + i] = DMPDPphys + ptoa(i); p4_p[DMPML4I + i] |= X86_PG_RW | X86_PG_V | pg_nx; @@ -4131,6 +4180,12 @@ pmap_pinit_pml4(vm_page_t pml4pg) pm_pml4[KPML4BASE + i] = (KPDPphys + ptoa(i)) | X86_PG_RW | X86_PG_V; } +#ifdef KASAN + for (i = 0; i < NKASANPML4E; i++) { + pm_pml4[KASANPML4I + i] = (KASANPDPphys + ptoa(i)) | X86_PG_RW | + X86_PG_V | pg_nx; + } +#endif for (i = 0; i < ndmpdpphys; i++) { pm_pml4[DMPML4I + i] = (DMPDPphys + ptoa(i)) | X86_PG_RW | X86_PG_V; @@ -4713,6 +4768,10 @@ pmap_release(pmap_t pmap) } else { for (i = 0; i < NKPML4E; i++) /* KVA */ pmap->pm_pmltop[KPML4BASE + i] = 0; +#ifdef KASAN + for (i = 0; i < NKASANPML4E; i++) /* KASAN shadow map */ + pmap->pm_pmltop[KASANPML4I + i] = 0; +#endif for (i = 0; i < ndmpdpphys; i++)/* Direct Map */ pmap->pm_pmltop[DMPML4I + i] = 0; pmap->pm_pmltop[PML4PML4I] = 0; /* Recursive Mapping */ @@ -4830,6 +4889,8 @@ pmap_growkernel(vm_offset_t addr) addr = roundup2(addr, NBPDR); if (addr - 1 >= vm_map_max(kernel_map)) addr = vm_map_max(kernel_map); + if (kernel_vm_end < addr) + kasan_shadow_map((void *)kernel_vm_end, addr - kernel_vm_end); while (kernel_vm_end < addr) { pdpe = pmap_pdpe(kernel_pmap, kernel_vm_end); if ((*pdpe & X86_PG_V) == 0) { @@ -11190,6 +11251,78 @@ pmap_pkru_clear(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) return (error); } +#ifdef KASAN +static vm_page_t +pmap_kasan_enter_alloc_4k(void) +{ + vm_page_t m; + + m = vm_page_alloc(NULL, 0, VM_ALLOC_INTERRUPT | VM_ALLOC_NOOBJ | + VM_ALLOC_WIRED | VM_ALLOC_ZERO); + if (m == NULL) + panic("%s: no memory to grow shadow map", __func__); + if ((m->flags & PG_ZERO) == 0) + pmap_zero_page(m); + return (m); +} + +static vm_page_t +pmap_kasan_enter_alloc_2m(void) +{ + vm_page_t m; + + m = vm_page_alloc_contig(NULL, 0, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ | + VM_ALLOC_WIRED, NPTEPG, 0, ~0ul, NBPDR, 0, VM_MEMATTR_DEFAULT); + if (m != NULL) + memset((void *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), 0, NBPDR); + return (m); +} + +/* + * Grow the shadow map by at least one 4KB page at the specified address. Use + * 2MB pages when possible. + */ +void +pmap_kasan_enter(vm_offset_t va) +{ + pdp_entry_t *pdpe; + pd_entry_t *pde; + pt_entry_t *pte; + vm_page_t m; + + mtx_assert(&kernel_map->system_mtx, MA_OWNED); + + pdpe = pmap_pdpe(kernel_pmap, va); + if ((*pdpe & X86_PG_V) == 0) { + m = pmap_kasan_enter_alloc_4k(); + *pdpe = (pdp_entry_t)(VM_PAGE_TO_PHYS(m) | X86_PG_RW | + X86_PG_V | pg_nx); + } + pde = pmap_pdpe_to_pde(pdpe, va); + if ((*pde & X86_PG_V) == 0) { + m = pmap_kasan_enter_alloc_2m(); + if (m != NULL) { + *pde = (pd_entry_t)(VM_PAGE_TO_PHYS(m) | X86_PG_RW | + X86_PG_PS | X86_PG_V | pg_nx); + } else { + m = pmap_kasan_enter_alloc_4k(); + *pde = (pd_entry_t)(VM_PAGE_TO_PHYS(m) | X86_PG_RW | + X86_PG_V | pg_nx); + } + } + if ((*pde & X86_PG_PS) != 0) + return; + pte = pmap_pde_to_pte(pde, va); + if ((*pte & X86_PG_V) != 0) + return; + KASSERT((*pte & X86_PG_V) == 0, + ("%s: shadow address %#lx is already mapped", __func__, va)); + m = pmap_kasan_enter_alloc_4k(); + *pte = (pt_entry_t)(VM_PAGE_TO_PHYS(m) | X86_PG_RW | X86_PG_V | + X86_PG_M | X86_PG_A | pg_nx); +} +#endif + /* * Track a range of the kernel's virtual address space that is contiguous * in various mapping attributes. @@ -11367,6 +11500,11 @@ sysctl_kmaps(SYSCTL_HANDLER_ARGS) case DMPML4I: sbuf_printf(sb, "\nDirect map:\n"); break; +#ifdef KASAN + case KASANPML4I: + sbuf_printf(sb, "\nKASAN shadow map:\n"); + break; +#endif case KPML4BASE: sbuf_printf(sb, "\nKernel map:\n"); break; diff --git a/sys/amd64/include/asan.h b/sys/amd64/include/asan.h new file mode 100644 index 000000000000..03d57673d05e --- /dev/null +++ b/sys/amd64/include/asan.h @@ -0,0 +1,71 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2020 The FreeBSD Foundation + * + * This software was developed by Mark Johnston 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. + */ + +#ifndef _MACHINE_ASAN_H_ +#define _MACHINE_ASAN_H_ + +#ifdef KASAN + +#include +#include +#include +#include + +static inline vm_offset_t +kasan_md_addr_to_shad(vm_offset_t addr) +{ + return (((addr - VM_MIN_KERNEL_ADDRESS) >> KASAN_SHADOW_SCALE_SHIFT) + + KASAN_MIN_ADDRESS); +} + +static inline bool +kasan_md_unsupported(vm_offset_t addr) +{ + vm_offset_t kernmin; + + /* + * The vm_page array is mapped at the beginning of the kernel map, but + * accesses to the array are not validated for now. Handle the fact + * that KASAN must validate accesses before the vm_page array is + * initialized. + */ + kernmin = vm_page_array == NULL ? VM_MIN_KERNEL_ADDRESS : + (vm_offset_t)(vm_page_array + vm_page_array_size); + return (addr < kernmin || addr >= VM_MAX_KERNEL_ADDRESS); +} + +static inline void +kasan_md_init(void) +{ +} + +#endif /* KASAN */ + +#endif /* !_MACHINE_ASAN_H_ */ diff --git a/sys/amd64/include/pmap.h b/sys/amd64/include/pmap.h index 8ba654cb2e7c..1704ecf903e9 100644 --- a/sys/amd64/include/pmap.h +++ b/sys/amd64/include/pmap.h @@ -195,6 +195,12 @@ */ #define NKPML4E 4 +/* + * Number of PML4 slots for the KASAN shadow map. It requires 1 byte of memory + * for every 8 bytes of the kernel address space. + */ +#define NKASANPML4E ((NKPML4E + 7) / 8) + /* * We use the same numbering of the page table pages for 5-level and * 4-level paging structures. @@ -243,9 +249,11 @@ #define KPML4I (NPML4EPG-1) #define KPDPI (NPDPEPG-2) /* kernbase at -2GB */ +#define KASANPML4I (DMPML4I - NKASANPML4E) /* Below the direct map */ + /* Large map: index of the first and max last pml4 entry */ #define LMSPML4I (PML4PML4I + 1) -#define LMEPML4I (DMPML4I - 1) +#define LMEPML4I (KASANPML4I - 1) /* * XXX doesn't really belong here I guess... @@ -501,6 +509,11 @@ int pmap_pkru_set(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, void pmap_thread_init_invl_gen(struct thread *td); int pmap_vmspace_copy(pmap_t dst_pmap, pmap_t src_pmap); void pmap_page_array_startup(long count); + +#ifdef KASAN +void pmap_kasan_enter(vm_offset_t); +#endif + #endif /* _KERNEL */ /* Return various clipped indexes for a given VA */ diff --git a/sys/amd64/include/vmparam.h b/sys/amd64/include/vmparam.h index c7ffb218dd4a..6dd76063bf3f 100644 --- a/sys/amd64/include/vmparam.h +++ b/sys/amd64/include/vmparam.h @@ -75,7 +75,9 @@ * of the direct mapped segment. This uses 2MB pages for reduced * TLB pressure. */ +#ifndef KASAN #define UMA_MD_SMALL_ALLOC +#endif /* * The physical address space is densely populated. @@ -165,7 +167,8 @@ * 0xffff800000000000 - 0xffff804020100fff recursive page table (512GB slot) * 0xffff804020100fff - 0xffff807fffffffff unused * 0xffff808000000000 - 0xffff847fffffffff large map (can be tuned up) - * 0xffff848000000000 - 0xfffff7ffffffffff unused (large map extends there) + * 0xffff848000000000 - 0xfffff77fffffffff unused (large map extends there) + * 0xfffff78000000000 - 0xfffff7ffffffffff 512GB KASAN shadow map * 0xfffff80000000000 - 0xfffffbffffffffff 4TB direct map * 0xfffffc0000000000 - 0xfffffdffffffffff unused * 0xfffffe0000000000 - 0xffffffffffffffff 2TB kernel map @@ -183,6 +186,9 @@ #define DMAP_MIN_ADDRESS KV4ADDR(DMPML4I, 0, 0, 0) #define DMAP_MAX_ADDRESS KV4ADDR(DMPML4I + NDMPML4E, 0, 0, 0) +#define KASAN_MIN_ADDRESS KV4ADDR(KASANPML4I, 0, 0, 0) +#define KASAN_MAX_ADDRESS KV4ADDR(KASANPML4I + NKASANPML4E, 0, 0, 0) + #define LARGEMAP_MIN_ADDRESS KV4ADDR(LMSPML4I, 0, 0, 0) #define LARGEMAP_MAX_ADDRESS KV4ADDR(LMEPML4I + 1, 0, 0, 0) diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index 0d6f9dcfcab7..7aa9bf79180c 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -1151,6 +1151,16 @@ kmeminit(void) vm_kmem_size = 2 * mem_size * PAGE_SIZE; vm_kmem_size = round_page(vm_kmem_size); + +#ifdef KASAN + /* + * With KASAN enabled, dynamically allocated kernel memory is shadowed. + * Account for this when setting the UMA limit. + */ + vm_kmem_size = (vm_kmem_size * KASAN_SHADOW_SCALE) / + (KASAN_SHADOW_SCALE + 1); +#endif + #ifdef DEBUG_MEMGUARD tmp = memguard_fudge(vm_kmem_size, kernel_map); #else diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index 8e8cf3f083d4..859ce3b58285 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -1043,6 +1044,15 @@ kern_vfs_bio_buffer_alloc(caddr_t v, long physmem_est) int tuned_nbuf; long maxbuf, maxbuf_sz, buf_sz, biotmap_sz; +#ifdef KASAN + /* + * With KASAN enabled, the kernel map is shadowed. Account for this + * when sizing maps based on the amount of physical memory available. + */ + physmem_est = (physmem_est * KASAN_SHADOW_SCALE) / + (KASAN_SHADOW_SCALE + 1); +#endif + /* * physmem_est is in pages. Convert it to kilobytes (assumes * PAGE_SIZE is >= 1K) From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:42:34 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8E3BC5ED4C9; Tue, 13 Apr 2021 21:42:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfGL3H3tz3PWS; Tue, 13 Apr 2021 21:42:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 59DF511D77; Tue, 13 Apr 2021 21:42:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DLgYJW099143; Tue, 13 Apr 2021 21:42:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DLgYxC099142; Tue, 13 Apr 2021 21:42:34 GMT (envelope-from git) Date: Tue, 13 Apr 2021 21:42:34 GMT Message-Id: <202104132142.13DLgYxC099142@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: f115c0612131 - main - amd64: Add MD bits for KASAN MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f115c0612131d8f939f6f357f57bdd85bd6a59de Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:42:34 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=f115c0612131d8f939f6f357f57bdd85bd6a59de commit f115c0612131d8f939f6f357f57bdd85bd6a59de Author: Mark Johnston AuthorDate: 2021-04-13 21:39:35 +0000 Commit: Mark Johnston CommitDate: 2021-04-13 21:42:20 +0000 amd64: Add MD bits for KASAN - Initialize KASAN before executing SYSINITs. - Add a GENERIC-KASAN kernel config, akin to GENERIC-KCSAN. - Increase the kernel stack size if KASAN is enabled. Some of the ASAN instrumentation increases stack usage and it's enough to trigger stack overflows in ZFS. - Mark the trapframe as valid in interrupt handlers if it is assigned to td_intr_frame. Otherwise, an interrupt in a function which creates a poisoned alloca region can trigger false positives. MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29455 --- sys/amd64/amd64/machdep.c | 3 +++ sys/amd64/conf/GENERIC-KASAN | 7 +++++++ sys/amd64/include/param.h | 4 ++++ sys/x86/isa/atpic.c | 4 ++++ sys/x86/x86/local_apic.c | 7 +++++++ 5 files changed, 25 insertions(+) diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index 362ea6eea825..0951f3f71a0a 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1916,6 +1917,8 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) #endif thread0.td_critnest = 0; + kasan_init(); + TSEXIT(); /* Location of kernel stack for locore */ diff --git a/sys/amd64/conf/GENERIC-KASAN b/sys/amd64/conf/GENERIC-KASAN new file mode 100644 index 000000000000..8d5703141e86 --- /dev/null +++ b/sys/amd64/conf/GENERIC-KASAN @@ -0,0 +1,7 @@ +# $FreeBSD$ + +include GENERIC + +ident GENERIC-KASAN + +options KASAN diff --git a/sys/amd64/include/param.h b/sys/amd64/include/param.h index 93ee524e1de2..cf1d2bd0a586 100644 --- a/sys/amd64/include/param.h +++ b/sys/amd64/include/param.h @@ -134,8 +134,12 @@ #define IOPERM_BITMAP_SIZE (IOPAGES * PAGE_SIZE + 1) #ifndef KSTACK_PAGES +#ifdef KASAN +#define KSTACK_PAGES 6 +#else #define KSTACK_PAGES 4 /* pages of kstack (with pcb) */ #endif +#endif #define KSTACK_GUARD_PAGES 1 /* pages of kstack guard; 0 disables */ /* diff --git a/sys/x86/isa/atpic.c b/sys/x86/isa/atpic.c index 07d63b041d0b..28c10ee7009f 100644 --- a/sys/x86/isa/atpic.c +++ b/sys/x86/isa/atpic.c @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -522,6 +523,9 @@ atpic_handle_intr(u_int vector, struct trapframe *frame) { struct intsrc *isrc; + /* The frame may have been written into a poisoned region. */ + kasan_mark(frame, sizeof(*frame), sizeof(*frame), 0); + KASSERT(vector < NUM_ISA_IRQS, ("unknown int %u\n", vector)); isrc = &atintrs[vector].at_intsrc; diff --git a/sys/x86/x86/local_apic.c b/sys/x86/x86/local_apic.c index 65ea602c0101..85c3cfb69277 100644 --- a/sys/x86/x86/local_apic.c +++ b/sys/x86/x86/local_apic.c @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -1299,6 +1300,9 @@ lapic_handle_intr(int vector, struct trapframe *frame) { struct intsrc *isrc; + /* The frame may have been written into a poisoned region. */ + kasan_mark(frame, sizeof(*frame), sizeof(*frame), 0); + isrc = intr_lookup_source(apic_idt_to_irq(PCPU_GET(apic_id), vector)); intr_execute_handlers(isrc, frame); @@ -1314,6 +1318,9 @@ lapic_handle_timer(struct trapframe *frame) /* Send EOI first thing. */ lapic_eoi(); + /* The frame may have been written into a poisoned region. */ + kasan_mark(frame, sizeof(*frame), sizeof(*frame), 0); + #if defined(SMP) && !defined(SCHED_ULE) /* * Don't do any accounting for the disabled HTT cores, since it From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:42:36 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4A3305ED542; Tue, 13 Apr 2021 21:42:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfGN0c7wz3PrJ; Tue, 13 Apr 2021 21:42:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 846BB122D8; Tue, 13 Apr 2021 21:42:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DLgZXZ099164; Tue, 13 Apr 2021 21:42:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DLgZPi099163; Tue, 13 Apr 2021 21:42:35 GMT (envelope-from git) Date: Tue, 13 Apr 2021 21:42:35 GMT Message-Id: <202104132142.13DLgZPi099163@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 09c8cb717d21 - main - uma: Add KASAN state transitions MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 09c8cb717d214d03e51b3e4f8e9997b9f4e1624d Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:42:36 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=09c8cb717d214d03e51b3e4f8e9997b9f4e1624d commit 09c8cb717d214d03e51b3e4f8e9997b9f4e1624d Author: Mark Johnston AuthorDate: 2021-04-13 21:39:50 +0000 Commit: Mark Johnston CommitDate: 2021-04-13 21:42:21 +0000 uma: Add KASAN state transitions - Add a UMA_ZONE_NOKASAN flag to indicate that items from a particular zone should not be sanitized. This is applied implicitly for NOFREE and cache zones. - Add KASAN call backs which get invoked: 1) when a slab is imported into a keg 2) when an item is allocated from a zone 3) when an item is freed to a zone 4) when a slab is freed back to the VM In state transitions 1 and 3, memory is poisoned so that accesses will trigger a panic. In state transitions 2 and 4, memory is marked valid. - Disable trashing if KASAN is enabled. It just adds extra CPU overhead to catch problems that are detected by KASAN. MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29456 --- sys/vm/uma.h | 7 ++- sys/vm/uma_core.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 144 insertions(+), 21 deletions(-) diff --git a/sys/vm/uma.h b/sys/vm/uma.h index f1bf7cea6e53..361c64900845 100644 --- a/sys/vm/uma.h +++ b/sys/vm/uma.h @@ -276,6 +276,11 @@ uma_zone_t uma_zcache_create(const char *name, int size, uma_ctor ctor, * * See sys/smr.h for more details. */ +#define UMA_ZONE_NOKASAN 0x80000 /* + * Disable KASAN verification. This is + * implied by NOFREE. Cache zones are + * not verified by default. + */ /* In use by UMA_ZFLAGs: 0xffe00000 */ /* @@ -286,7 +291,7 @@ uma_zone_t uma_zcache_create(const char *name, int size, uma_ctor ctor, #define UMA_ZONE_INHERIT \ (UMA_ZONE_NOTOUCH | UMA_ZONE_MALLOC | UMA_ZONE_NOFREE | \ UMA_ZONE_VM | UMA_ZONE_NOTPAGE | UMA_ZONE_PCPU | \ - UMA_ZONE_FIRSTTOUCH | UMA_ZONE_ROUNDROBIN) + UMA_ZONE_FIRSTTOUCH | UMA_ZONE_ROUNDROBIN | UMA_ZONE_NOKASAN) /* Definitions for align */ #define UMA_ALIGN_PTR (sizeof(void *) - 1) /* Alignment fit for ptr */ diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c index b1762500c147..d73eef70e249 100644 --- a/sys/vm/uma_core.c +++ b/sys/vm/uma_core.c @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -318,6 +319,7 @@ static void bucket_zone_drain(void); static uma_bucket_t zone_alloc_bucket(uma_zone_t, void *, int, int); static void *slab_alloc_item(uma_keg_t keg, uma_slab_t slab); static void slab_free_item(uma_zone_t zone, uma_slab_t slab, void *item); +static size_t slab_sizeof(int nitems); static uma_keg_t uma_kcreate(uma_zone_t zone, size_t size, uma_init uminit, uma_fini fini, int align, uint32_t flags); static int zone_import(void *, void **, int, int, int); @@ -531,6 +533,94 @@ bucket_zone_drain(void) uma_zone_reclaim(ubz->ubz_zone, UMA_RECLAIM_DRAIN); } +#ifdef KASAN +static void +kasan_mark_item_valid(uma_zone_t zone, void *item) +{ + void *pcpu_item; + size_t sz, rsz; + int i; + + if ((zone->uz_flags & UMA_ZONE_NOKASAN) != 0) + return; + + sz = zone->uz_size; + rsz = roundup2(sz, KASAN_SHADOW_SCALE); + if ((zone->uz_flags & UMA_ZONE_PCPU) == 0) { + kasan_mark(item, sz, rsz, 0); + } else { + pcpu_item = zpcpu_base_to_offset(item); + for (i = 0; i <= mp_maxid; i++) + kasan_mark(zpcpu_get_cpu(pcpu_item, i), sz, rsz, 0); + } +} + +static void +kasan_mark_item_invalid(uma_zone_t zone, void *item) +{ + void *pcpu_item; + size_t sz; + int i; + + if ((zone->uz_flags & UMA_ZONE_NOKASAN) != 0) + return; + + sz = roundup2(zone->uz_size, KASAN_SHADOW_SCALE); + if ((zone->uz_flags & UMA_ZONE_PCPU) == 0) { + kasan_mark(item, 0, sz, KASAN_UMA_FREED); + } else { + pcpu_item = zpcpu_base_to_offset(item); + for (i = 0; i <= mp_maxid; i++) + kasan_mark(zpcpu_get_cpu(pcpu_item, i), 0, sz, 0); + } +} + +static void +kasan_mark_slab_valid(uma_keg_t keg, void *mem) +{ + size_t sz; + + if ((keg->uk_flags & UMA_ZONE_NOKASAN) == 0) { + sz = keg->uk_ppera * PAGE_SIZE; + kasan_mark(mem, sz, sz, 0); + } +} + +static void +kasan_mark_slab_invalid(uma_keg_t keg, void *mem) +{ + size_t sz; + + if ((keg->uk_flags & UMA_ZONE_NOKASAN) == 0) { + if ((keg->uk_flags & UMA_ZFLAG_OFFPAGE) != 0) + sz = keg->uk_ppera * PAGE_SIZE; + else + sz = keg->uk_pgoff; + kasan_mark(mem, 0, sz, KASAN_UMA_FREED); + } +} +#else /* !KASAN */ +static void +kasan_mark_item_valid(uma_zone_t zone __unused, void *item __unused) +{ +} + +static void +kasan_mark_item_invalid(uma_zone_t zone __unused, void *item __unused) +{ +} + +static void +kasan_mark_slab_valid(uma_keg_t keg __unused, void *mem __unused) +{ +} + +static void +kasan_mark_slab_invalid(uma_keg_t keg __unused, void *mem __unused) +{ +} +#endif /* KASAN */ + /* * Acquire the domain lock and record contention. */ @@ -1156,8 +1246,11 @@ bucket_drain(uma_zone_t zone, uma_bucket_t bucket) zone->uz_size, NULL, SKIP_NONE); } if (zone->uz_fini) - for (i = 0; i < bucket->ub_cnt; i++) + for (i = 0; i < bucket->ub_cnt; i++) { + kasan_mark_item_valid(zone, bucket->ub_bucket[i]); zone->uz_fini(bucket->ub_bucket[i], zone->uz_size); + kasan_mark_item_invalid(zone, bucket->ub_bucket[i]); + } zone->uz_release(zone->uz_arg, bucket->ub_bucket, bucket->ub_cnt); if (zone->uz_max_items > 0) zone_free_limit(zone, bucket->ub_cnt); @@ -1362,6 +1455,7 @@ static void keg_free_slab(uma_keg_t keg, uma_slab_t slab, int start) { uint8_t *mem; + size_t size; int i; uint8_t flags; @@ -1369,10 +1463,11 @@ keg_free_slab(uma_keg_t keg, uma_slab_t slab, int start) keg->uk_name, keg, slab, PAGE_SIZE * keg->uk_ppera); mem = slab_data(slab, keg); - flags = slab->us_flags; - i = start; + size = PAGE_SIZE * keg->uk_ppera; + + kasan_mark_slab_valid(keg, mem); if (keg->uk_fini != NULL) { - for (i--; i > -1; i--) + for (i = start - 1; i > -1; i--) #ifdef INVARIANTS /* * trash_fini implies that dtor was trash_dtor. trash_fini @@ -1387,11 +1482,13 @@ keg_free_slab(uma_keg_t keg, uma_slab_t slab, int start) #endif keg->uk_fini(slab_item(slab, keg, i), keg->uk_size); } - if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) + flags = slab->us_flags; + if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) { zone_free_item(slabzone(keg->uk_ipers), slab_tohashslab(slab), NULL, SKIP_NONE); - keg->uk_freef(mem, PAGE_SIZE * keg->uk_ppera, flags); - uma_total_dec(PAGE_SIZE * keg->uk_ppera); + } + keg->uk_freef(mem, size, flags); + uma_total_dec(size); } static void @@ -1535,7 +1632,6 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int domain, int flags, int aflags) { uma_domain_t dom; - uma_alloc allocf; uma_slab_t slab; unsigned long size; uint8_t *mem; @@ -1545,7 +1641,6 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int domain, int flags, KASSERT(domain >= 0 && domain < vm_ndomains, ("keg_alloc_slab: domain %d out of range", domain)); - allocf = keg->uk_allocf; slab = NULL; mem = NULL; if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) { @@ -1574,7 +1669,7 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int domain, int flags, /* zone is passed for legacy reasons. */ size = keg->uk_ppera * PAGE_SIZE; - mem = allocf(zone, size, domain, &sflags, aflags); + mem = keg->uk_allocf(zone, size, domain, &sflags, aflags); if (mem == NULL) { if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) zone_free_item(slabzone(keg->uk_ipers), @@ -1589,7 +1684,7 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int domain, int flags, /* Point the slab into the allocated memory */ if (!(keg->uk_flags & UMA_ZFLAG_OFFPAGE)) - slab = (uma_slab_t )(mem + keg->uk_pgoff); + slab = (uma_slab_t)(mem + keg->uk_pgoff); else slab_tohashslab(slab)->uhs_data = mem; @@ -1617,6 +1712,7 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int domain, int flags, goto fail; } } + kasan_mark_slab_invalid(keg, mem); KEG_LOCK(keg, domain); CTR3(KTR_UMA, "keg_alloc_slab: allocated slab %p for %s(%p)", @@ -2604,9 +2700,12 @@ zone_ctor(void *mem, int size, void *udata, int flags) STAILQ_INIT(&zdom->uzd_buckets); } -#ifdef INVARIANTS +#if defined(INVARIANTS) && !defined(KASAN) if (arg->uminit == trash_init && arg->fini == trash_fini) zone->uz_flags |= UMA_ZFLAG_TRASH | UMA_ZFLAG_CTORDTOR; +#elif defined(KASAN) + if ((arg->flags & (UMA_ZONE_NOFREE | UMA_ZFLAG_CACHE)) != 0) + arg->flags |= UMA_ZONE_NOKASAN; #endif /* @@ -3029,7 +3128,7 @@ uma_zcreate(const char *name, size_t size, uma_ctor ctor, uma_dtor dtor, args.dtor = dtor; args.uminit = uminit; args.fini = fini; -#ifdef INVARIANTS +#if defined(INVARIANTS) && !defined(KASAN) /* * Inject procedures which check for memory use after free if we are * allowed to scramble the memory while it is not allocated. This @@ -3186,12 +3285,17 @@ item_ctor(uma_zone_t zone, int uz_flags, int size, void *udata, int flags, { #ifdef INVARIANTS bool skipdbg; +#endif + + kasan_mark_item_valid(zone, item); +#ifdef INVARIANTS skipdbg = uma_dbg_zskip(zone, item); - if (!skipdbg && (zone->uz_flags & UMA_ZFLAG_TRASH) != 0 && + if (!skipdbg && (uz_flags & UMA_ZFLAG_TRASH) != 0 && zone->uz_ctor != trash_ctor) trash_ctor(item, size, udata, flags); #endif + /* Check flags before loading ctor pointer. */ if (__predict_false((uz_flags & UMA_ZFLAG_CTORDTOR) != 0) && __predict_false(zone->uz_ctor != NULL) && @@ -3234,6 +3338,7 @@ item_dtor(uma_zone_t zone, void *item, int size, void *udata, trash_dtor(item, size, udata); #endif } + kasan_mark_item_invalid(zone, item); } #ifdef NUMA @@ -3955,7 +4060,7 @@ static uma_bucket_t zone_alloc_bucket(uma_zone_t zone, void *udata, int domain, int flags) { uma_bucket_t bucket; - int maxbucket, cnt; + int error, maxbucket, cnt; CTR3(KTR_UMA, "zone_alloc_bucket zone %s(%p) domain %d", zone->uz_name, zone, domain); @@ -3990,10 +4095,15 @@ zone_alloc_bucket(uma_zone_t zone, void *udata, int domain, int flags) if (bucket->ub_cnt != 0 && zone->uz_init != NULL) { int i; - for (i = 0; i < bucket->ub_cnt; i++) - if (zone->uz_init(bucket->ub_bucket[i], zone->uz_size, - flags) != 0) + for (i = 0; i < bucket->ub_cnt; i++) { + kasan_mark_item_valid(zone, bucket->ub_bucket[i]); + error = zone->uz_init(bucket->ub_bucket[i], + zone->uz_size, flags); + kasan_mark_item_invalid(zone, bucket->ub_bucket[i]); + if (error != 0) break; + } + /* * If we couldn't initialize the whole bucket, put the * rest back onto the freelist. @@ -4060,7 +4170,12 @@ zone_alloc_item(uma_zone_t zone, void *udata, int domain, int flags) * to be both zone-init'd as well as zone-ctor'd. */ if (zone->uz_init != NULL) { - if (zone->uz_init(item, zone->uz_size, flags) != 0) { + int error; + + kasan_mark_item_valid(zone, item); + error = zone->uz_init(item, zone->uz_size, flags); + kasan_mark_item_invalid(zone, item); + if (error != 0) { zone_free_item(zone, item, udata, SKIP_FINI | SKIP_CNT); goto fail_cnt; } @@ -4542,8 +4657,11 @@ zone_free_item(uma_zone_t zone, void *item, void *udata, enum zfreeskip skip) item_dtor(zone, item, zone->uz_size, udata, skip); - if (skip < SKIP_FINI && zone->uz_fini) + if (skip < SKIP_FINI && zone->uz_fini) { + kasan_mark_item_valid(zone, item); zone->uz_fini(item, zone->uz_size); + kasan_mark_item_invalid(zone, item); + } zone->uz_release(zone->uz_arg, &item, 1); From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:42:37 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 890A85ED1BB; Tue, 13 Apr 2021 21:42:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfGP0YMgz3PWY; Tue, 13 Apr 2021 21:42:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A308A11EE4; Tue, 13 Apr 2021 21:42:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DLgaMP099185; Tue, 13 Apr 2021 21:42:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DLgaZu099184; Tue, 13 Apr 2021 21:42:36 GMT (envelope-from git) Date: Tue, 13 Apr 2021 21:42:36 GMT Message-Id: <202104132142.13DLgaZu099184@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 244f3ec642ed - main - kstack: Add KASAN state transitions MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 244f3ec642ed99a371c97b946b93b877d8be1756 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:42:37 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=244f3ec642ed99a371c97b946b93b877d8be1756 commit 244f3ec642ed99a371c97b946b93b877d8be1756 Author: Mark Johnston AuthorDate: 2021-04-13 21:39:55 +0000 Commit: Mark Johnston CommitDate: 2021-04-13 21:42:21 +0000 kstack: Add KASAN state transitions We allocate kernel stacks using a UMA cache zone. Cache zones have KASAN disabled by default, but in this case it makes sense to enable it. Reviewed by: andrew MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D29457 --- sys/vm/vm_glue.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c index a2500828eae4..6facf744456c 100644 --- a/sys/vm/vm_glue.c +++ b/sys/vm/vm_glue.c @@ -68,6 +68,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -86,7 +87,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include @@ -351,6 +351,7 @@ vm_thread_stack_dispose(vm_offset_t ks, int pages) vm_page_free(m); } VM_OBJECT_WUNLOCK(kstack_object); + kasan_mark((void *)ks, ptoa(pages), ptoa(pages), 0); kva_free(ks - (KSTACK_GUARD_PAGES * PAGE_SIZE), (pages + KSTACK_GUARD_PAGES) * PAGE_SIZE); } @@ -385,6 +386,7 @@ vm_thread_new(struct thread *td, int pages) return (0); td->td_kstack = ks; td->td_kstack_pages = pages; + kasan_mark((void *)ks, ptoa(pages), ptoa(pages), 0); return (1); } @@ -401,6 +403,7 @@ vm_thread_dispose(struct thread *td) ks = td->td_kstack; td->td_kstack = 0; td->td_kstack_pages = 0; + kasan_mark((void *)ks, 0, ptoa(pages), KASAN_KSTACK_FREED); if (pages == kstack_pages) uma_zfree(kstack_cache, (void *)ks); else From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:42:38 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5A42F5ED244; Tue, 13 Apr 2021 21:42:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfGQ1V74z3Pc9; Tue, 13 Apr 2021 21:42:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BB69012332; Tue, 13 Apr 2021 21:42:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DLgbOg099212; Tue, 13 Apr 2021 21:42:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DLgb3C099211; Tue, 13 Apr 2021 21:42:37 GMT (envelope-from git) Date: Tue, 13 Apr 2021 21:42:37 GMT Message-Id: <202104132142.13DLgb3C099211@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 2b914b85ddf4 - main - kmem: Add KASAN state transitions MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2b914b85ddf4c25d112b2639bbbb7618641872b4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:42:38 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=2b914b85ddf4c25d112b2639bbbb7618641872b4 commit 2b914b85ddf4c25d112b2639bbbb7618641872b4 Author: Mark Johnston AuthorDate: 2021-04-13 21:40:01 +0000 Commit: Mark Johnston CommitDate: 2021-04-13 21:42:21 +0000 kmem: Add KASAN state transitions Memory allocated with kmem_* is unmapped upon free, so KASAN doesn't provide a lot of benefit, but since allocations are always a multiple of the page size we can create a redzone when the allocation request size is not a multiple of the page size. MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29458 --- sys/vm/vm_kern.c | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index 77d9a4105862..a69493d1323f 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -71,12 +71,13 @@ __FBSDID("$FreeBSD$"); #include #include -#include /* for ticks and hz */ +#include #include #include +#include #include -#include #include +#include #include #include #include @@ -220,25 +221,26 @@ kmem_alloc_attr_domain(int domain, vm_size_t size, int flags, vm_paddr_t low, vm_object_t object; vm_offset_t addr, i, offset; vm_page_t m; + vm_size_t asize; int pflags; vm_prot_t prot; object = kernel_object; - size = round_page(size); + asize = round_page(size); vmem = vm_dom[domain].vmd_kernel_arena; - if (vmem_alloc(vmem, size, M_BESTFIT | flags, &addr)) + if (vmem_alloc(vmem, asize, M_BESTFIT | flags, &addr)) return (0); offset = addr - VM_MIN_KERNEL_ADDRESS; pflags = malloc2vm_flags(flags) | VM_ALLOC_WIRED; prot = (flags & M_EXEC) != 0 ? VM_PROT_ALL : VM_PROT_RW; VM_OBJECT_WLOCK(object); - for (i = 0; i < size; i += PAGE_SIZE) { + for (i = 0; i < asize; i += PAGE_SIZE) { m = kmem_alloc_contig_pages(object, atop(offset + i), domain, pflags, 1, low, high, PAGE_SIZE, 0, memattr); if (m == NULL) { VM_OBJECT_WUNLOCK(object); kmem_unback(object, addr, i); - vmem_free(vmem, addr, size); + vmem_free(vmem, addr, asize); return (0); } KASSERT(vm_page_domain(m) == domain, @@ -251,6 +253,7 @@ kmem_alloc_attr_domain(int domain, vm_size_t size, int flags, vm_paddr_t low, prot | PMAP_ENTER_WIRED, 0); } VM_OBJECT_WUNLOCK(object); + kasan_mark((void *)addr, size, asize, KASAN_KMEM_REDZONE); return (addr); } @@ -299,23 +302,24 @@ kmem_alloc_contig_domain(int domain, vm_size_t size, int flags, vm_paddr_t low, vm_object_t object; vm_offset_t addr, offset, tmp; vm_page_t end_m, m; + vm_size_t asize; u_long npages; int pflags; object = kernel_object; - size = round_page(size); + asize = round_page(size); vmem = vm_dom[domain].vmd_kernel_arena; - if (vmem_alloc(vmem, size, flags | M_BESTFIT, &addr)) + if (vmem_alloc(vmem, asize, flags | M_BESTFIT, &addr)) return (0); offset = addr - VM_MIN_KERNEL_ADDRESS; pflags = malloc2vm_flags(flags) | VM_ALLOC_WIRED; - npages = atop(size); + npages = atop(asize); VM_OBJECT_WLOCK(object); m = kmem_alloc_contig_pages(object, atop(offset), domain, pflags, npages, low, high, alignment, boundary, memattr); if (m == NULL) { VM_OBJECT_WUNLOCK(object); - vmem_free(vmem, addr, size); + vmem_free(vmem, addr, asize); return (0); } KASSERT(vm_page_domain(m) == domain, @@ -332,6 +336,7 @@ kmem_alloc_contig_domain(int domain, vm_size_t size, int flags, vm_paddr_t low, tmp += PAGE_SIZE; } VM_OBJECT_WUNLOCK(object); + kasan_mark((void *)addr, size, asize, KASAN_KMEM_REDZONE); return (addr); } @@ -407,21 +412,23 @@ kmem_malloc_domain(int domain, vm_size_t size, int flags) { vmem_t *arena; vm_offset_t addr; + vm_size_t asize; int rv; if (__predict_true((flags & M_EXEC) == 0)) arena = vm_dom[domain].vmd_kernel_arena; else arena = vm_dom[domain].vmd_kernel_rwx_arena; - size = round_page(size); - if (vmem_alloc(arena, size, flags | M_BESTFIT, &addr)) + asize = round_page(size); + if (vmem_alloc(arena, asize, flags | M_BESTFIT, &addr)) return (0); - rv = kmem_back_domain(domain, kernel_object, addr, size, flags); + rv = kmem_back_domain(domain, kernel_object, addr, asize, flags); if (rv != KERN_SUCCESS) { - vmem_free(arena, addr, size); + vmem_free(arena, addr, asize); return (0); } + kasan_mark((void *)addr, size, asize, KASAN_KMEM_REDZONE); return (addr); } @@ -613,6 +620,7 @@ kmem_free(vm_offset_t addr, vm_size_t size) struct vmem *arena; size = round_page(size); + kasan_mark((void *)addr, size, size, 0); arena = _kmem_unback(kernel_object, addr, size); if (arena != NULL) vmem_free(arena, addr, size); From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:42:39 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E742B5ED249; Tue, 13 Apr 2021 21:42:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfGR1FcSz3Pj8; Tue, 13 Apr 2021 21:42:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D2793126A5; Tue, 13 Apr 2021 21:42:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DLgcRK099233; Tue, 13 Apr 2021 21:42:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DLgc9B099232; Tue, 13 Apr 2021 21:42:38 GMT (envelope-from git) Date: Tue, 13 Apr 2021 21:42:38 GMT Message-Id: <202104132142.13DLgc9B099232@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: b261bb4057f4 - main - vfs: Add KASAN state transitions for vnodes MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b261bb4057f4abbc1366e4af8e9e4081d039be4a Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:42:40 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b261bb4057f4abbc1366e4af8e9e4081d039be4a commit b261bb4057f4abbc1366e4af8e9e4081d039be4a Author: Mark Johnston AuthorDate: 2021-04-13 21:40:11 +0000 Commit: Mark Johnston CommitDate: 2021-04-13 21:42:21 +0000 vfs: Add KASAN state transitions for vnodes vnodes are a bit special in that they may exist on per-CPU lists even while free. Add a KASAN-only destructor that poisons regions of each vnode that are not expected to be accessed after a free. MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29459 --- sys/kern/vfs_subr.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index af12252e8a88..2be3a81ad799 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -527,6 +528,54 @@ vn_free_marker(struct vnode *vp) free(vp, M_VNODE_MARKER); } +#ifdef KASAN +static int +vnode_ctor(void *mem, int size, void *arg __unused, int flags __unused) +{ + kasan_mark(mem, size, roundup2(size, UMA_ALIGN_PTR + 1), 0); + return (0); +} + +static void +vnode_dtor(void *mem, int size, void *arg __unused) +{ + size_t end1, end2, off1, off2; + + _Static_assert(offsetof(struct vnode, v_vnodelist) < + offsetof(struct vnode, v_dbatchcpu), + "KASAN marks require updating"); + + off1 = offsetof(struct vnode, v_vnodelist); + off2 = offsetof(struct vnode, v_dbatchcpu); + end1 = off1 + sizeof(((struct vnode *)NULL)->v_vnodelist); + end2 = off2 + sizeof(((struct vnode *)NULL)->v_dbatchcpu); + + /* + * Access to the v_vnodelist and v_dbatchcpu fields are permitted even + * after the vnode has been freed. Try to get some KASAN coverage by + * marking everything except those two fields as invalid. Because + * KASAN's tracking is not byte-granular, any preceding fields sharing + * the same 8-byte aligned word must also be marked valid. + */ + + /* Handle the area from the start until v_vnodelist... */ + off1 = rounddown2(off1, KASAN_SHADOW_SCALE); + kasan_mark(mem, off1, off1, KASAN_UMA_FREED); + + /* ... then the area between v_vnodelist and v_dbatchcpu ... */ + off1 = roundup2(end1, KASAN_SHADOW_SCALE); + off2 = rounddown2(off2, KASAN_SHADOW_SCALE); + if (off2 > off1) + kasan_mark((void *)((char *)mem + off1), off2 - off1, + off2 - off1, KASAN_UMA_FREED); + + /* ... and finally the area from v_dbatchcpu to the end. */ + off2 = roundup2(end2, KASAN_SHADOW_SCALE); + kasan_mark((void *)((char *)mem + off2), size - off2, size - off2, + KASAN_UMA_FREED); +} +#endif /* KASAN */ + /* * Initialize a vnode as it first enters the zone. */ @@ -592,6 +641,8 @@ vnode_fini(void *mem, int size) mtx_destroy(&vp->v_interlock); bo = &vp->v_bufobj; rw_destroy(BO_LOCKPTR(bo)); + + kasan_mark(mem, size, size, 0); } /* @@ -619,6 +670,8 @@ static void vntblinit(void *dummy __unused) { struct vdbatch *vd; + uma_ctor ctor; + uma_dtor dtor; int cpu, physvnodes, virtvnodes; u_int i; @@ -658,9 +711,18 @@ vntblinit(void *dummy __unused) TAILQ_INSERT_HEAD(&vnode_list, vnode_list_free_marker, v_vnodelist); vnode_list_reclaim_marker = vn_alloc_marker(NULL); TAILQ_INSERT_HEAD(&vnode_list, vnode_list_reclaim_marker, v_vnodelist); - vnode_zone = uma_zcreate("VNODE", sizeof (struct vnode), NULL, NULL, - vnode_init, vnode_fini, UMA_ALIGN_PTR, 0); + +#ifdef KASAN + ctor = vnode_ctor; + dtor = vnode_dtor; +#else + ctor = NULL; + dtor = NULL; +#endif + vnode_zone = uma_zcreate("VNODE", sizeof(struct vnode), ctor, dtor, + vnode_init, vnode_fini, UMA_ALIGN_PTR, UMA_ZONE_NOKASAN); uma_zone_set_smr(vnode_zone, vfs_smr); + /* * Preallocate enough nodes to support one-per buf so that * we can not fail an insert. reassignbuf() callers can not From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:42:41 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0BA055ED54F; Tue, 13 Apr 2021 21:42:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfGS4kDQz3Ptx; Tue, 13 Apr 2021 21:42:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EB24A11EE5; Tue, 13 Apr 2021 21:42:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DLgdjX099254; Tue, 13 Apr 2021 21:42:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DLgdSu099253; Tue, 13 Apr 2021 21:42:39 GMT (envelope-from git) Date: Tue, 13 Apr 2021 21:42:39 GMT Message-Id: <202104132142.13DLgdSu099253@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: f1c3adefd95d - main - execve: Mark exec argument buffers MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f1c3adefd95d35115bd4597293e0b904ae401245 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:42:41 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=f1c3adefd95d35115bd4597293e0b904ae401245 commit f1c3adefd95d35115bd4597293e0b904ae401245 Author: Mark Johnston AuthorDate: 2021-04-13 21:40:19 +0000 Commit: Mark Johnston CommitDate: 2021-04-13 21:42:21 +0000 execve: Mark exec argument buffers We cache mapped execve argument buffers to avoid the overhead of TLB shootdowns. Mark them invalid when they are freed to the cache. MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29460 --- sys/kern/kern_exec.c | 5 +++++ sys/kern/subr_asan.c | 2 ++ sys/sys/asan.h | 1 + 3 files changed, 8 insertions(+) diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 3de6ac565db5..22a050019ce0 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1328,6 +1329,8 @@ exec_alloc_args_kva(void **cookie) SLIST_REMOVE_HEAD(&exec_args_kva_freelist, next); mtx_unlock(&exec_args_kva_mtx); } + kasan_mark((void *)argkva->addr, exec_map_entry_size, + exec_map_entry_size, 0); *(struct exec_args_kva **)cookie = argkva; return (argkva->addr); } @@ -1338,6 +1341,8 @@ exec_release_args_kva(struct exec_args_kva *argkva, u_int gen) vm_offset_t base; base = argkva->addr; + kasan_mark((void *)argkva->addr, 0, exec_map_entry_size, + KASAN_EXEC_ARGS_FREED); if (argkva->gen != gen) { (void)vm_map_madvise(exec_map, base, base + exec_map_entry_size, MADV_FREE); diff --git a/sys/kern/subr_asan.c b/sys/kern/subr_asan.c index 842370ad1e63..d0478899e8c7 100644 --- a/sys/kern/subr_asan.c +++ b/sys/kern/subr_asan.c @@ -153,6 +153,8 @@ kasan_code_name(uint8_t code) return "UMAUseAfterFree"; case KASAN_KSTACK_FREED: return "KernelStack"; + case KASAN_EXEC_ARGS_FREED: + return "ExecKVA"; case 1 ... 7: return "RedZonePartial"; case KASAN_STACK_LEFT: diff --git a/sys/sys/asan.h b/sys/sys/asan.h index a8e07b765028..c86202222c72 100644 --- a/sys/sys/asan.h +++ b/sys/sys/asan.h @@ -53,6 +53,7 @@ #define KASAN_KMEM_REDZONE 0xFC #define KASAN_UMA_FREED 0xFD #define KASAN_KSTACK_FREED 0xFE +#define KASAN_EXEC_ARGS_FREED 0xFF void kasan_init(void); void kasan_shadow_map(void *, size_t); From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:42:43 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CC3955ED1DE; Tue, 13 Apr 2021 21:42:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfGW0Bjcz3Pxg; Tue, 13 Apr 2021 21:42:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 27EF412650; Tue, 13 Apr 2021 21:42:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DLgfqV099275; Tue, 13 Apr 2021 21:42:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DLgfpZ099274; Tue, 13 Apr 2021 21:42:41 GMT (envelope-from git) Date: Tue, 13 Apr 2021 21:42:41 GMT Message-Id: <202104132142.13DLgfpZ099274@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 06a53ecf2400 - main - malloc: Add state transitions for KASAN MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 06a53ecf24005b3a74b85ecc4b504a401ac26cd0 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:42:44 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=06a53ecf24005b3a74b85ecc4b504a401ac26cd0 commit 06a53ecf24005b3a74b85ecc4b504a401ac26cd0 Author: Mark Johnston AuthorDate: 2021-04-13 21:40:27 +0000 Commit: Mark Johnston CommitDate: 2021-04-13 21:42:21 +0000 malloc: Add state transitions for KASAN - Reuse some REDZONE bits to keep track of the requested and allocated sizes, and use that to provide red zones. - As in UMA, disable memory trashing to avoid unnecessary CPU overhead. MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29461 --- sys/kern/kern_malloc.c | 44 +++++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index 7aa9bf79180c..e2a05c004637 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -110,7 +111,7 @@ dtrace_malloc_probe_func_t __read_mostly dtrace_malloc_probe; #define MALLOC_DEBUG 1 #endif -#ifdef DEBUG_REDZONE +#if defined(KASAN) || defined(DEBUG_REDZONE) #define DEBUG_REDZONE_ARG_DEF , unsigned long osize #define DEBUG_REDZONE_ARG , osize #else @@ -603,11 +604,12 @@ malloc_large(size_t *size, struct malloc_type *mtp, struct domainset *policy, if (__predict_false(va == NULL)) { KASSERT((flags & M_WAITOK) == 0, ("malloc(M_WAITOK) returned NULL")); - } + } else { #ifdef DEBUG_REDZONE - if (va != NULL) va = redzone_setup(va, osize); #endif + kasan_mark((void *)va, osize, sz, KASAN_MALLOC_REDZONE); + } return (va); } @@ -633,7 +635,7 @@ void * int indx; caddr_t va; uma_zone_t zone; -#ifdef DEBUG_REDZONE +#if defined(DEBUG_REDZONE) || defined(KASAN) unsigned long osize = size; #endif @@ -664,6 +666,10 @@ void * #ifdef DEBUG_REDZONE if (va != NULL) va = redzone_setup(va, osize); +#endif +#ifdef KASAN + if (va != NULL) + kasan_mark((void *)va, osize, size, KASAN_MALLOC_REDZONE); #endif return ((void *) va); } @@ -699,7 +705,7 @@ malloc_domainset(size_t size, struct malloc_type *mtp, struct domainset *ds, caddr_t va; int domain; int indx; -#ifdef DEBUG_REDZONE +#if defined(KASAN) || defined(DEBUG_REDZONE) unsigned long osize = size; #endif @@ -727,6 +733,10 @@ malloc_domainset(size_t size, struct malloc_type *mtp, struct domainset *ds, #ifdef DEBUG_REDZONE if (va != NULL) va = redzone_setup(va, osize); +#endif +#ifdef KASAN + if (va != NULL) + kasan_mark((void *)va, osize, size, KASAN_MALLOC_REDZONE); #endif return (va); } @@ -745,7 +755,7 @@ void * malloc_domainset_exec(size_t size, struct malloc_type *mtp, struct domainset *ds, int flags) { -#ifdef DEBUG_REDZONE +#if defined(DEBUG_REDZONE) || defined(KASAN) unsigned long osize = size; #endif #ifdef MALLOC_DEBUG @@ -815,7 +825,7 @@ mallocarray_domainset(size_t nmemb, size_t size, struct malloc_type *type, return (malloc_domainset(size * nmemb, type, ds, flags)); } -#ifdef INVARIANTS +#if defined(INVARIANTS) && !defined(KASAN) static void free_save_type(void *addr, struct malloc_type *mtp, u_long size) { @@ -896,7 +906,7 @@ free(void *addr, struct malloc_type *mtp) if (__predict_true(!malloc_large_slab(slab))) { size = zone->uz_size; -#ifdef INVARIANTS +#if defined(INVARIANTS) && !defined(KASAN) free_save_type(addr, mtp, size); #endif uma_zfree_arg(zone, addr, slab); @@ -936,13 +946,15 @@ zfree(void *addr, struct malloc_type *mtp) if (__predict_true(!malloc_large_slab(slab))) { size = zone->uz_size; -#ifdef INVARIANTS +#if defined(INVARIANTS) && !defined(KASAN) free_save_type(addr, mtp, size); #endif + kasan_mark(addr, size, size, 0); explicit_bzero(addr, size); uma_zfree_arg(zone, addr, slab); } else { size = malloc_large_size(slab); + kasan_mark(addr, size, size, 0); explicit_bzero(addr, size); free_large(addr, size); } @@ -997,16 +1009,22 @@ realloc(void *addr, size_t size, struct malloc_type *mtp, int flags) alloc = malloc_large_size(slab); /* Reuse the original block if appropriate */ - if (size <= alloc - && (size > (alloc >> REALLOC_FRACTION) || alloc == MINALLOCSIZE)) + if (size <= alloc && + (size > (alloc >> REALLOC_FRACTION) || alloc == MINALLOCSIZE)) { + kasan_mark((void *)addr, size, alloc, KASAN_MALLOC_REDZONE); return (addr); + } #endif /* !DEBUG_REDZONE */ /* Allocate a new, bigger (or smaller) block */ if ((newaddr = malloc(size, mtp, flags)) == NULL) return (NULL); - /* Copy over original contents */ + /* + * Copy over original contents. For KASAN, the redzone must be marked + * valid before performing the copy. + */ + kasan_mark(addr, size, size, 0); bcopy(addr, newaddr, min(size, alloc)); free(addr, mtp); return (newaddr); @@ -1207,7 +1225,7 @@ mallocinit(void *dummy) for (subzone = 0; subzone < numzones; subzone++) { kmemzones[indx].kz_zone[subzone] = uma_zcreate(name, size, -#ifdef INVARIANTS +#if defined(INVARIANTS) && !defined(KASAN) mtrash_ctor, mtrash_dtor, mtrash_init, mtrash_fini, #else NULL, NULL, NULL, NULL, From owner-dev-commits-src-main@freebsd.org Tue Apr 13 21:47:02 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 537315ED771; Tue, 13 Apr 2021 21:47:02 +0000 (UTC) (envelope-from dchagin@heemeyer.club) Received: from heemeyer.club (heemeyer.club [IPv6:2001:19f0:6400:80a1:5054:ff:fe7a:a27d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfMT2WyGz3QJg; Tue, 13 Apr 2021 21:47:00 +0000 (UTC) (envelope-from dchagin@heemeyer.club) Received: from heemeyer.club (localhost [127.0.0.1]) by heemeyer.club (8.16.1/8.16.1) with ESMTP id 13DLkrE0029177; Tue, 13 Apr 2021 21:46:53 GMT (envelope-from dchagin@heemeyer.club) Received: (from dchagin@localhost) by heemeyer.club (8.16.1/8.16.1/Submit) id 13DLkrGN029176; Tue, 13 Apr 2021 21:46:53 GMT (envelope-from dchagin) Date: Tue, 13 Apr 2021 21:46:53 +0000 From: Dmitry Chagin To: John Baldwin Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 76681661be28 - main - OCF: Remove support for asymmetric cryptographic operations. Message-ID: References: <202104122135.13CLZ9Z7070342@gitrepo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202104122135.13CLZ9Z7070342@gitrepo.freebsd.org> X-Rspamd-Queue-Id: 4FKfMT2WyGz3QJg X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of dchagin@heemeyer.club has no SPF policy when checking 2001:19f0:6400:80a1:5054:ff:fe7a:a27d) smtp.mailfrom=dchagin@heemeyer.club X-Spamd-Result: default: False [0.19 / 15.00]; RCVD_TLS_LAST(0.00)[]; ARC_NA(0.00)[]; FREEFALL_USER(0.00)[dchagin]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; RBL_DBL_DONT_QUERY_IPS(0.00)[2001:19f0:6400:80a1:5054:ff:fe7a:a27d:from]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.99)[0.987]; SPAMHAUS_ZRD(0.00)[2001:19f0:6400:80a1:5054:ff:fe7a:a27d:from:127.0.2.255]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; R_SPF_NA(0.00)[no SPF record]; FORGED_SENDER(0.30)[dchagin@freebsd.org,dchagin@heemeyer.club]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:20473, ipnet:2001:19f0:6400::/38, country:US]; FROM_NEQ_ENVFROM(0.00)[dchagin@freebsd.org,dchagin@heemeyer.club]; MAILMAN_DEST(0.00)[dev-commits-src-all,dev-commits-src-main]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 21:47:02 -0000 On Mon, Apr 12, 2021 at 09:35:09PM +0000, John Baldwin wrote: > The branch main has been updated by jhb: > > URL: https://cgit.FreeBSD.org/src/commit/?id=76681661be2859622872c3a8a1bd68260403ddd0 > > commit 76681661be2859622872c3a8a1bd68260403ddd0 > Author: John Baldwin > AuthorDate: 2021-04-12 21:27:42 +0000 > Commit: John Baldwin > CommitDate: 2021-04-12 21:28:43 +0000 > > OCF: Remove support for asymmetric cryptographic operations. > > There haven't been any non-obscure drivers that supported this > functionality and it has been impossible to test to ensure that it > still works. The only known consumer of this interface was the engine > in OpenSSL < 1.1. Modern OpenSSL versions do not include support for > this interface as it was not well-documented. > > Reviewed by: cem > Sponsored by: Chelsio Communications > Differential Revision: https://reviews.freebsd.org/D29736 > --- > ObsoleteFiles.inc | 7 + > share/man/man4/crypto.4 | 145 +++---------- > share/man/man9/Makefile | 5 - > share/man/man9/crypto.9 | 32 +-- > share/man/man9/crypto_asym.9 | 178 ---------------- > share/man/man9/crypto_driver.9 | 7 +- > sys/dev/hifn/hifn7751.c | 2 +- > sys/dev/safe/safe.c | 4 +- > sys/mips/nlm/dev/sec/nlmsec.c | 2 +- > sys/opencrypto/crypto.c | 404 +------------------------------------ > sys/opencrypto/cryptodev.c | 248 ----------------------- > sys/opencrypto/cryptodev.h | 58 ------ > sys/opencrypto/cryptodev_if.m | 36 +--- > tools/tools/crypto/Makefile | 5 +- > tools/tools/crypto/cryptokeytest.c | 270 ------------------------- > 15 files changed, 56 insertions(+), 1347 deletions(-) > > diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc > index 1019436f1e28..39cb638129e9 100644 > --- a/ObsoleteFiles.inc > +++ b/ObsoleteFiles.inc > @@ -40,6 +40,13 @@ > # xargs -n1 | sort | uniq -d; > # done > > +# 20210412: Remove kernel asymmetric crypto > +OLD_FILES+=usr/share/man/man9/crypto_asym.9 > +OLD_FILES+=usr/share/man/man9/crypto_kdispatch.9 > +OLD_FILES+=usr/share/man/man9/crypto_kdone.9 > +OLD_FILES+=usr/share/man/man9/crypto_kregister.9 > +OLD_FILES+=usr/share/man/man9/CRYPTODEV_KPROCESS.9 > + should be *.9.gz From owner-dev-commits-src-main@freebsd.org Tue Apr 13 22:00:21 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0AAEC5EE297; Tue, 13 Apr 2021 22:00:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKffr6fsPz3QyZ; Tue, 13 Apr 2021 22:00:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D76E512849; Tue, 13 Apr 2021 22:00:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DM0K07021598; Tue, 13 Apr 2021 22:00:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DM0KCE021590; Tue, 13 Apr 2021 22:00:20 GMT (envelope-from git) Date: Tue, 13 Apr 2021 22:00:20 GMT Message-Id: <202104132200.13DM0KCE021590@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kyle Evans Subject: git: 446169e0b6f0 - main - caroot: routine cert update MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 446169e0b6f04b96960540784539c218f5a14c86 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 22:00:21 -0000 The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=446169e0b6f04b96960540784539c218f5a14c86 commit 446169e0b6f04b96960540784539c218f5a14c86 Author: Kyle Evans AuthorDate: 2021-03-30 02:56:40 +0000 Commit: Kyle Evans CommitDate: 2021-04-13 21:56:03 +0000 caroot: routine cert update - Three (3) added - Two (2) removed MFC after: 3 days --- ...oTrust_Primary_Certification_Authority_-_G2.pem | 0 ...Sign_Universal_Root_Certification_Authority.pem | 0 .../AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem | 67 +++++++++++ secure/caroot/trusted/GlobalSign_Root_E46.pem | 64 ++++++++++ secure/caroot/trusted/GlobalSign_Root_R46.pem | 132 +++++++++++++++++++++ 5 files changed, 263 insertions(+) diff --git a/secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G2.pem b/secure/caroot/blacklisted/GeoTrust_Primary_Certification_Authority_-_G2.pem similarity index 100% rename from secure/caroot/trusted/GeoTrust_Primary_Certification_Authority_-_G2.pem rename to secure/caroot/blacklisted/GeoTrust_Primary_Certification_Authority_-_G2.pem diff --git a/secure/caroot/trusted/VeriSign_Universal_Root_Certification_Authority.pem b/secure/caroot/blacklisted/VeriSign_Universal_Root_Certification_Authority.pem similarity index 100% rename from secure/caroot/trusted/VeriSign_Universal_Root_Certification_Authority.pem rename to secure/caroot/blacklisted/VeriSign_Universal_Root_Certification_Authority.pem diff --git a/secure/caroot/trusted/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem b/secure/caroot/trusted/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem new file mode 100644 index 000000000000..21d2c4f13bc6 --- /dev/null +++ b/secure/caroot/trusted/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem @@ -0,0 +1,67 @@ +## +## AC RAIZ FNMT-RCM SERVIDORES SEGUROS +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD$ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 62:f6:32:6c:e5:c4:e3:68:5c:1b:62:dd:9c:2e:9d:95 + Signature Algorithm: ecdsa-with-SHA384 + Issuer: C = ES, O = FNMT-RCM, OU = Ceres, organizationIdentifier = VATES-Q2826004J, CN = AC RAIZ FNMT-RCM SERVIDORES SEGUROS + Validity + Not Before: Dec 20 09:37:33 2018 GMT + Not After : Dec 20 09:37:33 2043 GMT + Subject: C = ES, O = FNMT-RCM, OU = Ceres, organizationIdentifier = VATES-Q2826004J, CN = AC RAIZ FNMT-RCM SERVIDORES SEGUROS + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + Public-Key: (384 bit) + pub: + 04:f6:ba:57:53:c8:ca:ab:df:36:4a:52:21:e4:97: + d2:83:67:9e:f0:65:51:d0:5e:87:c7:47:b1:59:f2: + 57:47:9b:00:02:93:44:17:69:db:42:c7:b1:b2:3a: + 18:0e:b4:5d:8c:b3:66:5d:a1:34:f9:36:2c:49:db: + f3:46:fc:b3:44:69:44:13:66:fd:d7:c5:fd:af:36: + 4d:ce:03:4d:07:71:cf:af:6a:05:d2:a2:43:5a:0a: + 52:6f:01:03:4e:8e:8b + ASN1 OID: secp384r1 + NIST CURVE: P-384 + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + X509v3 Subject Key Identifier: + 01:B9:2F:EF:BF:11:86:60:F2:4F:D0:41:6E:AB:73:1F:E7:D2:6E:49 + Signature Algorithm: ecdsa-with-SHA384 + 30:66:02:31:00:ae:4a:e3:2b:40:c3:74:11:f2:95:ad:16:23: + de:4e:0c:1a:e6:5d:a5:24:5e:6b:44:7b:fc:38:e2:4f:cb:9c: + 45:17:11:4c:14:27:26:55:39:75:4a:03:cc:13:90:9f:92:02: + 31:00:fa:4a:6c:60:88:73:f3:ee:b8:98:62:a9:ce:2b:c2:d9: + 8a:a6:70:31:1d:af:b0:94:4c:eb:4f:c6:e3:d1:f3:62:a7:3c: + ff:93:2e:07:5c:49:01:67:69:12:02:72:bf:e7 +SHA1 Fingerprint=62:FF:D9:9E:C0:65:0D:03:CE:75:93:D2:ED:3F:2D:32:C9:E3:E5:4A +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw +CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw +FgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S +Q00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5 +MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL +DAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS +QUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH +sbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK +Um8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu +SuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC +MQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy +v+c= +-----END CERTIFICATE----- diff --git a/secure/caroot/trusted/GlobalSign_Root_E46.pem b/secure/caroot/trusted/GlobalSign_Root_E46.pem new file mode 100644 index 000000000000..c353dba208db --- /dev/null +++ b/secure/caroot/trusted/GlobalSign_Root_E46.pem @@ -0,0 +1,64 @@ +## +## GlobalSign Root E46 +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD$ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 11:d2:bb:ba:33:6e:d4:bc:e6:24:68:c5:0d:84:1d:98:e8:43 + Signature Algorithm: ecdsa-with-SHA384 + Issuer: C = BE, O = GlobalSign nv-sa, CN = GlobalSign Root E46 + Validity + Not Before: Mar 20 00:00:00 2019 GMT + Not After : Mar 20 00:00:00 2046 GMT + Subject: C = BE, O = GlobalSign nv-sa, CN = GlobalSign Root E46 + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + Public-Key: (384 bit) + pub: + 04:9c:0e:b1:cf:b7:e8:9e:52:77:75:34:fa:a5:46: + a7:ad:32:19:32:b4:07:a9:27:ca:94:bb:0c:d2:0a: + 10:c7:da:89:b0:97:0c:70:13:09:01:8e:d8:ea:47: + ea:be:b2:80:2b:cd:fc:28:0d:db:ac:bc:a4:86:37: + ed:70:08:00:75:ea:93:0b:7b:2e:52:9c:23:68:23: + 06:43:ec:92:2f:53:84:db:fb:47:14:07:e8:5f:94: + 67:5d:c9:7a:81:3c:20 + ASN1 OID: secp384r1 + NIST CURVE: P-384 + X509v3 extensions: + X509v3 Key Usage: critical + Digital Signature, Certificate Sign, CRL Sign + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Subject Key Identifier: + 31:0A:90:8F:B6:C6:9D:D2:44:4B:80:B5:A2:E6:1F:B1:12:4F:1B:95 + Signature Algorithm: ecdsa-with-SHA384 + 30:65:02:31:00:df:54:90:ed:9b:ef:8b:94:02:93:17:82:99: + be:b3:9e:2c:f6:0b:91:8c:9f:4a:14:b1:f6:64:bc:bb:68:51: + 13:0c:03:f7:15:8b:84:60:b9:8b:ff:52:8e:e7:8c:bc:1c:02: + 30:3c:f9:11:d4:8c:4e:c0:c1:61:c2:15:4c:aa:ab:1d:0b:31: + 5f:3b:1c:e2:00:97:44:31:e6:fe:73:96:2f:da:96:d3:fe:08: + 07:b3:34:89:bc:05:9f:f7:1e:86:ee:8b:70 +SHA1 Fingerprint=39:B4:6C:D5:FE:80:06:EB:E2:2F:4A:BB:08:33:A0:AF:DB:B9:DD:84 +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx +CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD +ExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw +MDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex +HDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq +R+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd +yXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ +7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8 ++RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- diff --git a/secure/caroot/trusted/GlobalSign_Root_R46.pem b/secure/caroot/trusted/GlobalSign_Root_R46.pem new file mode 100644 index 000000000000..de107cd328c4 --- /dev/null +++ b/secure/caroot/trusted/GlobalSign_Root_R46.pem @@ -0,0 +1,132 @@ +## +## GlobalSign Root R46 +## +## This is a single X.509 certificate for a public Certificate +## Authority (CA). It was automatically extracted from Mozilla's +## root CA list (the file `certdata.txt' in security/nss). +## +## Extracted from nss +## with $FreeBSD$ +## +## @generated +## +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 11:d2:bb:b9:d7:23:18:9e:40:5f:0a:9d:2d:d0:df:25:67:d1 + Signature Algorithm: sha384WithRSAEncryption + Issuer: C = BE, O = GlobalSign nv-sa, CN = GlobalSign Root R46 + Validity + Not Before: Mar 20 00:00:00 2019 GMT + Not After : Mar 20 00:00:00 2046 GMT + Subject: C = BE, O = GlobalSign nv-sa, CN = GlobalSign Root R46 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (4096 bit) + Modulus: + 00:ac:ac:74:32:e8:b3:65:e5:ba:ed:43:26:1d:a6: + 89:0d:45:ba:29:88:b2:a4:1d:63:dd:d3:c1:2c:09: + 57:89:39:a1:55:e9:67:34:77:0c:6e:e4:55:1d:52: + 25:d2:13:6b:5e:e1:1d:a9:b7:7d:89:32:5f:0d:9e: + 9f:2c:7a:63:60:40:1f:a6:b0:b6:78:8f:99:54:96: + 08:58:ae:e4:06:bc:62:05:02:16:bf:af:a8:23:03: + b6:94:0f:bc:6e:6c:c2:cb:d5:a6:bb:0c:e9:f6:c1: + 02:fb:21:de:66:dd:17:ab:74:42:ef:f0:74:2f:25: + f4:ea:6b:55:5b:90:db:9d:df:5e:87:0a:40:fb:ad: + 19:6b:fb:f7:ca:60:88:de:da:c1:8f:d6:ae:d5:7f: + d4:3c:83:ee:d7:16:4c:83:45:33:6b:27:d0:86:d0: + 1c:2d:6b:f3:ab:7d:f1:85:a9:f5:28:d2:ad:ef:f3: + 84:4b:1c:87:fc:13:a3:3a:72:a2:5a:11:2b:d6:27: + 71:27:ed:81:2d:6d:66:81:92:87:b4:1b:58:7a:cc: + 3f:0a:fa:46:4f:4d:78:5c:f8:2b:48:e3:04:84:cb: + 5d:f6:b4:6a:b3:65:fc:42:9e:51:26:23:20:cb:3d: + 14:f9:81:ed:65:16:00:4f:1a:64:97:66:08:cf:8c: + 7b:e3:2b:c0:9d:f9:14:f2:1b:f1:56:6a:16:bf:2c: + 85:85:cd:78:38:9a:eb:42:6a:02:34:18:83:17:4e: + 94:56:f8:b6:82:b5:f3:96:dd:3d:f3:be:7f:20:77: + 3e:7b:19:23:6b:2c:d4:72:73:43:57:7d:e0:f8:d7: + 69:4f:17:36:04:f9:c0:90:60:37:45:de:e6:0c:d8: + 74:8d:ae:9c:a2:6d:74:5d:42:be:06:f5:d9:64:6e: + 02:10:ac:89:b0:4c:3b:07:4d:40:7e:24:c5:8a:98: + 82:79:8e:a4:a7:82:20:8d:23:fa:27:71:c9:df:c6: + 41:74:a0:4d:f6:91:16:dc:46:8c:5f:29:63:31:59: + 71:0c:d8:6f:c2:b6:32:7d:fb:e6:5d:53:a6:7e:15: + fc:bb:75:7c:5d:ec:f8:f6:17:1c:ec:c7:6b:19:cb: + f3:7b:f0:2b:07:a5:d9:6c:79:54:76:6c:9d:1c:a6: + 6e:0e:e9:79:0c:a8:23:6a:a3:df:1b:30:31:9f:b1: + 54:7b:fe:6a:cb:66:aa:dc:65:d0:a2:9e:4a:9a:07: + 21:6b:81:8f:db:c4:59:fa:de:22:c0:04:9c:e3:aa: + 5b:36:93:e8:3d:bd:7a:a1:9d:0b:76:b1:0b:c7:9d: + fd:cf:98:a8:06:c2:f8:2a:a3:a1:83:a0:b7:25:72: + a5:02:e3 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Key Usage: critical + Digital Signature, Certificate Sign, CRL Sign + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Subject Key Identifier: + 03:5C:AB:73:81:87:A8:CC:B0:A6:D5:94:E2:36:96:49:FF:05:99:2C + Signature Algorithm: sha384WithRSAEncryption + 7c:78:ec:f6:02:2c:bb:5b:7e:92:2b:5d:39:dc:be:d8:1d:a2: + 42:33:4d:f9:ef:a4:2a:3b:44:69:1e:ac:d9:45:a3:4e:3c:a7: + d8:24:51:b2:54:1c:93:4e:c4:ef:7b:93:85:60:26:ea:09:48: + e0:f5:bb:c7:e9:68:d2:bb:6a:31:71:cc:79:ae:11:a8:f0:99: + fd:e5:1f:bc:2f:a8:cc:57:eb:76:c4:21:a6:47:53:55:4d:68: + bf:05:a4:ee:d7:26:ab:62:da:43:37:4b:e2:c6:b5:e5:b2:83: + 19:3a:c7:d3:db:4d:9e:08:7a:f3:ee:cf:3e:62:fb:ac:e8:60: + cc:d1:c7:a1:5c:83:45:c4:45:cc:f3:17:6b:14:c9:04:02:3e: + d2:24:a6:79:e9:1e:ce:a2:e7:c1:59:15:9f:1d:e2:4b:9a:3e: + 9f:76:08:2d:6b:d8:ba:57:14:da:83:ea:fe:8c:55:e9:d0:4e: + a9:cc:77:31:b1:44:11:7a:5c:b1:3e:d3:14:45:15:18:62:24: + 13:d2:cb:4d:ce:5c:83:c1:36:f2:10:b5:0e:88:6d:b8:e1:56: + 9f:89:de:96:66:39:47:64:2c:6e:4d:ae:62:7b:bf:60:74:19: + b8:56:ac:92:ac:16:32:ed:ad:68:55:fe:98:ba:d3:34:de:f4: + c9:61:c3:0e:86:f6:4b:84:60:ee:0d:7b:b5:32:58:79:91:55: + 2c:81:43:b3:74:1f:7a:aa:25:9e:1d:d7:a1:8b:b9:cd:42:2e: + 04:a4:66:83:4d:89:35:b6:6c:a8:36:4a:79:21:78:22:d0:42: + bc:d1:40:31:90:a1:be:04:cf:ca:67:ed:f5:f0:80:d3:60:c9: + 83:2a:22:05:d0:07:3b:52:bf:0c:9e:aa:2b:f9:bb:e6:1f:8f: + 25:ba:85:8d:17:1e:02:fe:5d:50:04:57:cf:fe:2d:bc:ef:5c: + c0:1a:ab:b6:9f:24:c6:df:73:68:48:90:2c:14:f4:3f:52:1a: + e4:d2:cb:14:c3:61:69:cf:e2:f9:18:c5:ba:33:9f:14:a3:04: + 5d:b9:71:f7:b5:94:d8:f6:33:c1:5a:c1:34:8b:7c:9b:dd:93: + 3a:e7:13:a2:70:61:9f:af:8f:eb:d8:c5:75:f8:33:66:d4:74: + 67:3a:37:77:9c:e7:dd:a4:0f:76:43:66:8a:43:f2:9f:fb:0c: + 42:78:63:d1:e2:0f:6f:7b:d4:a1:3d:74:97:85:b7:48:39:41: + d6:20:fc:d0:3a:b3:fa:e8:6f:c4:8a:ba:71:37:be:8b:97:b1: + 78:31:4f:b3:e7:b6:03:13:ce:54:9d:ae:25:59:cc:7f:35:5f: + 08:f7:40:45:31:78:2a:7a +SHA1 Fingerprint=53:A2:B0:4B:CA:6B:D6:45:E6:39:8A:8E:C4:0D:D2:BF:77:C3:A2:90 +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA +MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD +VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy +MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt +c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ +OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG +vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud +316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo +0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE +y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF +zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE ++cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN +I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs +x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa +ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC +4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4 +7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti +2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk +pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF +FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt +rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk +ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5 +u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP +4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6 +N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3 +vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6 +-----END CERTIFICATE----- From owner-dev-commits-src-main@freebsd.org Tue Apr 13 22:00:22 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1DCBE5EE226; Tue, 13 Apr 2021 22:00:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKfft0JHtz3Qht; Tue, 13 Apr 2021 22:00:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F009312987; Tue, 13 Apr 2021 22:00:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DM0LHF021811; Tue, 13 Apr 2021 22:00:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DM0LU3021810; Tue, 13 Apr 2021 22:00:21 GMT (envelope-from git) Date: Tue, 13 Apr 2021 22:00:21 GMT Message-Id: <202104132200.13DM0LU3021810@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kyle Evans Subject: git: c3510c941c0d - main - caroot: update CA bundle processor MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c3510c941c0dddd09389915a9395e6f059088bab Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 22:00:22 -0000 The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=c3510c941c0dddd09389915a9395e6f059088bab commit c3510c941c0dddd09389915a9395e6f059088bab Author: Kyle Evans AuthorDate: 2021-03-30 03:05:38 +0000 Commit: Kyle Evans CommitDate: 2021-04-13 21:59:24 +0000 caroot: update CA bundle processor Our current processor was identified as trusting cert not explicitly marked for SERVER_AUTH, as well as certs that were tagged with DISTRUST_AFTER. Update the script to handle both scenarios. This patch was originally authored by mandree@ for ports, and it was subsequently ported to base caroot. MFC after: 3 days --- secure/caroot/MAca-bundle.pl | 55 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/secure/caroot/MAca-bundle.pl b/secure/caroot/MAca-bundle.pl index bfac77c73941..8521b620337f 100755 --- a/secure/caroot/MAca-bundle.pl +++ b/secure/caroot/MAca-bundle.pl @@ -76,6 +76,8 @@ sub print_header($$) ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $VERSION ## @@ -91,6 +93,8 @@ EOFH ## Authorities (CA). These were automatically extracted from Mozilla's ## root CA list (the file `certdata.txt'). ## +## It contains certificates trusted for server authentication. +## ## Extracted from nss ## with $VERSION ## @@ -100,6 +104,13 @@ EOH } } +# returns a string like YYMMDDhhmmssZ of current time in GMT zone +sub timenow() +{ + my ($sec,$min,$hour,$mday,$mon,$year,undef,undef,undef) = gmtime(time); + return sprintf "%02d%02d%02d%02d%02d%02dZ", $year-100, $mon+1, $mday, $hour, $min, $sec; +} + sub printcert($$$) { my ($fh, $label, $certdata) = @_; @@ -110,6 +121,8 @@ sub printcert($$$) close(OUT) or die "openssl x509 failed with exit code $?"; } +# converts a datastream that is to be \177-style octal constants +# from <> to a (binary) string and returns it sub graboct($) { my $ifh = shift; @@ -125,13 +138,13 @@ sub graboct($) return $data; } - sub grabcert($) { my $ifh = shift; my $certdata; - my $cka_label; - my $serial; + my $cka_label = ''; + my $serial = 0; + my $distrust = 0; while (<$ifh>) { chomp; @@ -148,6 +161,19 @@ sub grabcert($) if (/^CKA_SERIAL_NUMBER MULTILINE_OCTAL/) { $serial = graboct($ifh); } + + if (/^CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL/) + { + my $distrust_after = graboct($ifh); + my $time_now = timenow(); + if ($time_now >= $distrust_after) { $distrust = 1; } + if ($debug) { + printf STDERR "line $.: $cka_label ser #%d: distrust after %s, now: %s -> distrust $distrust\n", $serial, $distrust_after, timenow(); + } + if ($distrust) { + return undef; + } + } } return ($serial, $cka_label, $certdata); } @@ -171,13 +197,13 @@ sub grabtrust($) { $serial = graboct($ifh); } - if (/^CKA_TRUST_(SERVER_AUTH|EMAIL_PROTECTION|CODE_SIGNING) CK_TRUST (\S+)$/) + if (/^CKA_TRUST_SERVER_AUTH CK_TRUST (\S+)$/) { - if ($2 eq 'CKT_NSS_NOT_TRUSTED') { + if ($1 eq 'CKT_NSS_NOT_TRUSTED') { $distrust = 1; - } elsif ($2 eq 'CKT_NSS_TRUSTED_DELEGATOR') { + } elsif ($1 eq 'CKT_NSS_TRUSTED_DELEGATOR') { $maytrust = 1; - } elsif ($2 ne 'CKT_NSS_MUST_VERIFY_TRUST') { + } elsif ($1 ne 'CKT_NSS_MUST_VERIFY_TRUST') { confess "Unknown trust setting on line $.:\n" . "$_\n" . "Script must be updated:"; @@ -197,16 +223,22 @@ if (!$outputdir) { print_header(*STDOUT, ""); } +my $untrusted = 0; + while (<$inputfh>) { if (/^CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE/) { my ($serial, $label, $certdata) = grabcert($inputfh); if (defined $certs{$label."\0".$serial}) { warn "Certificate $label duplicated!\n"; } - $certs{$label."\0".$serial} = $certdata; - # We store the label in a separate hash because truncating the key - # with \0 was causing garbage data after the end of the text. - $labels{$label."\0".$serial} = $label; + if (defined $certdata) { + $certs{$label."\0".$serial} = $certdata; + # We store the label in a separate hash because truncating the key + # with \0 was causing garbage data after the end of the text. + $labels{$label."\0".$serial} = $label; + } else { # $certdata undefined? distrust_after in effect + $untrusted ++; + } } elsif (/^CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST/) { my ($serial, $label, $trust) = grabtrust($inputfh); if (defined $trusts{$label."\0".$serial}) { @@ -226,7 +258,6 @@ sub label_to_filename(@) { } # weed out untrusted certificates -my $untrusted = 0; foreach my $it (keys %trusts) { if (!$trusts{$it}) { if (!exists($certs{$it})) { From owner-dev-commits-src-main@freebsd.org Tue Apr 13 22:00:23 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 496C35EE320; Tue, 13 Apr 2021 22:00:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKffv1brwz3Qyj; Tue, 13 Apr 2021 22:00:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2809312988; Tue, 13 Apr 2021 22:00:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DM0NS1021832; Tue, 13 Apr 2021 22:00:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DM0NDM021831; Tue, 13 Apr 2021 22:00:23 GMT (envelope-from git) Date: Tue, 13 Apr 2021 22:00:23 GMT Message-Id: <202104132200.13DM0NDM021831@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kyle Evans Subject: git: fac832b27105 - main - caroot: remove certs distrusted for server auth MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fac832b27105d926d9f8728d7147adb547b937d8 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 22:00:23 -0000 The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=fac832b27105d926d9f8728d7147adb547b937d8 commit fac832b27105d926d9f8728d7147adb547b937d8 Author: Kyle Evans AuthorDate: 2021-03-30 03:01:05 +0000 Commit: Kyle Evans CommitDate: 2021-04-13 21:59:34 +0000 caroot: remove certs distrusted for server auth - Fifteen (15) removed MFC after: 3 days --- .../{trusted => blacklisted}/Camerfirma_Chambers_of_Commerce_Root.pem | 0 .../{trusted => blacklisted}/Camerfirma_Global_Chambersign_Root.pem | 0 secure/caroot/{trusted => blacklisted}/Certum_Root_CA.pem | 0 .../caroot/{trusted => blacklisted}/Chambers_of_Commerce_Root_-_2008.pem | 0 secure/caroot/{trusted => blacklisted}/D-TRUST_Root_CA_3_2013.pem | 0 secure/caroot/{trusted => blacklisted}/EC-ACC.pem | 0 secure/caroot/{trusted => blacklisted}/Global_Chambersign_Root_-_2008.pem | 0 .../caroot/{trusted => blacklisted}/OISTE_WISeKey_Global_Root_GA_CA.pem | 0 .../{trusted => blacklisted}/Staat_der_Nederlanden_Root_CA_-_G3.pem | 0 secure/caroot/{trusted => blacklisted}/SwissSign_Platinum_CA_-_G2.pem | 0 .../Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem | 0 .../Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem | 0 secure/caroot/{trusted => blacklisted}/Trustis_FPS_Root_CA.pem | 0 .../Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem | 0 .../Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem | 0 15 files changed, 0 insertions(+), 0 deletions(-) diff --git a/secure/caroot/trusted/Camerfirma_Chambers_of_Commerce_Root.pem b/secure/caroot/blacklisted/Camerfirma_Chambers_of_Commerce_Root.pem similarity index 100% rename from secure/caroot/trusted/Camerfirma_Chambers_of_Commerce_Root.pem rename to secure/caroot/blacklisted/Camerfirma_Chambers_of_Commerce_Root.pem diff --git a/secure/caroot/trusted/Camerfirma_Global_Chambersign_Root.pem b/secure/caroot/blacklisted/Camerfirma_Global_Chambersign_Root.pem similarity index 100% rename from secure/caroot/trusted/Camerfirma_Global_Chambersign_Root.pem rename to secure/caroot/blacklisted/Camerfirma_Global_Chambersign_Root.pem diff --git a/secure/caroot/trusted/Certum_Root_CA.pem b/secure/caroot/blacklisted/Certum_Root_CA.pem similarity index 100% rename from secure/caroot/trusted/Certum_Root_CA.pem rename to secure/caroot/blacklisted/Certum_Root_CA.pem diff --git a/secure/caroot/trusted/Chambers_of_Commerce_Root_-_2008.pem b/secure/caroot/blacklisted/Chambers_of_Commerce_Root_-_2008.pem similarity index 100% rename from secure/caroot/trusted/Chambers_of_Commerce_Root_-_2008.pem rename to secure/caroot/blacklisted/Chambers_of_Commerce_Root_-_2008.pem diff --git a/secure/caroot/trusted/D-TRUST_Root_CA_3_2013.pem b/secure/caroot/blacklisted/D-TRUST_Root_CA_3_2013.pem similarity index 100% rename from secure/caroot/trusted/D-TRUST_Root_CA_3_2013.pem rename to secure/caroot/blacklisted/D-TRUST_Root_CA_3_2013.pem diff --git a/secure/caroot/trusted/EC-ACC.pem b/secure/caroot/blacklisted/EC-ACC.pem similarity index 100% rename from secure/caroot/trusted/EC-ACC.pem rename to secure/caroot/blacklisted/EC-ACC.pem diff --git a/secure/caroot/trusted/Global_Chambersign_Root_-_2008.pem b/secure/caroot/blacklisted/Global_Chambersign_Root_-_2008.pem similarity index 100% rename from secure/caroot/trusted/Global_Chambersign_Root_-_2008.pem rename to secure/caroot/blacklisted/Global_Chambersign_Root_-_2008.pem diff --git a/secure/caroot/trusted/OISTE_WISeKey_Global_Root_GA_CA.pem b/secure/caroot/blacklisted/OISTE_WISeKey_Global_Root_GA_CA.pem similarity index 100% rename from secure/caroot/trusted/OISTE_WISeKey_Global_Root_GA_CA.pem rename to secure/caroot/blacklisted/OISTE_WISeKey_Global_Root_GA_CA.pem diff --git a/secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G3.pem b/secure/caroot/blacklisted/Staat_der_Nederlanden_Root_CA_-_G3.pem similarity index 100% rename from secure/caroot/trusted/Staat_der_Nederlanden_Root_CA_-_G3.pem rename to secure/caroot/blacklisted/Staat_der_Nederlanden_Root_CA_-_G3.pem diff --git a/secure/caroot/trusted/SwissSign_Platinum_CA_-_G2.pem b/secure/caroot/blacklisted/SwissSign_Platinum_CA_-_G2.pem similarity index 100% rename from secure/caroot/trusted/SwissSign_Platinum_CA_-_G2.pem rename to secure/caroot/blacklisted/SwissSign_Platinum_CA_-_G2.pem diff --git a/secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem b/secure/caroot/blacklisted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem similarity index 100% rename from secure/caroot/trusted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem rename to secure/caroot/blacklisted/Symantec_Class_1_Public_Primary_Certification_Authority_-_G6.pem diff --git a/secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem b/secure/caroot/blacklisted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem similarity index 100% rename from secure/caroot/trusted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem rename to secure/caroot/blacklisted/Symantec_Class_2_Public_Primary_Certification_Authority_-_G6.pem diff --git a/secure/caroot/trusted/Trustis_FPS_Root_CA.pem b/secure/caroot/blacklisted/Trustis_FPS_Root_CA.pem similarity index 100% rename from secure/caroot/trusted/Trustis_FPS_Root_CA.pem rename to secure/caroot/blacklisted/Trustis_FPS_Root_CA.pem diff --git a/secure/caroot/trusted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem b/secure/caroot/blacklisted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem similarity index 100% rename from secure/caroot/trusted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem rename to secure/caroot/blacklisted/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.pem diff --git a/secure/caroot/trusted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem b/secure/caroot/blacklisted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem similarity index 100% rename from secure/caroot/trusted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem rename to secure/caroot/blacklisted/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.pem From owner-dev-commits-src-main@freebsd.org Tue Apr 13 22:00:24 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A8A865EE322; Tue, 13 Apr 2021 22:00:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKffw322Wz3R4P; Tue, 13 Apr 2021 22:00:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4CBE512908; Tue, 13 Apr 2021 22:00:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DM0OIY021858; Tue, 13 Apr 2021 22:00:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DM0Osm021856; Tue, 13 Apr 2021 22:00:24 GMT (envelope-from git) Date: Tue, 13 Apr 2021 22:00:24 GMT Message-Id: <202104132200.13DM0Osm021856@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kyle Evans Subject: git: 3016c5c2bf68 - main - caroot: reroll the remaining certs MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3016c5c2bf68d8c6ebf303939f20092478e7a4ca Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 22:00:24 -0000 The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=3016c5c2bf68d8c6ebf303939f20092478e7a4ca commit 3016c5c2bf68d8c6ebf303939f20092478e7a4ca Author: Kyle Evans AuthorDate: 2021-04-13 21:51:47 +0000 Commit: Kyle Evans CommitDate: 2021-04-13 21:59:34 +0000 caroot: reroll the remaining certs This adds a specific note that these are explicitly trusted for server auth. MFC after: 3 days --- secure/caroot/trusted/ACCVRAIZ1.pem | 2 ++ secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem | 2 ++ secure/caroot/trusted/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem | 2 ++ secure/caroot/trusted/Actalis_Authentication_Root_CA.pem | 2 ++ secure/caroot/trusted/AffirmTrust_Commercial.pem | 2 ++ secure/caroot/trusted/AffirmTrust_Networking.pem | 2 ++ secure/caroot/trusted/AffirmTrust_Premium.pem | 2 ++ secure/caroot/trusted/AffirmTrust_Premium_ECC.pem | 2 ++ secure/caroot/trusted/Amazon_Root_CA_1.pem | 2 ++ secure/caroot/trusted/Amazon_Root_CA_2.pem | 2 ++ secure/caroot/trusted/Amazon_Root_CA_3.pem | 2 ++ secure/caroot/trusted/Amazon_Root_CA_4.pem | 2 ++ secure/caroot/trusted/Atos_TrustedRoot_2011.pem | 2 ++ .../Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem | 2 ++ secure/caroot/trusted/Baltimore_CyberTrust_Root.pem | 2 ++ secure/caroot/trusted/Buypass_Class_2_Root_CA.pem | 2 ++ secure/caroot/trusted/Buypass_Class_3_Root_CA.pem | 2 ++ secure/caroot/trusted/CA_Disig_Root_R2.pem | 2 ++ secure/caroot/trusted/CFCA_EV_ROOT.pem | 2 ++ secure/caroot/trusted/COMODO_Certification_Authority.pem | 2 ++ secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem | 2 ++ secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem | 2 ++ secure/caroot/trusted/Certigna.pem | 2 ++ secure/caroot/trusted/Certigna_Root_CA.pem | 2 ++ secure/caroot/trusted/Certum_Trusted_Network_CA.pem | 2 ++ secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem | 2 ++ secure/caroot/trusted/Comodo_AAA_Services_root.pem | 2 ++ secure/caroot/trusted/Cybertrust_Global_Root.pem | 2 ++ secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem | 2 ++ secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem | 2 ++ secure/caroot/trusted/DST_Root_CA_X3.pem | 2 ++ secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem | 2 ++ secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem | 2 ++ secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem | 2 ++ secure/caroot/trusted/DigiCert_Global_Root_CA.pem | 2 ++ secure/caroot/trusted/DigiCert_Global_Root_G2.pem | 2 ++ secure/caroot/trusted/DigiCert_Global_Root_G3.pem | 2 ++ secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem | 2 ++ secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem | 2 ++ secure/caroot/trusted/E-Tugra_Certification_Authority.pem | 2 ++ secure/caroot/trusted/Entrust_Root_Certification_Authority.pem | 2 ++ secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem | 2 ++ secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem | 2 ++ secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem | 2 ++ secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem | 2 ++ secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem | 2 ++ secure/caroot/trusted/GTS_Root_R1.pem | 2 ++ secure/caroot/trusted/GTS_Root_R2.pem | 2 ++ secure/caroot/trusted/GTS_Root_R3.pem | 2 ++ secure/caroot/trusted/GTS_Root_R4.pem | 2 ++ secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem | 2 ++ secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem | 2 ++ secure/caroot/trusted/GlobalSign_Root_CA.pem | 2 ++ secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem | 2 ++ secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem | 2 ++ secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem | 2 ++ secure/caroot/trusted/GlobalSign_Root_E46.pem | 2 ++ secure/caroot/trusted/GlobalSign_Root_R46.pem | 2 ++ secure/caroot/trusted/Go_Daddy_Class_2_CA.pem | 2 ++ secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem | 2 ++ .../Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem | 2 ++ .../trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem | 2 ++ .../trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem | 2 ++ secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem | 2 ++ secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem | 2 ++ secure/caroot/trusted/ISRG_Root_X1.pem | 2 ++ secure/caroot/trusted/IdenTrust_Commercial_Root_CA_1.pem | 2 ++ secure/caroot/trusted/IdenTrust_Public_Sector_Root_CA_1.pem | 2 ++ secure/caroot/trusted/Izenpe_com.pem | 2 ++ secure/caroot/trusted/Microsec_e-Szigno_Root_CA_2009.pem | 2 ++ secure/caroot/trusted/Microsoft_ECC_Root_Certificate_Authority_2017.pem | 2 ++ secure/caroot/trusted/Microsoft_RSA_Root_Certificate_Authority_2017.pem | 2 ++ secure/caroot/trusted/NAVER_Global_Root_Certification_Authority.pem | 2 ++ secure/caroot/trusted/NetLock_Arany__Class_Gold__F__tan__s__tv__ny.pem | 2 ++ secure/caroot/trusted/Network_Solutions_Certificate_Authority.pem | 2 ++ secure/caroot/trusted/OISTE_WISeKey_Global_Root_GB_CA.pem | 2 ++ secure/caroot/trusted/OISTE_WISeKey_Global_Root_GC_CA.pem | 2 ++ secure/caroot/trusted/QuoVadis_Root_CA.pem | 2 ++ secure/caroot/trusted/QuoVadis_Root_CA_1_G3.pem | 2 ++ secure/caroot/trusted/QuoVadis_Root_CA_2.pem | 2 ++ secure/caroot/trusted/QuoVadis_Root_CA_2_G3.pem | 2 ++ secure/caroot/trusted/QuoVadis_Root_CA_3.pem | 2 ++ secure/caroot/trusted/QuoVadis_Root_CA_3_G3.pem | 2 ++ secure/caroot/trusted/SSL_com_EV_Root_Certification_Authority_ECC.pem | 2 ++ .../caroot/trusted/SSL_com_EV_Root_Certification_Authority_RSA_R2.pem | 2 ++ secure/caroot/trusted/SSL_com_Root_Certification_Authority_ECC.pem | 2 ++ secure/caroot/trusted/SSL_com_Root_Certification_Authority_RSA.pem | 2 ++ secure/caroot/trusted/SZAFIR_ROOT_CA2.pem | 2 ++ secure/caroot/trusted/SecureSign_RootCA11.pem | 2 ++ secure/caroot/trusted/SecureTrust_CA.pem | 2 ++ secure/caroot/trusted/Secure_Global_CA.pem | 2 ++ secure/caroot/trusted/Security_Communication_RootCA2.pem | 2 ++ secure/caroot/trusted/Security_Communication_Root_CA.pem | 2 ++ secure/caroot/trusted/Sonera_Class_2_Root_CA.pem | 2 ++ secure/caroot/trusted/Staat_der_Nederlanden_EV_Root_CA.pem | 2 ++ secure/caroot/trusted/Starfield_Class_2_CA.pem | 2 ++ secure/caroot/trusted/Starfield_Root_Certificate_Authority_-_G2.pem | 2 ++ .../trusted/Starfield_Services_Root_Certificate_Authority_-_G2.pem | 2 ++ secure/caroot/trusted/SwissSign_Gold_CA_-_G2.pem | 2 ++ secure/caroot/trusted/SwissSign_Silver_CA_-_G2.pem | 2 ++ secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_2.pem | 2 ++ secure/caroot/trusted/T-TeleSec_GlobalRoot_Class_3.pem | 2 ++ secure/caroot/trusted/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem | 2 ++ secure/caroot/trusted/TWCA_Global_Root_CA.pem | 2 ++ secure/caroot/trusted/TWCA_Root_Certification_Authority.pem | 2 ++ secure/caroot/trusted/TeliaSonera_Root_CA_v1.pem | 2 ++ secure/caroot/trusted/TrustCor_ECA-1.pem | 2 ++ secure/caroot/trusted/TrustCor_RootCert_CA-1.pem | 2 ++ secure/caroot/trusted/TrustCor_RootCert_CA-2.pem | 2 ++ secure/caroot/trusted/Trustwave_Global_Certification_Authority.pem | 2 ++ .../trusted/Trustwave_Global_ECC_P256_Certification_Authority.pem | 2 ++ .../trusted/Trustwave_Global_ECC_P384_Certification_Authority.pem | 2 ++ secure/caroot/trusted/UCA_Extended_Validation_Root.pem | 2 ++ secure/caroot/trusted/UCA_Global_G2_Root.pem | 2 ++ secure/caroot/trusted/USERTrust_ECC_Certification_Authority.pem | 2 ++ secure/caroot/trusted/USERTrust_RSA_Certification_Authority.pem | 2 ++ secure/caroot/trusted/XRamp_Global_CA_Root.pem | 2 ++ secure/caroot/trusted/certSIGN_ROOT_CA.pem | 2 ++ secure/caroot/trusted/certSIGN_Root_CA_G2.pem | 2 ++ secure/caroot/trusted/e-Szigno_Root_CA_2017.pem | 2 ++ secure/caroot/trusted/ePKI_Root_Certification_Authority.pem | 2 ++ secure/caroot/trusted/emSign_ECC_Root_CA_-_C3.pem | 2 ++ secure/caroot/trusted/emSign_ECC_Root_CA_-_G3.pem | 2 ++ secure/caroot/trusted/emSign_Root_CA_-_C1.pem | 2 ++ secure/caroot/trusted/emSign_Root_CA_-_G1.pem | 2 ++ 125 files changed, 250 insertions(+) diff --git a/secure/caroot/trusted/ACCVRAIZ1.pem b/secure/caroot/trusted/ACCVRAIZ1.pem index 0c7c7c41b57d..1c96e53b8f17 100644 --- a/secure/caroot/trusted/ACCVRAIZ1.pem +++ b/secure/caroot/trusted/ACCVRAIZ1.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem b/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem index 579f50d8d730..6a64be5ce138 100644 --- a/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem +++ b/secure/caroot/trusted/AC_RAIZ_FNMT-RCM.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem b/secure/caroot/trusted/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem index 21d2c4f13bc6..71ee49574e84 100644 --- a/secure/caroot/trusted/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem +++ b/secure/caroot/trusted/AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem b/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem index 7248545350e2..7c971e1229a2 100644 --- a/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem +++ b/secure/caroot/trusted/Actalis_Authentication_Root_CA.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/AffirmTrust_Commercial.pem b/secure/caroot/trusted/AffirmTrust_Commercial.pem index 1d85c32853c8..282d1a5dcf6f 100644 --- a/secure/caroot/trusted/AffirmTrust_Commercial.pem +++ b/secure/caroot/trusted/AffirmTrust_Commercial.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/AffirmTrust_Networking.pem b/secure/caroot/trusted/AffirmTrust_Networking.pem index 222bde26c934..830cf3f0c3c2 100644 --- a/secure/caroot/trusted/AffirmTrust_Networking.pem +++ b/secure/caroot/trusted/AffirmTrust_Networking.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/AffirmTrust_Premium.pem b/secure/caroot/trusted/AffirmTrust_Premium.pem index dc1447429465..725747aafdaf 100644 --- a/secure/caroot/trusted/AffirmTrust_Premium.pem +++ b/secure/caroot/trusted/AffirmTrust_Premium.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem b/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem index a6f01409a2ef..6fe75939863e 100644 --- a/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem +++ b/secure/caroot/trusted/AffirmTrust_Premium_ECC.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Amazon_Root_CA_1.pem b/secure/caroot/trusted/Amazon_Root_CA_1.pem index 6bf1acafd4c7..2aca2eee3e9b 100644 --- a/secure/caroot/trusted/Amazon_Root_CA_1.pem +++ b/secure/caroot/trusted/Amazon_Root_CA_1.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Amazon_Root_CA_2.pem b/secure/caroot/trusted/Amazon_Root_CA_2.pem index 80a1eb66bee2..95ca81db30bb 100644 --- a/secure/caroot/trusted/Amazon_Root_CA_2.pem +++ b/secure/caroot/trusted/Amazon_Root_CA_2.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Amazon_Root_CA_3.pem b/secure/caroot/trusted/Amazon_Root_CA_3.pem index 6b61b3e18fa0..294f7dc8f0b6 100644 --- a/secure/caroot/trusted/Amazon_Root_CA_3.pem +++ b/secure/caroot/trusted/Amazon_Root_CA_3.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Amazon_Root_CA_4.pem b/secure/caroot/trusted/Amazon_Root_CA_4.pem index df7aa6f1c165..649917b9638a 100644 --- a/secure/caroot/trusted/Amazon_Root_CA_4.pem +++ b/secure/caroot/trusted/Amazon_Root_CA_4.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Atos_TrustedRoot_2011.pem b/secure/caroot/trusted/Atos_TrustedRoot_2011.pem index 21b229561733..7058d3fb6edf 100644 --- a/secure/caroot/trusted/Atos_TrustedRoot_2011.pem +++ b/secure/caroot/trusted/Atos_TrustedRoot_2011.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem b/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem index 4d2eaa61962f..db4f44195dbd 100644 --- a/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem +++ b/secure/caroot/trusted/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem b/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem index 3dc1de849346..0f356d59962f 100644 --- a/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem +++ b/secure/caroot/trusted/Baltimore_CyberTrust_Root.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem b/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem index dc2c86edbed1..0168f641fd42 100644 --- a/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem +++ b/secure/caroot/trusted/Buypass_Class_2_Root_CA.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem b/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem index fda39f8731d1..7ae24799e638 100644 --- a/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem +++ b/secure/caroot/trusted/Buypass_Class_3_Root_CA.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/CA_Disig_Root_R2.pem b/secure/caroot/trusted/CA_Disig_Root_R2.pem index 0ecc9d1ee08d..0dda6d97e2aa 100644 --- a/secure/caroot/trusted/CA_Disig_Root_R2.pem +++ b/secure/caroot/trusted/CA_Disig_Root_R2.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/CFCA_EV_ROOT.pem b/secure/caroot/trusted/CFCA_EV_ROOT.pem index 7eb37baa3bed..722499b9ed42 100644 --- a/secure/caroot/trusted/CFCA_EV_ROOT.pem +++ b/secure/caroot/trusted/CFCA_EV_ROOT.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/COMODO_Certification_Authority.pem b/secure/caroot/trusted/COMODO_Certification_Authority.pem index 7aa1237bb8e1..fc3e4b554cc3 100644 --- a/secure/caroot/trusted/COMODO_Certification_Authority.pem +++ b/secure/caroot/trusted/COMODO_Certification_Authority.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem b/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem index 215581b14fdf..5f839a858d00 100644 --- a/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem +++ b/secure/caroot/trusted/COMODO_ECC_Certification_Authority.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem b/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem index 38e275f1365e..7faefe98b8bf 100644 --- a/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem +++ b/secure/caroot/trusted/COMODO_RSA_Certification_Authority.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Certigna.pem b/secure/caroot/trusted/Certigna.pem index bbcd413be511..e9104ef6c3da 100644 --- a/secure/caroot/trusted/Certigna.pem +++ b/secure/caroot/trusted/Certigna.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Certigna_Root_CA.pem b/secure/caroot/trusted/Certigna_Root_CA.pem index c1a0286ab2a0..a0a7248b51ea 100644 --- a/secure/caroot/trusted/Certigna_Root_CA.pem +++ b/secure/caroot/trusted/Certigna_Root_CA.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Certum_Trusted_Network_CA.pem b/secure/caroot/trusted/Certum_Trusted_Network_CA.pem index a321445a502c..5f92008a47ab 100644 --- a/secure/caroot/trusted/Certum_Trusted_Network_CA.pem +++ b/secure/caroot/trusted/Certum_Trusted_Network_CA.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem b/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem index 62cee7fc2058..8dcc08c17b07 100644 --- a/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem +++ b/secure/caroot/trusted/Certum_Trusted_Network_CA_2.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Comodo_AAA_Services_root.pem b/secure/caroot/trusted/Comodo_AAA_Services_root.pem index 3ab5ce74bc37..b74de8633a65 100644 --- a/secure/caroot/trusted/Comodo_AAA_Services_root.pem +++ b/secure/caroot/trusted/Comodo_AAA_Services_root.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Cybertrust_Global_Root.pem b/secure/caroot/trusted/Cybertrust_Global_Root.pem index b6261df7f2df..b780a314ccd1 100644 --- a/secure/caroot/trusted/Cybertrust_Global_Root.pem +++ b/secure/caroot/trusted/Cybertrust_Global_Root.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem b/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem index 37b0f004ef94..5d2077a83e4c 100644 --- a/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem +++ b/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_2009.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem b/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem index 71d0f7fc323f..d70caff62777 100644 --- a/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem +++ b/secure/caroot/trusted/D-TRUST_Root_Class_3_CA_2_EV_2009.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/DST_Root_CA_X3.pem b/secure/caroot/trusted/DST_Root_CA_X3.pem index aeaa167d590c..8cb0d1c990db 100644 --- a/secure/caroot/trusted/DST_Root_CA_X3.pem +++ b/secure/caroot/trusted/DST_Root_CA_X3.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem b/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem index 12ce54725012..517dab4f837a 100644 --- a/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem +++ b/secure/caroot/trusted/DigiCert_Assured_ID_Root_CA.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem b/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem index 7c5d96a053e4..3739c66f53eb 100644 --- a/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem +++ b/secure/caroot/trusted/DigiCert_Assured_ID_Root_G2.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem b/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem index 901c33448725..ee8a53c317d0 100644 --- a/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem +++ b/secure/caroot/trusted/DigiCert_Assured_ID_Root_G3.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/DigiCert_Global_Root_CA.pem b/secure/caroot/trusted/DigiCert_Global_Root_CA.pem index 75c9fd45ebab..cc0b5a3e7630 100644 --- a/secure/caroot/trusted/DigiCert_Global_Root_CA.pem +++ b/secure/caroot/trusted/DigiCert_Global_Root_CA.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/DigiCert_Global_Root_G2.pem b/secure/caroot/trusted/DigiCert_Global_Root_G2.pem index 363d93b2c9ac..3775aa16ce1b 100644 --- a/secure/caroot/trusted/DigiCert_Global_Root_G2.pem +++ b/secure/caroot/trusted/DigiCert_Global_Root_G2.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/DigiCert_Global_Root_G3.pem b/secure/caroot/trusted/DigiCert_Global_Root_G3.pem index 45776f544654..650cbb7ce8e2 100644 --- a/secure/caroot/trusted/DigiCert_Global_Root_G3.pem +++ b/secure/caroot/trusted/DigiCert_Global_Root_G3.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem b/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem index d76acb3c3896..45bcd8a2be14 100644 --- a/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem +++ b/secure/caroot/trusted/DigiCert_High_Assurance_EV_Root_CA.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem b/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem index 7ebb30081d81..26d81069d1a8 100644 --- a/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem +++ b/secure/caroot/trusted/DigiCert_Trusted_Root_G4.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/E-Tugra_Certification_Authority.pem b/secure/caroot/trusted/E-Tugra_Certification_Authority.pem index 04d1e630a816..1f5aa1a16a84 100644 --- a/secure/caroot/trusted/E-Tugra_Certification_Authority.pem +++ b/secure/caroot/trusted/E-Tugra_Certification_Authority.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem b/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem index 50b0d2ed5c94..c33759f08280 100644 --- a/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem +++ b/secure/caroot/trusted/Entrust_Root_Certification_Authority.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem b/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem index eb15c3801be6..ad40a3142c9a 100644 --- a/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem +++ b/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_EC1.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem b/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem index b92fd4aef90f..d3f94f45a7e7 100644 --- a/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem +++ b/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G2.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem b/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem index 8443ae5ca195..1bf2c8b128b3 100644 --- a/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem +++ b/secure/caroot/trusted/Entrust_Root_Certification_Authority_-_G4.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem b/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem index b429d96786ea..3f6795a51478 100644 --- a/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem +++ b/secure/caroot/trusted/Entrust_net_Premium_2048_Secure_Server_CA.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem b/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem index f9db5d422b8e..0936e508d0da 100644 --- a/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem +++ b/secure/caroot/trusted/GDCA_TrustAUTH_R5_ROOT.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GTS_Root_R1.pem b/secure/caroot/trusted/GTS_Root_R1.pem index 9abe191b9bb9..deb77731627f 100644 --- a/secure/caroot/trusted/GTS_Root_R1.pem +++ b/secure/caroot/trusted/GTS_Root_R1.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GTS_Root_R2.pem b/secure/caroot/trusted/GTS_Root_R2.pem index 8c5f92d1e610..8660b40deb91 100644 --- a/secure/caroot/trusted/GTS_Root_R2.pem +++ b/secure/caroot/trusted/GTS_Root_R2.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GTS_Root_R3.pem b/secure/caroot/trusted/GTS_Root_R3.pem index d621d3053df1..82c9a6ea5ab0 100644 --- a/secure/caroot/trusted/GTS_Root_R3.pem +++ b/secure/caroot/trusted/GTS_Root_R3.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GTS_Root_R4.pem b/secure/caroot/trusted/GTS_Root_R4.pem index 5a7a71764294..6986518db309 100644 --- a/secure/caroot/trusted/GTS_Root_R4.pem +++ b/secure/caroot/trusted/GTS_Root_R4.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem b/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem index c63f8d8c441a..6263dcb9435e 100644 --- a/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem +++ b/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem b/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem index 7a989c4577d8..c95e7a2cf92f 100644 --- a/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem +++ b/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R5.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GlobalSign_Root_CA.pem b/secure/caroot/trusted/GlobalSign_Root_CA.pem index 0e2348e6c4f1..1fc32ec982e3 100644 --- a/secure/caroot/trusted/GlobalSign_Root_CA.pem +++ b/secure/caroot/trusted/GlobalSign_Root_CA.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem b/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem index 616fe024937a..c9b9c9282c19 100644 --- a/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem +++ b/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem b/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem index aedb37900191..f55b379232f2 100644 --- a/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem +++ b/secure/caroot/trusted/GlobalSign_Root_CA_-_R3.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem b/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem index 112aaf7fde17..b67daf31ec2b 100644 --- a/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem +++ b/secure/caroot/trusted/GlobalSign_Root_CA_-_R6.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GlobalSign_Root_E46.pem b/secure/caroot/trusted/GlobalSign_Root_E46.pem index c353dba208db..7624755d4b73 100644 --- a/secure/caroot/trusted/GlobalSign_Root_E46.pem +++ b/secure/caroot/trusted/GlobalSign_Root_E46.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/GlobalSign_Root_R46.pem b/secure/caroot/trusted/GlobalSign_Root_R46.pem index de107cd328c4..a016caba6051 100644 --- a/secure/caroot/trusted/GlobalSign_Root_R46.pem +++ b/secure/caroot/trusted/GlobalSign_Root_R46.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem b/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem index 5083a0fcf21d..0d91c61331e8 100644 --- a/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem +++ b/secure/caroot/trusted/Go_Daddy_Class_2_CA.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem b/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem index 38fa9af7f743..3167a2899903 100644 --- a/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem +++ b/secure/caroot/trusted/Go_Daddy_Root_Certificate_Authority_-_G2.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem b/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem index ebc5b8dc0ded..54eab928224b 100644 --- a/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem +++ b/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem b/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem index 1c068806509a..827d7b869e60 100644 --- a/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem +++ b/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem b/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem index afbe3afa1795..ff99fb9a56fc 100644 --- a/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem +++ b/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem b/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem index 82b079da64e0..29327389967c 100644 --- a/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem +++ b/secure/caroot/trusted/Hongkong_Post_Root_CA_1.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss ## with $FreeBSD$ ## diff --git a/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem b/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem index 5f5a5883ed80..8cc741f758de 100644 --- a/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem +++ b/secure/caroot/trusted/Hongkong_Post_Root_CA_3.pem @@ -5,6 +5,8 @@ ## Authority (CA). It was automatically extracted from Mozilla's ## root CA list (the file `certdata.txt' in security/nss). ## +## It contains a certificate trusted for server authentication. +## ## Extracted from nss *** 782 LINES SKIPPED *** From owner-dev-commits-src-main@freebsd.org Tue Apr 13 23:02:42 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 456265EFD5C; Tue, 13 Apr 2021 23:02:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKh2p1DNwz3kkN; Tue, 13 Apr 2021 23:02:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 08ED1134E9; Tue, 13 Apr 2021 23:02:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DN2fch006076; Tue, 13 Apr 2021 23:02:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DN2fCV006075; Tue, 13 Apr 2021 23:02:41 GMT (envelope-from git) Date: Tue, 13 Apr 2021 23:02:41 GMT Message-Id: <202104132302.13DN2fCV006075@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Tai-hwa Liang Subject: git: d9b61e7153c6 - main - if_firewire: fixing panic upon packet reception for VNET build MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: avatar X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d9b61e7153c64b141436b4d9619b166c6d35a0a6 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 23:02:42 -0000 The branch main has been updated by avatar: URL: https://cgit.FreeBSD.org/src/commit/?id=d9b61e7153c64b141436b4d9619b166c6d35a0a6 commit d9b61e7153c64b141436b4d9619b166c6d35a0a6 Author: Tai-hwa Liang AuthorDate: 2021-04-10 15:32:27 +0000 Commit: Tai-hwa Liang CommitDate: 2021-04-13 22:59:58 +0000 if_firewire: fixing panic upon packet reception for VNET build netisr_dispatch_src() needs valid VNET pointer or firewire_input() will panic when receiving a packet. Reviewed by: glebius MFC after: 2 weeks --- sys/net/if_fwsubr.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/net/if_fwsubr.c b/sys/net/if_fwsubr.c index d6296bf33b65..29ca2f713e8e 100644 --- a/sys/net/if_fwsubr.c +++ b/sys/net/if_fwsubr.c @@ -634,7 +634,9 @@ firewire_input(struct ifnet *ifp, struct mbuf *m, uint16_t src) } M_SETFIB(m, ifp->if_fib); + CURVNET_SET_QUIET(ifp->if_vnet); netisr_dispatch(isr, m); + CURVNET_RESTORE(); } int From owner-dev-commits-src-main@freebsd.org Tue Apr 13 23:02:43 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2F0165EFF5A; Tue, 13 Apr 2021 23:02:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKh2q0tMqz3kvP; Tue, 13 Apr 2021 23:02:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1091E134EB; Tue, 13 Apr 2021 23:02:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DN2g2n006097; Tue, 13 Apr 2021 23:02:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DN2g45006096; Tue, 13 Apr 2021 23:02:42 GMT (envelope-from git) Date: Tue, 13 Apr 2021 23:02:42 GMT Message-Id: <202104132302.13DN2g45006096@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Tai-hwa Liang Subject: git: a0d6d0d0b9ab - main - arp(8): fixing the deletion failure of IEEE1394 associated addresses MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: avatar X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a0d6d0d0b9aba6d4c025b2f2807e7c4b4c4b2415 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 23:02:43 -0000 The branch main has been updated by avatar: URL: https://cgit.FreeBSD.org/src/commit/?id=a0d6d0d0b9aba6d4c025b2f2807e7c4b4c4b2415 commit a0d6d0d0b9aba6d4c025b2f2807e7c4b4c4b2415 Author: Tai-hwa Liang AuthorDate: 2021-04-12 06:27:03 +0000 Commit: Tai-hwa Liang CommitDate: 2021-04-13 22:59:58 +0000 arp(8): fixing the deletion failure of IEEE1394 associated addresses Without this, 'arp -d ${IEEE1394_ADDRESS}' gives the following error: arp: delete: cannot locate 10.0.0.71 Reviewed by: glebius MFC after: 2 weeks --- usr.sbin/arp/arp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/usr.sbin/arp/arp.c b/usr.sbin/arp/arp.c index 08698c7bc299..f018baa2679e 100644 --- a/usr.sbin/arp/arp.c +++ b/usr.sbin/arp/arp.c @@ -299,6 +299,7 @@ valid_type(int type) switch (type) { case IFT_ETHER: case IFT_FDDI: + case IFT_IEEE1394: case IFT_INFINIBAND: case IFT_ISO88023: case IFT_ISO88024: From owner-dev-commits-src-main@freebsd.org Tue Apr 13 23:32:00 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 695575F07EC; Tue, 13 Apr 2021 23:32:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKhhc2bPHz3m80; Tue, 13 Apr 2021 23:32:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BEF313A54; Tue, 13 Apr 2021 23:32:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13DNW0SP042188; Tue, 13 Apr 2021 23:32:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13DNW0aR042187; Tue, 13 Apr 2021 23:32:00 GMT (envelope-from git) Date: Tue, 13 Apr 2021 23:32:00 GMT Message-Id: <202104132332.13DNW0aR042187@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 774c4c82ff72 - main - TOE: Use a read lock on the PCB for syncache_add(). MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 774c4c82ff72558182d14908d698bac8578adfaa Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 23:32:00 -0000 The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=774c4c82ff72558182d14908d698bac8578adfaa commit 774c4c82ff72558182d14908d698bac8578adfaa Author: John Baldwin AuthorDate: 2021-04-13 23:31:04 +0000 Commit: John Baldwin CommitDate: 2021-04-13 23:31:04 +0000 TOE: Use a read lock on the PCB for syncache_add(). Reviewed by: np, glebius Fixes: 08d9c9202755a30f97617758595214a530afcaea Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D29739 --- sys/dev/cxgbe/tom/t4_listen.c | 10 +++++----- sys/netinet/toecore.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/dev/cxgbe/tom/t4_listen.c b/sys/dev/cxgbe/tom/t4_listen.c index 9cf527925fcc..0245acfe005b 100644 --- a/sys/dev/cxgbe/tom/t4_listen.c +++ b/sys/dev/cxgbe/tom/t4_listen.c @@ -643,7 +643,7 @@ alloc_synqe(struct adapter *sc __unused, struct listen_ctx *lctx, int flags) { struct synq_entry *synqe; - INP_WLOCK_ASSERT(lctx->inp); + INP_RLOCK_ASSERT(lctx->inp); MPASS(flags == M_WAITOK || flags == M_NOWAIT); synqe = malloc(sizeof(*synqe), M_CXGBE, flags); @@ -1323,11 +1323,11 @@ found: } inp = lctx->inp; /* listening socket, not owned by TOE */ - INP_WLOCK(inp); + INP_RLOCK(inp); /* Don't offload if the listening socket has closed */ if (__predict_false(inp->inp_flags & INP_DROPPED)) { - INP_WUNLOCK(inp); + INP_RUNLOCK(inp); NET_EPOCH_EXIT(et); REJECT_PASS_ACCEPT_REQ(false); } @@ -1337,14 +1337,14 @@ found: EVL_MAKETAG(0xfff, 0, 0), inp); rw_runlock(&sc->policy_lock); if (!settings.offload) { - INP_WUNLOCK(inp); + INP_RUNLOCK(inp); NET_EPOCH_EXIT(et); REJECT_PASS_ACCEPT_REQ(true); /* Rejected by COP. */ } synqe = alloc_synqe(sc, lctx, M_NOWAIT); if (synqe == NULL) { - INP_WUNLOCK(inp); + INP_RUNLOCK(inp); NET_EPOCH_EXIT(et); REJECT_PASS_ACCEPT_REQ(true); } diff --git a/sys/netinet/toecore.c b/sys/netinet/toecore.c index f602319ef701..480aa64c1bf7 100644 --- a/sys/netinet/toecore.c +++ b/sys/netinet/toecore.c @@ -349,7 +349,7 @@ toe_syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, struct inpcb *inp, void *tod, void *todctx, uint8_t iptos) { - INP_WLOCK_ASSERT(inp); + INP_RLOCK_ASSERT(inp); (void )syncache_add(inc, to, th, inp, inp->inp_socket, NULL, tod, todctx, iptos); From owner-dev-commits-src-main@freebsd.org Wed Apr 14 00:04:58 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C62AD5F16DF; Wed, 14 Apr 2021 00:04:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKjQf5H4jz3nG9; Wed, 14 Apr 2021 00:04:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A3E071430B; Wed, 14 Apr 2021 00:04:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13E04wR7085873; Wed, 14 Apr 2021 00:04:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13E04wls085872; Wed, 14 Apr 2021 00:04:58 GMT (envelope-from git) Date: Wed, 14 Apr 2021 00:04:58 GMT Message-Id: <202104140004.13E04wls085872@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Navdeep Parhar Subject: git: d107ee06f3e3 - main - cxgbe(4): RSS hash for VXLAN traffic is computed from the inner frame. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: np X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d107ee06f3e3c15fe119ea01b120d11bf87ef9f0 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 00:04:58 -0000 The branch main has been updated by np: URL: https://cgit.FreeBSD.org/src/commit/?id=d107ee06f3e3c15fe119ea01b120d11bf87ef9f0 commit d107ee06f3e3c15fe119ea01b120d11bf87ef9f0 Author: Navdeep Parhar AuthorDate: 2021-04-13 23:50:12 +0000 Commit: Navdeep Parhar CommitDate: 2021-04-13 23:50:12 +0000 cxgbe(4): RSS hash for VXLAN traffic is computed from the inner frame. Sponsored by: Chelsio Communications --- sys/dev/cxgbe/t4_sge.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/dev/cxgbe/t4_sge.c b/sys/dev/cxgbe/t4_sge.c index 2c7e8f348331..68b5ed812096 100644 --- a/sys/dev/cxgbe/t4_sge.c +++ b/sys/dev/cxgbe/t4_sge.c @@ -2072,6 +2072,8 @@ have_mbuf: rxq->rxcsum++; } else { MPASS(tnl_type == RX_PKT_TNL_TYPE_VXLAN); + + M_HASHTYPE_SETINNER(m0); if (__predict_false(cpl->ip_frag)) { /* * csum_data is for the inner frame (which is an From owner-dev-commits-src-main@freebsd.org Wed Apr 14 00:58:56 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 50DBA5F4069; Wed, 14 Apr 2021 00:58:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKkcw1wkDz3rSV; Wed, 14 Apr 2021 00:58:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 304BA14D82; Wed, 14 Apr 2021 00:58:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13E0wuCc051561; Wed, 14 Apr 2021 00:58:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13E0wu17051560; Wed, 14 Apr 2021 00:58:56 GMT (envelope-from git) Date: Wed, 14 Apr 2021 00:58:56 GMT Message-Id: <202104140058.13E0wu17051560@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Vladimir Kondratyev Subject: git: fb451895fba7 - main - ichsmb: Add PCI ID for Intel Gemini Lake SMBus controller MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fb451895fba7dee139594c722adb5f79af154341 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 00:58:56 -0000 The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=fb451895fba7dee139594c722adb5f79af154341 commit fb451895fba7dee139594c722adb5f79af154341 Author: Vladimir Kondratyev AuthorDate: 2021-04-13 22:10:13 +0000 Commit: Vladimir Kondratyev CommitDate: 2021-04-14 00:58:07 +0000 ichsmb: Add PCI ID for Intel Gemini Lake SMBus controller Submitted by: Dmitry Luhtionov MFC after: 2 weeks --- sys/dev/ichsmb/ichsmb_pci.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/dev/ichsmb/ichsmb_pci.c b/sys/dev/ichsmb/ichsmb_pci.c index ff4b287dd020..51049643ae15 100644 --- a/sys/dev/ichsmb/ichsmb_pci.c +++ b/sys/dev/ichsmb/ichsmb_pci.c @@ -109,6 +109,7 @@ __FBSDID("$FreeBSD$"); #define ID_COMETLAKE2 0x06a3 #define ID_TIGERLAKE 0xa0a3 #define ID_TIGERLAKE2 0x43a3 +#define ID_GEMINILAKE 0x31d4 static const struct pci_device_table ichsmb_devices[] = { { PCI_DEV(PCI_VENDOR_INTEL, ID_82801AA), @@ -199,6 +200,8 @@ static const struct pci_device_table ichsmb_devices[] = { PCI_DESCR("Intel Tiger Lake SMBus controller") }, { PCI_DEV(PCI_VENDOR_INTEL, ID_TIGERLAKE2), PCI_DESCR("Intel Tiger Lake SMBus controller") }, + { PCI_DEV(PCI_VENDOR_INTEL, ID_GEMINILAKE), + PCI_DESCR("Intel Gemini Lake SMBus controller") }, }; /* Internal functions */ From owner-dev-commits-src-main@freebsd.org Wed Apr 14 07:24:35 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3AB025CCD16; Wed, 14 Apr 2021 07:24:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKv9v19hKz4fdV; Wed, 14 Apr 2021 07:24:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1B28219DA1; Wed, 14 Apr 2021 07:24:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13E7OZ5Q067565; Wed, 14 Apr 2021 07:24:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13E7OZFF067564; Wed, 14 Apr 2021 07:24:35 GMT (envelope-from git) Date: Wed, 14 Apr 2021 07:24:35 GMT Message-Id: <202104140724.13E7OZFF067564@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 116f26f947b8 - main - sbuf_uionew(): sbuf_new() takes int as length MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 116f26f947b8bbf868dcd85d79226406029a45ee Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 07:24:35 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=116f26f947b8bbf868dcd85d79226406029a45ee commit 116f26f947b8bbf868dcd85d79226406029a45ee Author: Konstantin Belousov AuthorDate: 2021-04-13 19:12:19 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-14 07:23:20 +0000 sbuf_uionew(): sbuf_new() takes int as length and length should be not less than SBUF_MINSIZE Reported and tested by: pho Noted and reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29752 --- sys/kern/subr_sbuf.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/kern/subr_sbuf.c b/sys/kern/subr_sbuf.c index cdeaf690208f..b7f135e81206 100644 --- a/sys/kern/subr_sbuf.c +++ b/sys/kern/subr_sbuf.c @@ -266,6 +266,10 @@ sbuf_uionew(struct sbuf *s, struct uio *uio, int *error) KASSERT(error != NULL, ("%s called with NULL error pointer", __func__)); + if (uio->uio_resid >= INT_MAX || uio->uio_resid < SBUF_MINSIZE - 1) { + *error = EINVAL; + return (NULL); + } s = sbuf_new(s, NULL, uio->uio_resid + 1, 0); if (s == NULL) { *error = ENOMEM; From owner-dev-commits-src-main@freebsd.org Wed Apr 14 07:24:36 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 74C135CC7F2; Wed, 14 Apr 2021 07:24:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKv9w2S16z4fdb; Wed, 14 Apr 2021 07:24:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 41DE219F99; Wed, 14 Apr 2021 07:24:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13E7OaGm067593; Wed, 14 Apr 2021 07:24:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13E7OaGj067592; Wed, 14 Apr 2021 07:24:36 GMT (envelope-from git) Date: Wed, 14 Apr 2021 07:24:36 GMT Message-Id: <202104140724.13E7OaGj067592@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 5edf7227ec33 - main - pseudofs: limit writes to 1M MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5edf7227ec339f651c7328e63df323f6ef10345f Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 07:24:36 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=5edf7227ec339f651c7328e63df323f6ef10345f commit 5edf7227ec339f651c7328e63df323f6ef10345f Author: Konstantin Belousov AuthorDate: 2021-04-13 19:48:44 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-14 07:23:21 +0000 pseudofs: limit writes to 1M Noted and reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29752 --- sys/fs/pseudofs/pseudofs_vnops.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/fs/pseudofs/pseudofs_vnops.c b/sys/fs/pseudofs/pseudofs_vnops.c index e386ceba71f8..29bb1544e7ad 100644 --- a/sys/fs/pseudofs/pseudofs_vnops.c +++ b/sys/fs/pseudofs/pseudofs_vnops.c @@ -1102,6 +1102,9 @@ pfs_write(struct vop_write_args *va) if (pn->pn_fill == NULL) PFS_RETURN (EIO); + if (uio->uio_resid > PFS_MAXBUFSIZ) + PFS_RETURN (EIO); + /* * This is necessary because either process' privileges may * have changed since the open() call. From owner-dev-commits-src-main@freebsd.org Wed Apr 14 07:59:13 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 809D15CD3F3; Wed, 14 Apr 2021 07:59:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKvxs3BGjz4h5f; Wed, 14 Apr 2021 07:59:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 51CD81A523; Wed, 14 Apr 2021 07:59:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13E7xDMn007258; Wed, 14 Apr 2021 07:59:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13E7xDZ9007257; Wed, 14 Apr 2021 07:59:13 GMT (envelope-from git) Date: Wed, 14 Apr 2021 07:59:13 GMT Message-Id: <202104140759.13E7xDZ9007257@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 5cc1d199412e - main - realtimer_expire: avoid proc lock recursion when called from itimer_proc_continue() MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5cc1d199412ead0b4c234e21e881a31ef893a4f0 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 07:59:13 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=5cc1d199412ead0b4c234e21e881a31ef893a4f0 commit 5cc1d199412ead0b4c234e21e881a31ef893a4f0 Author: Konstantin Belousov AuthorDate: 2021-04-13 13:47:24 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-14 07:53:19 +0000 realtimer_expire: avoid proc lock recursion when called from itimer_proc_continue() It is fine to drop the process lock there, process cannot exit until its timers are cleared. Found by: syzkaller Reported and reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29746 --- sys/kern/kern_time.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/sys/kern/kern_time.c b/sys/kern/kern_time.c index d3b19111b0f3..ab22ac4a1697 100644 --- a/sys/kern/kern_time.c +++ b/sys/kern/kern_time.c @@ -105,6 +105,7 @@ static int realtimer_settime(struct itimer *, int, static int realtimer_delete(struct itimer *); static void realtimer_clocktime(clockid_t, struct timespec *); static void realtimer_expire(void *); +static void realtimer_expire_l(struct itimer *it, bool proc_locked); static int register_posix_clock(int, const struct kclock *); static void itimer_fire(struct itimer *it); @@ -919,7 +920,7 @@ itimer_proc_continue(struct proc *p) if ((it->it_flags & ITF_PSTOPPED) != 0) { it->it_flags &= ~ITF_PSTOPPED; if ((it->it_flags & ITF_DELETING) == 0) - realtimer_expire(it); + realtimer_expire_l(it, true); } ITIMER_UNLOCK(it); } @@ -1663,18 +1664,14 @@ itimespecfix(struct timespec *ts) .tv_nsec = (ns) % 1000000000 \ } -/* Timeout callback for realtime timer */ static void -realtimer_expire(void *arg) +realtimer_expire_l(struct itimer *it, bool proc_locked) { struct timespec cts, ts; struct timeval tv; - struct itimer *it; struct proc *p; uint64_t interval, now, overruns, value; - it = (struct itimer *)arg; - realtimer_clocktime(it->it_clockid, &cts); /* Only fire if time is reached. */ if (timespeccmp(&cts, &it->it_time.it_value, >=)) { @@ -1708,8 +1705,9 @@ realtimer_expire(void *arg) /* single shot timer ? */ timespecclear(&it->it_time.it_value); } + + p = it->it_proc; if (timespecisset(&it->it_time.it_value)) { - p = it->it_proc; if (P_SHOULDSTOP(p) || P_KILLED(p)) { it->it_flags |= ITF_PSTOPPED; } else { @@ -1719,9 +1717,14 @@ realtimer_expire(void *arg) realtimer_expire, it); } } + itimer_enter(it); ITIMER_UNLOCK(it); + if (proc_locked) + PROC_UNLOCK(p); itimer_fire(it); + if (proc_locked) + PROC_LOCK(p); ITIMER_LOCK(it); itimer_leave(it); } else if (timespecisset(&it->it_time.it_value)) { @@ -1738,6 +1741,13 @@ realtimer_expire(void *arg) } } +/* Timeout callback for realtime timer */ +static void +realtimer_expire(void *arg) +{ + realtimer_expire_l(arg, false); +} + static void itimer_fire(struct itimer *it) { From owner-dev-commits-src-main@freebsd.org Wed Apr 14 07:59:14 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 89B115CD910; Wed, 14 Apr 2021 07:59:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKvxt3DnPz4gpV; Wed, 14 Apr 2021 07:59:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 609CE19DE2; Wed, 14 Apr 2021 07:59:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13E7xEJQ007279; Wed, 14 Apr 2021 07:59:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13E7xEoV007278; Wed, 14 Apr 2021 07:59:14 GMT (envelope-from git) Date: Wed, 14 Apr 2021 07:59:14 GMT Message-Id: <202104140759.13E7xEoV007278@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 75c5cf7a720f - main - filt_timerexpire: avoid process lock recursion MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 75c5cf7a720f5a73f17aff60adbc4a7b2fa86f84 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 07:59:14 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=75c5cf7a720f5a73f17aff60adbc4a7b2fa86f84 commit 75c5cf7a720f5a73f17aff60adbc4a7b2fa86f84 Author: Konstantin Belousov AuthorDate: 2021-04-13 14:25:11 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-14 07:53:28 +0000 filt_timerexpire: avoid process lock recursion Found by: syzkaller Reported and reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29746 --- sys/kern/kern_event.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 31b091e20984..45d505fca757 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -161,6 +161,7 @@ static void filt_procdetach(struct knote *kn); static int filt_proc(struct knote *kn, long hint); static int filt_fileattach(struct knote *kn); static void filt_timerexpire(void *knx); +static void filt_timerexpire_l(struct knote *kn, bool proc_locked); static int filt_timerattach(struct knote *kn); static void filt_timerdetach(struct knote *kn); static void filt_timerstart(struct knote *kn, sbintime_t to); @@ -706,21 +707,19 @@ kqtimer_proc_continue(struct proc *p) TAILQ_FOREACH_SAFE(kc, &p->p_kqtim_stop, link, kc1) { TAILQ_REMOVE(&p->p_kqtim_stop, kc, link); if (kc->next <= now) - filt_timerexpire(kc->kn); + filt_timerexpire_l(kc->kn, true); else kqtimer_sched_callout(kc); } } static void -filt_timerexpire(void *knx) +filt_timerexpire_l(struct knote *kn, bool proc_locked) { - struct knote *kn; struct kq_timer_cb_data *kc; struct proc *p; sbintime_t now; - kn = knx; kc = kn->kn_ptr.p_v; if ((kn->kn_flags & EV_ONESHOT) != 0 || kc->to == 0) { @@ -742,17 +741,26 @@ filt_timerexpire(void *knx) */ p = kc->p; if (P_SHOULDSTOP(p) || P_KILLED(p)) { - PROC_LOCK(p); + if (!proc_locked) + PROC_LOCK(p); if (P_SHOULDSTOP(p) || P_KILLED(p)) { TAILQ_INSERT_TAIL(&p->p_kqtim_stop, kc, link); - PROC_UNLOCK(p); + if (!proc_locked) + PROC_UNLOCK(p); return; } - PROC_UNLOCK(p); + if (!proc_locked) + PROC_UNLOCK(p); } kqtimer_sched_callout(kc); } +static void +filt_timerexpire(void *knx) +{ + filt_timerexpire_l(knx, false); +} + /* * data contains amount of time to sleep */ From owner-dev-commits-src-main@freebsd.org Wed Apr 14 09:35:52 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4C3D25D0E05; Wed, 14 Apr 2021 09:35:52 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com [IPv6:2a00:1450:4864:20::231]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FKy5M2jPNz4mgW; Wed, 14 Apr 2021 09:35:51 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-lj1-x231.google.com with SMTP id a25so9265871ljm.11; Wed, 14 Apr 2021 02:35:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=7QWtvOpdToDxK30UTF0nOasU55mTECq6rSwaPnt09sc=; b=Ke94yYTbbEJlOsOG+84aXd18JVhhuTS88j5XFSUFA3lwFEtzRL92xxgDGqU/HTxGNS oyVFSNHfwX7Ut5dWPhcSHBnhBH4FQ7Tiqfcd5O5N49fPUHkx7leNpG8m29Hahxyay9rd qW1PiJzXIopvm7nM9c7Oo3FwLPZ8Y2dnY+1hyesI/4oWo9vtimtsufYueF1kJ8hKuUIH acV7goEJ+DeLIjXRpFrYbHXBEhyrr9fTIJdaUI33nFHSs2sIRzR2DLva7B/ocZYLxHIb g2hevjQDd3FYEB3IzhyPngrFZmjfvcw/TveWk4Hwg4dunx0F21CUw6t0KyV7XtKn7jIK MO1A== 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:content-transfer-encoding; bh=7QWtvOpdToDxK30UTF0nOasU55mTECq6rSwaPnt09sc=; b=Dw5PT0XdRty7OYIyYBqxNSNoKhEZ3GJjmABdBoPb6E8uYJ+btWBCg4/kg8Wgg62fb4 Fz1VhPWVAIIr68N2hxoV13afM0bw47O94wjY+Y8GwxQw8Gqd2KzWAPbJmUzJDDnxkO4T Cx/F3J/7GKMKp0UmBzKTO5EuSx8U0Y+75Z9ywyGcSe9ME7OoznR6H6eatI5JjjqVVbTE vs4jaorBhkngpJDZ12hIpk7WDFmSaGnBWJ58H9v7ImxhQ8ScoATrEvJ104kSxV4vtRLt V7sDAr/Dfj1cD21WOJ5fTd3dZF676GGieOLk9gtMlU7rPDbI3Z5GxzLKkZuZMhdY7Mel ZPWw== X-Gm-Message-State: AOAM532fKF+j5SyiYj1opGkDjKimQwbLtOn9GU2SJQszMFyoMM9K599E RPbqa32HF431nQWFe+EMxFzVY3vybEiIxO5gTdpR7Aq+ X-Google-Smtp-Source: ABdhPJxskxTvOfgHD3Zt8KGRJcp6sEFHJIteiP4nebO4M8S9LRdOMM3cECGxSA2AXmkzAMYelDqK6NptYHoux4azcDE= X-Received: by 2002:a2e:7807:: with SMTP id t7mr23651566ljc.313.1618392949481; Wed, 14 Apr 2021 02:35:49 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:1405:0:0:0:0:0 with HTTP; Wed, 14 Apr 2021 02:35:48 -0700 (PDT) In-Reply-To: <6F4745E7-CC46-4060-99A1-90C2A691EBC7@freebsd.org> References: <202104110643.13B6h91E076304@gitrepo.freebsd.org> <6F4745E7-CC46-4060-99A1-90C2A691EBC7@freebsd.org> From: Mateusz Guzik Date: Wed, 14 Apr 2021 11:35:48 +0200 Message-ID: Subject: Re: git: 97ed4babb516 - main - zfs: avoid memory allocation in arc_prune_async To: Jessica Clarke Cc: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 4FKy5M2jPNz4mgW X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=Ke94yYTb; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mjguzik@gmail.com designates 2a00:1450:4864:20::231 as permitted sender) smtp.mailfrom=mjguzik@gmail.com X-Spamd-Result: default: False [-3.98 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; NEURAL_HAM_SHORT(-0.98)[-0.983]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RBL_DBL_DONT_QUERY_IPS(0.00)[2a00:1450:4864:20::231:from]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; 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]; MIME_GOOD(-0.10)[text/plain]; SPAMHAUS_ZRD(0.00)[2a00:1450:4864:20::231:from:127.0.2.255]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::231:from]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; MAILMAN_DEST(0.00)[dev-commits-src-all,dev-commits-src-main] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 09:35:52 -0000 On 4/11/21, Jessica Clarke wrote: > On 11 Apr 2021, at 07:43, Mateusz Guzik wrote: >> >> The branch main has been updated by mjg: >> >> URL: >> https://cgit.FreeBSD.org/src/commit/?id=3D97ed4babb51636d8a4b11bc7b207c3= 219ffcd0e3 >> >> commit 97ed4babb51636d8a4b11bc7b207c3219ffcd0e3 >> Author: Mateusz Guzik >> AuthorDate: 2021-04-11 05:15:41 +0000 >> Commit: Mateusz Guzik >> CommitDate: 2021-04-11 05:19:56 +0000 >> >> zfs: avoid memory allocation in arc_prune_async >> --- >> sys/contrib/openzfs/module/os/freebsd/zfs/arc_os.c | 16 ++++++++++------ >> 1 file changed, 10 insertions(+), 6 deletions(-) >> >> diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/arc_os.c >> b/sys/contrib/openzfs/module/os/freebsd/zfs/arc_os.c >> index 201dbc423336..e73efd810e53 100644 >> --- a/sys/contrib/openzfs/module/os/freebsd/zfs/arc_os.c >> +++ b/sys/contrib/openzfs/module/os/freebsd/zfs/arc_os.c >> @@ -158,10 +158,13 @@ arc_default_max(uint64_t min, uint64_t allmem) >> static void >> arc_prune_task(void *arg) >> { >> - int64_t nr_scan =3D *(int64_t *)arg; >> +#ifdef __LP64__ >> + int64_t nr_scan =3D (int64_t)arg; >> +#else >> + int64_t nr_scan =3D (int32_t)arg; >> +#endif > > int64_t nr_scan =3D (intptr_t)arg;? > >> arc_reduce_target_size(ptob(nr_scan)); >> - free(arg, M_TEMP); >> #if __FreeBSD_version >=3D 1300139 >> sx_xlock(&arc_vnlru_lock); >> vnlru_free_vfsops(nr_scan, &zfs_vfsops, arc_vnlru_marker); >> @@ -185,13 +188,14 @@ arc_prune_task(void *arg) >> void >> arc_prune_async(int64_t adjust) >> { >> - >> int64_t *adjustptr; >> >> - if ((adjustptr =3D malloc(sizeof (int64_t), M_TEMP, M_NOWAIT)) =3D=3D = NULL) >> - return; >> +#ifndef __LP64__ >> + if (adjust > __LONG_MAX) >> + adjust =3D __LONG_MAX; >> +#endif > > The code is correct without the ifdef, is this just to suppress a > tautological > condition warning? If so, be precise in your condition and use __INT64_MA= X__ >> > __LONG_MAX__? LP64 conflates a lot of things into one variable, and so > isn=E2=80=99t > defined for CHERI, but IMO it=E2=80=99s better to be precise *anyway* bec= ause then > it=E2=80=99s > more self-documenting why the #if is there. > ifdef is there to not rise an eye-brow for LP64. I agree __LP64__ is overloaded, but I used it to be in line with the rest of the codebase. Whatever better idiomatic way shows up (e.g., introduce LP32 to ifdef on instead?) this place will be easy to find with grep. That said, I have no strong opinion how this should look like, apart from not being just slapped in for LP64. --=20 Mateusz Guzik From owner-dev-commits-src-main@freebsd.org Wed Apr 14 10:16:16 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 950BA5D21C6; Wed, 14 Apr 2021 10:16:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKz003srZz4pYQ; Wed, 14 Apr 2021 10:16:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 77A171BE57; Wed, 14 Apr 2021 10:16:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EAGGOk093366; Wed, 14 Apr 2021 10:16:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EAGGOv093365; Wed, 14 Apr 2021 10:16:16 GMT (envelope-from git) Date: Wed, 14 Apr 2021 10:16:16 GMT Message-Id: <202104141016.13EAGGOv093365@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Vladimir Kondratyev Subject: git: 6678e75e4ff9 - main - pchtherm: Add IDs for CannonLake-H, CometLake and Lewisburg controllers MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6678e75e4ff9026357950e97964e901d807578a5 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 10:16:16 -0000 The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=6678e75e4ff9026357950e97964e901d807578a5 commit 6678e75e4ff9026357950e97964e901d807578a5 Author: Vladimir Kondratyev AuthorDate: 2021-04-14 10:03:18 +0000 Commit: Vladimir Kondratyev CommitDate: 2021-04-14 10:15:19 +0000 pchtherm: Add IDs for CannonLake-H, CometLake and Lewisburg controllers Submitted by: Dmitry Luhtionov MFC after: 2 weeks --- sys/dev/intel/pchtherm.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sys/dev/intel/pchtherm.c b/sys/dev/intel/pchtherm.c index 31d06a1bc26a..b65cc9879e26 100644 --- a/sys/dev/intel/pchtherm.c +++ b/sys/dev/intel/pchtherm.c @@ -96,7 +96,15 @@ static const struct pci_device_table pchtherm_devices[] = { PCI_DEV(0x8086, 0xa131), PCI_DESCR("Skylake PCH 100 Thermal Subsystem")}, { PCI_DEV(0x8086, 0x9df9), - PCI_DESCR("Cannon Lake PCH Thermal Controller")}, + PCI_DESCR("CannonLake-LP Thermal Subsystem")}, + { PCI_DEV(0x8086, 0xa379), + PCI_DESCR("CannonLake-H Thermal Subsystem")}, + { PCI_DEV(0x8086, 0x02f9), + PCI_DESCR("CometLake-LP Thermal Subsystem")}, + { PCI_DEV(0x8086, 0x06f9), + PCI_DESCR("CometLake-H Thermal Subsystem")}, + { PCI_DEV(0x8086, 0xa1b1), + PCI_DESCR("Lewisburg Thermal Subsystem")}, }; static int pchtherm_probe(device_t dev) From owner-dev-commits-src-main@freebsd.org Wed Apr 14 10:20:55 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CF87A5D2614; Wed, 14 Apr 2021 10:20:55 +0000 (UTC) (envelope-from gbe@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKz5M5Y1Nz4pbq; Wed, 14 Apr 2021 10:20:55 +0000 (UTC) (envelope-from gbe@freebsd.org) Received: from localhost (p200300d5d70db070996578a96c0e0911.dip0.t-ipconnect.de [IPv6:2003:d5:d70d:b070:9965:78a9:6c0e:911]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gbe) by smtp.freebsd.org (Postfix) with ESMTPSA id 366826868; Wed, 14 Apr 2021 10:20:55 +0000 (UTC) (envelope-from gbe@freebsd.org) Date: Wed, 14 Apr 2021 12:20:52 +0200 From: Gordon Bergling To: rgrimes@freebsd.org Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: bc54f5f1cd5c - main - route(8): Add an example how to print the routing tables Message-ID: References: <202104130447.13D4lctn042496@gitrepo.freebsd.org> <202104131036.13DAaESx037967@gndrsh.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202104131036.13DAaESx037967@gndrsh.dnsmgr.net> X-Url: X-Operating-System: FreeBSD 12.2-STABLE amd64 X-Host-Uptime: 12:13PM up 7 days, 21:16, 4 users, load averages: 3.75, 3.61, 3.55 X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 10:20:55 -0000 On Tue, Apr 13, 2021 at 03:36:14AM -0700, Rodney W. Grimes wrote: > > The branch main has been updated by gbe (doc committer): > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=bc54f5f1cd5c01aa5f941234034839fb0b8f54ed > > > > commit bc54f5f1cd5c01aa5f941234034839fb0b8f54ed > > Author: Gordon Bergling > > AuthorDate: 2021-04-13 04:44:04 +0000 > > Commit: Gordon Bergling > > CommitDate: 2021-04-13 04:45:22 +0000 > > > > route(8): Add an example how to print the routing tables > > > > The manual page currently doesn't show an example how to print > > the routing table, so add one and .Xr netstat while here. > > Because the route command does not print the routing table. > > Manual pages should have examples of how to use that command, > not examples of how to do associated things that are done > using another command. > > The add of xref to netstat is long overdue. I know that examples in man pages should be specific for the command the man page is for, but I think we could make an exception for netstat at this point, because many people, who are looking for such an information are coming from the Windows world, where the route command has a print option. --Gordon > > PR: 231579 > > Reported by: Pekka J?rvinen > > Reviewed by: debdrup > > MFC after: 5 days > > Differential Revision: https://reviews.freebsd.org/D29702 > > --- > > sbin/route/route.8 | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/sbin/route/route.8 b/sbin/route/route.8 > > index 6f34795ce883..c353bfb73d62 100644 > > --- a/sbin/route/route.8 > > +++ b/sbin/route/route.8 > > @@ -28,7 +28,7 @@ > > .\" @(#)route.8 8.3 (Berkeley) 3/19/94 > > .\" $FreeBSD$ > > .\" > > -.Dd January 9, 2019 > > +.Dd April 11, 2021 > > .Dt ROUTE 8 > > .Os > > .Sh NAME > > @@ -453,6 +453,10 @@ Delete a static route from the routing table: > > Remove all routes from the routing table: > > .Pp > > .Dl route flush > > +.Pp > > +List all routing tables: > > +.Pp > > +.Dl netstat -r > > .Sh DIAGNOSTICS > > .Bl -diag > > .It "add [host \&| network ] %s: gateway %s flags %x" > > @@ -493,6 +497,7 @@ The next-hop gateway should be reachable through a different route. > > .El > > .Sh SEE ALSO > > .\".Xr esis 4 , > > +.Xr netstat 1 , > > .Xr netintro 4 , > > .Xr route 4 , > > .Xr arp 8 , > > > > -- > Rod Grimes rgrimes@freebsd.org -- From owner-dev-commits-src-main@freebsd.org Wed Apr 14 10:28:03 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1A9CA5D264E; Wed, 14 Apr 2021 10:28:03 +0000 (UTC) (envelope-from gbe@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKzFb0DVKz4q56; Wed, 14 Apr 2021 10:28:03 +0000 (UTC) (envelope-from gbe@freebsd.org) Received: from localhost (p200300d5d70db070996578a96c0e0911.dip0.t-ipconnect.de [IPv6:2003:d5:d70d:b070:9965:78a9:6c0e:911]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gbe) by smtp.freebsd.org (Postfix) with ESMTPSA id 74179688A; Wed, 14 Apr 2021 10:28:02 +0000 (UTC) (envelope-from gbe@freebsd.org) Date: Wed, 14 Apr 2021 12:28:01 +0200 From: Gordon Bergling To: rgrimes@freebsd.org Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: e6ab1e365c06 - main - config(8): Correct the mentioned paper in the SEE ALSO section Message-ID: References: <202104130453.13D4rrF4055099@gitrepo.freebsd.org> <202104131041.13DAfMA0037986@gndrsh.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202104131041.13DAfMA0037986@gndrsh.dnsmgr.net> X-Url: X-Operating-System: FreeBSD 12.2-STABLE amd64 X-Host-Uptime: 12:13PM up 7 days, 21:16, 4 users, load averages: 3.75, 3.61, 3.55 X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 10:28:03 -0000 On Tue, Apr 13, 2021 at 03:41:22AM -0700, Rodney W. Grimes wrote: > > The branch main has been updated by gbe (doc committer): > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=e6ab1e365c06559e964667d2f5a6de856fa28be6 > > > > commit e6ab1e365c06559e964667d2f5a6de856fa28be6 > > Author: Gordon Bergling > > AuthorDate: 2021-04-13 04:49:00 +0000 > > Commit: Gordon Bergling > > CommitDate: 2021-04-13 04:49:00 +0000 > > > > config(8): Correct the mentioned paper in the SEE ALSO section > > > > FreeBSD's version of the config(8) utility is based on 4.3BSD not > > 4.4BSD. So correct the mentioned paper in the SEE ALSO section. > > What is this based upon? > > As far as I know, and I am the one that did the imports, we > never had the source code to config(8) for 4.3BSD, the config > sources in the system are imported from the 4.4BSD lite source tape. Warner has sent me a private mail in which he told me that FreeBSD's config(8) is based on 4.3BSD with a lot modifications. The updated paper date and origin I got from a scan of the original documents found at [1]. --Gordon [1] http://www.bitsavers.org/pdf/mtXinu/MT_XINU_SMM_Apr_1986.pdf > > Reported by: imp > > Reviewed by: imp > > X-MFC-with: 2b59392cb0da804e825c63469beb1934ec4267db > > Differential Revision: https://reviews.freebsd.org/D29701 > > --- > > usr.sbin/config/config.8 | 7 ++++--- > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > diff --git a/usr.sbin/config/config.8 b/usr.sbin/config/config.8 > > index 929607712ef8..1e874c3e8355 100644 > > --- a/usr.sbin/config/config.8 > > +++ b/usr.sbin/config/config.8 > > @@ -28,7 +28,7 @@ > > .\" @(#)config.8 8.2 (Berkeley) 4/19/94 > > .\" $FreeBSD$ > > .\" > > -.Dd April 9, 2021 > > +.Dd April 11, 2021 > > .Dt CONFIG 8 > > .Os > > .Sh NAME > > @@ -249,11 +249,12 @@ The > > .Sx SYNOPSIS > > portion of each device in section 4. > > .Rs > > -.\" 4.4BSD SMM:2 > > +.\" 4.3BSD SMM:2 > > .%A S. J. Leffler > > .%A M. J. Karels > > .%T "Building 4.3 BSD UNIX System with Config" > > -.%B 4.4BSD System Manager's Manual (SMM) > > +.%B 4.3BSD System Manager's Manual (SMM) > > +.%D June 3, 1986 > > .Re > > .Sh HISTORY > > The > > > > -- > Rod Grimes rgrimes@freebsd.org -- From owner-dev-commits-src-main@freebsd.org Wed Apr 14 10:31:33 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6D4A75D2A0D; Wed, 14 Apr 2021 10:31:33 +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 4FKzKc6qs0z4qBw; Wed, 14 Apr 2021 10:31:32 +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 13EAVOY6042571; Wed, 14 Apr 2021 03:31:24 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 13EAVO9b042570; Wed, 14 Apr 2021 03:31:24 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202104141031.13EAVO9b042570@gndrsh.dnsmgr.net> Subject: Re: git: bc54f5f1cd5c - main - route(8): Add an example how to print the routing tables In-Reply-To: To: Gordon Bergling Date: Wed, 14 Apr 2021 03:31:24 -0700 (PDT) CC: rgrimes@freebsd.org, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@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: 4FKzKc6qs0z4qBw X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 10:31:33 -0000 > On Tue, Apr 13, 2021 at 03:36:14AM -0700, Rodney W. Grimes wrote: > > > The branch main has been updated by gbe (doc committer): > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=bc54f5f1cd5c01aa5f941234034839fb0b8f54ed > > > > > > commit bc54f5f1cd5c01aa5f941234034839fb0b8f54ed > > > Author: Gordon Bergling > > > AuthorDate: 2021-04-13 04:44:04 +0000 > > > Commit: Gordon Bergling > > > CommitDate: 2021-04-13 04:45:22 +0000 > > > > > > route(8): Add an example how to print the routing tables > > > > > > The manual page currently doesn't show an example how to print > > > the routing table, so add one and .Xr netstat while here. > > > > Because the route command does not print the routing table. > > > > Manual pages should have examples of how to use that command, > > not examples of how to do associated things that are done > > using another command. > > > > The add of xref to netstat is long overdue. > > I know that examples in man pages should be specific for the command > the man page is for, but I think we could make an exception for netstat at > this point, because many people, who are looking for such an information > are coming from the Windows world, where the route command has a print > option. Perhaps add in description of "route get": To print the complete routing table refer to the netstat(8) -r flag. > > --Gordon > > > > PR: 231579 > > > Reported by: Pekka J?rvinen > > > Reviewed by: debdrup > > > MFC after: 5 days > > > Differential Revision: https://reviews.freebsd.org/D29702 > > > --- > > > sbin/route/route.8 | 7 ++++++- > > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > > > diff --git a/sbin/route/route.8 b/sbin/route/route.8 > > > index 6f34795ce883..c353bfb73d62 100644 > > > --- a/sbin/route/route.8 > > > +++ b/sbin/route/route.8 > > > @@ -28,7 +28,7 @@ > > > .\" @(#)route.8 8.3 (Berkeley) 3/19/94 > > > .\" $FreeBSD$ > > > .\" > > > -.Dd January 9, 2019 > > > +.Dd April 11, 2021 > > > .Dt ROUTE 8 > > > .Os > > > .Sh NAME > > > @@ -453,6 +453,10 @@ Delete a static route from the routing table: > > > Remove all routes from the routing table: > > > .Pp > > > .Dl route flush > > > +.Pp > > > +List all routing tables: > > > +.Pp > > > +.Dl netstat -r > > > .Sh DIAGNOSTICS > > > .Bl -diag > > > .It "add [host \&| network ] %s: gateway %s flags %x" > > > @@ -493,6 +497,7 @@ The next-hop gateway should be reachable through a different route. > > > .El > > > .Sh SEE ALSO > > > .\".Xr esis 4 , > > > +.Xr netstat 1 , > > > .Xr netintro 4 , > > > .Xr route 4 , > > > .Xr arp 8 , > > > > > > > -- > > Rod Grimes rgrimes@freebsd.org > > -- > -- Rod Grimes rgrimes@freebsd.org From owner-dev-commits-src-main@freebsd.org Wed Apr 14 10:38:44 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8ADD25D2A3D; Wed, 14 Apr 2021 10:38:44 +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 4FKzTw216rz4qWj; Wed, 14 Apr 2021 10:38:43 +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 13EAcgst042608; Wed, 14 Apr 2021 03:38:42 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 13EAcgMl042607; Wed, 14 Apr 2021 03:38:42 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202104141038.13EAcgMl042607@gndrsh.dnsmgr.net> Subject: Re: git: e6ab1e365c06 - main - config(8): Correct the mentioned paper in the SEE ALSO section In-Reply-To: To: Gordon Bergling Date: Wed, 14 Apr 2021 03:38:41 -0700 (PDT) CC: rgrimes@freebsd.org, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@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: 4FKzTw216rz4qWj X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 10:38:44 -0000 > On Tue, Apr 13, 2021 at 03:41:22AM -0700, Rodney W. Grimes wrote: > > > The branch main has been updated by gbe (doc committer): > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=e6ab1e365c06559e964667d2f5a6de856fa28be6 > > > > > > commit e6ab1e365c06559e964667d2f5a6de856fa28be6 > > > Author: Gordon Bergling > > > AuthorDate: 2021-04-13 04:49:00 +0000 > > > Commit: Gordon Bergling > > > CommitDate: 2021-04-13 04:49:00 +0000 > > > > > > config(8): Correct the mentioned paper in the SEE ALSO section > > > > > > FreeBSD's version of the config(8) utility is based on 4.3BSD not > > > 4.4BSD. So correct the mentioned paper in the SEE ALSO section. > > > > What is this based upon? > > > > As far as I know, and I am the one that did the imports, we > > never had the source code to config(8) for 4.3BSD, the config > > sources in the system are imported from the 4.4BSD lite source tape. > > Warner has sent me a private mail in which he told me that FreeBSD's > config(8) is based on 4.3BSD with a lot modifications. The updated > paper date and origin I got from a scan of the original documents > found at [1]. If this has infact occured that is a violation of the AT&T/USL lawsuit agreement. Further as the person that did the import of 4.4, and did the lifting to make that version work with FreeBSD I dispute this claim that the config utility is based on 4.3BSD, the history of the files simply do not bear that to be true. Please revert this inaccurate change of history. Regards, Rod > > --Gordon > > [1] http://www.bitsavers.org/pdf/mtXinu/MT_XINU_SMM_Apr_1986.pdf > > > > Reported by: imp > > > Reviewed by: imp > > > X-MFC-with: 2b59392cb0da804e825c63469beb1934ec4267db > > > Differential Revision: https://reviews.freebsd.org/D29701 > > > --- > > > usr.sbin/config/config.8 | 7 ++++--- > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > > > diff --git a/usr.sbin/config/config.8 b/usr.sbin/config/config.8 > > > index 929607712ef8..1e874c3e8355 100644 > > > --- a/usr.sbin/config/config.8 > > > +++ b/usr.sbin/config/config.8 > > > @@ -28,7 +28,7 @@ > > > .\" @(#)config.8 8.2 (Berkeley) 4/19/94 > > > .\" $FreeBSD$ > > > .\" > > > -.Dd April 9, 2021 > > > +.Dd April 11, 2021 > > > .Dt CONFIG 8 > > > .Os > > > .Sh NAME > > > @@ -249,11 +249,12 @@ The > > > .Sx SYNOPSIS > > > portion of each device in section 4. > > > .Rs > > > -.\" 4.4BSD SMM:2 > > > +.\" 4.3BSD SMM:2 > > > .%A S. J. Leffler > > > .%A M. J. Karels > > > .%T "Building 4.3 BSD UNIX System with Config" > > > -.%B 4.4BSD System Manager's Manual (SMM) > > > +.%B 4.3BSD System Manager's Manual (SMM) > > > +.%D June 3, 1986 > > > .Re > > > .Sh HISTORY > > > The > > > > > > > -- > > Rod Grimes rgrimes@freebsd.org > > -- > -- Rod Grimes rgrimes@freebsd.org From owner-dev-commits-src-main@freebsd.org Wed Apr 14 10:52:36 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D1A355D3054; Wed, 14 Apr 2021 10:52:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FKznw56Dxz4r05; Wed, 14 Apr 2021 10:52:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A1FF61C6F7; Wed, 14 Apr 2021 10:52:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EAqaWM045254; Wed, 14 Apr 2021 10:52:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EAqaNQ045253; Wed, 14 Apr 2021 10:52:36 GMT (envelope-from git) Date: Wed, 14 Apr 2021 10:52:36 GMT Message-Id: <202104141052.13EAqaNQ045253@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Martin Matuska Subject: git: 6db169e92081 - main - zfs: merge openzfs/zfs@3522f57b6 (master) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6db169e920810bf1d7e9bd2fad5da92bfb696677 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 10:52:36 -0000 The branch main has been updated by mm: URL: https://cgit.FreeBSD.org/src/commit/?id=6db169e920810bf1d7e9bd2fad5da92bfb696677 commit 6db169e920810bf1d7e9bd2fad5da92bfb696677 Merge: 6678e75e4ff9 d76d37d9c3f3 Author: Martin Matuska AuthorDate: 2021-04-14 10:49:10 +0000 Commit: Martin Matuska CommitDate: 2021-04-14 10:51:51 +0000 zfs: merge openzfs/zfs@3522f57b6 (master) Notable upstream pull request merges: #11742 When specifying raidz vdev name, parity count should match #11744 Use a helper function to clarify gang block size #11771 Support running FreeBSD buildworld on Arm-based macOS hosts This is the last update that will be MFCed into stable/13. From now on, the tracking of OpenZFS branches will be different: - main continues tracking openzfs/zfs/master - stable/13 is going to track openzfs/zfs/zfs-2.1-release Obtained from: OpenZFS MFC after: 1 week sys/contrib/openzfs/.editorconfig | 10 ++++ sys/contrib/openzfs/.gitignore | 70 ++++++++++++++++++++++ sys/contrib/openzfs/.gitmodules | 3 + sys/contrib/openzfs/META | 2 +- sys/contrib/openzfs/cmd/raidz_test/raidz_bench.c | 2 - sys/contrib/openzfs/cmd/zed/zed_exec.c | 1 + sys/contrib/openzfs/cmd/zfs/zfs_main.c | 2 - .../openzfs/cmd/zpool/os/linux/zpool_vdev_os.c | 3 - .../pyzfs/libzfs_core/test/test_libzfs_core.py | 2 +- sys/contrib/openzfs/include/sys/dmu_recv.h | 1 - sys/contrib/openzfs/include/sys/dmu_send.h | 1 - sys/contrib/openzfs/include/sys/spa.h | 6 ++ sys/contrib/openzfs/include/sys/vdev.h | 9 +++ .../openzfs/lib/libspl/include/sys/dklabel.h | 1 - sys/contrib/openzfs/lib/libzfs/libzfs_dataset.c | 2 - sys/contrib/openzfs/lib/libzfs/libzfs_pool.c | 31 +++++++++- sys/contrib/openzfs/lib/libzfs/libzfs_sendrecv.c | 1 - .../lib/libzutil/os/linux/zutil_import_os.c | 1 - sys/contrib/openzfs/lib/libzutil/zutil_import.c | 1 - sys/contrib/openzfs/man/man8/zed.8.in | 4 +- sys/contrib/openzfs/module/os/linux/zfs/arc_os.c | 1 - sys/contrib/openzfs/module/os/linux/zfs/zpl_file.c | 2 +- sys/contrib/openzfs/module/zfs/arc.c | 1 - sys/contrib/openzfs/module/zfs/dmu_recv.c | 1 - sys/contrib/openzfs/module/zfs/fm.c | 1 - sys/contrib/openzfs/module/zfs/metaslab.c | 8 +-- sys/contrib/openzfs/module/zfs/zio.c | 18 +++--- sys/modules/zfs/zfs_config.h | 6 +- 28 files changed, 152 insertions(+), 39 deletions(-) diff --cc sys/contrib/openzfs/.editorconfig index 000000000000,0f4b96a83070..0f4b96a83070 mode 000000,100644..100644 --- a/sys/contrib/openzfs/.editorconfig +++ b/sys/contrib/openzfs/.editorconfig diff --cc sys/contrib/openzfs/.gitignore index 000000000000,000000000000..056bbb8f08c9 new file mode 100644 --- /dev/null +++ b/sys/contrib/openzfs/.gitignore @@@ -1,0 -1,0 +1,70 @@@ ++# ++# N.B. ++# This is the toplevel .gitignore file. ++# This is not the place for entries that are specific to ++# a subdirectory. Instead add those files to the ++# .gitignore file in that subdirectory. ++# ++# N.B. ++# Please use 'git ls-files -i --exclude-standard' ++# command after changing this file, to see if there are ++# any tracked files which get ignored after the change. ++ ++# ++# Normal rules ++# ++*.[oa] ++*.o.ur-safe ++*.lo ++*.la ++*.mod.c ++*~ ++*.swp ++*.gcno ++*.gcda ++*.pyc ++*.pyo ++.deps ++.libs ++.dirstamp ++.DS_Store ++modules.order ++Makefile ++Makefile.in ++ ++# ++# Top level generated files specific to this top level dir ++# ++/bin ++/build ++/configure ++/config.log ++/config.status ++/libtool ++/zfs_config.h ++/zfs_config.h.in ++/zfs.release ++/stamp-h1 ++/aclocal.m4 ++/autom4te.cache ++ ++# ++# Top level generic files ++# ++!.gitignore ++tags ++TAGS ++current ++cscope.* ++*.rpm ++*.deb ++*.tar.gz ++*.patch ++*.orig ++*.log ++*.tmp ++venv ++ ++*.so ++*.so.debug ++*.so.full diff --cc sys/contrib/openzfs/.gitmodules index 000000000000,d400f10a7e63..d400f10a7e63 mode 000000,100644..100644 --- a/sys/contrib/openzfs/.gitmodules +++ b/sys/contrib/openzfs/.gitmodules diff --cc sys/modules/zfs/zfs_config.h index c3735b2c386c,000000000000..ebc9bbe9059b mode 100644,000000..100644 --- a/sys/modules/zfs/zfs_config.h +++ b/sys/modules/zfs/zfs_config.h @@@ -1,774 -1,0 +1,774 @@@ +/* + * $FreeBSD$ + */ + +/* zfs_config.h. Generated from zfs_config.h.in by configure. */ +/* zfs_config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* bio_end_io_t wants 1 arg */ +/* #undef HAVE_1ARG_BIO_END_IO_T */ + +/* lookup_bdev() wants 1 arg */ +/* #undef HAVE_1ARG_LOOKUP_BDEV */ + +/* submit_bio() wants 1 arg */ +/* #undef HAVE_1ARG_SUBMIT_BIO */ + +/* bdi_setup_and_register() wants 2 args */ +/* #undef HAVE_2ARGS_BDI_SETUP_AND_REGISTER */ + +/* vfs_getattr wants 2 args */ +/* #undef HAVE_2ARGS_VFS_GETATTR */ + +/* zlib_deflate_workspacesize() wants 2 args */ +/* #undef HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE */ + +/* bdi_setup_and_register() wants 3 args */ +/* #undef HAVE_3ARGS_BDI_SETUP_AND_REGISTER */ + +/* vfs_getattr wants 3 args */ +/* #undef HAVE_3ARGS_VFS_GETATTR */ + +/* vfs_getattr wants 4 args */ +/* #undef HAVE_4ARGS_VFS_GETATTR */ + +/* kernel has access_ok with 'type' parameter */ +/* #undef HAVE_ACCESS_OK_TYPE */ + +/* posix_acl has refcount_t */ +/* #undef HAVE_ACL_REFCOUNT */ + +/* Define if host toolchain supports AES */ +#define HAVE_AES 1 + +#ifdef __amd64__ +#ifndef RESCUE +/* Define if host toolchain supports AVX */ +#define HAVE_AVX 1 +#endif + +/* Define if host toolchain supports AVX2 */ +#define HAVE_AVX2 1 + +/* Define if host toolchain supports AVX512BW */ +#define HAVE_AVX512BW 1 + +/* Define if host toolchain supports AVX512CD */ +#define HAVE_AVX512CD 1 + +/* Define if host toolchain supports AVX512DQ */ +#define HAVE_AVX512DQ 1 + +/* Define if host toolchain supports AVX512ER */ +#define HAVE_AVX512ER 1 + +/* Define if host toolchain supports AVX512F */ +#define HAVE_AVX512F 1 + +/* Define if host toolchain supports AVX512IFMA */ +#define HAVE_AVX512IFMA 1 + +/* Define if host toolchain supports AVX512PF */ +#define HAVE_AVX512PF 1 + +/* Define if host toolchain supports AVX512VBMI */ +#define HAVE_AVX512VBMI 1 + +/* Define if host toolchain supports AVX512VL */ +#define HAVE_AVX512VL 1 +#endif + +/* bdev_check_media_change() exists */ +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */ + +/* bdev_whole() is available */ +/* #undef HAVE_BDEV_WHOLE */ + +/* bio->bi_opf is defined */ +/* #undef HAVE_BIO_BI_OPF */ + +/* bio->bi_status exists */ +/* #undef HAVE_BIO_BI_STATUS */ + +/* bio has bi_iter */ +/* #undef HAVE_BIO_BVEC_ITER */ + +/* bio_*_io_acct() available */ +/* #undef HAVE_BIO_IO_ACCT */ + +/* bio_set_dev() is available */ +/* #undef HAVE_BIO_SET_DEV */ + +/* bio_set_dev() GPL-only */ +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */ + +/* bio_set_op_attrs is available */ +/* #undef HAVE_BIO_SET_OP_ATTRS */ + +/* blkdev_reread_part() exists */ +/* #undef HAVE_BLKDEV_REREAD_PART */ + +/* blkg_tryget() is available */ +/* #undef HAVE_BLKG_TRYGET */ + +/* blkg_tryget() GPL-only */ +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */ + +/* blk_alloc_queue() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */ + +/* blk_alloc_queue_rh() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */ + +/* blk queue backing_dev_info is dynamic */ +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */ + +/* blk_queue_flag_clear() exists */ +/* #undef HAVE_BLK_QUEUE_FLAG_CLEAR */ + +/* blk_queue_flag_set() exists */ +/* #undef HAVE_BLK_QUEUE_FLAG_SET */ + +/* blk_queue_flush() is available */ +/* #undef HAVE_BLK_QUEUE_FLUSH */ + +/* blk_queue_flush() is GPL-only */ +/* #undef HAVE_BLK_QUEUE_FLUSH_GPL_ONLY */ + +/* blk_queue_secdiscard() is available */ +/* #undef HAVE_BLK_QUEUE_SECDISCARD */ + +/* blk_queue_secure_erase() is available */ +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */ + +/* blk_queue_write_cache() exists */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE */ + +/* blk_queue_write_cache() is GPL-only */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE_GPL_ONLY */ + +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYCURRENT */ + +/* Define to 1 if you have the Mac OS X function + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ + +/* check_disk_change() exists */ +/* #undef HAVE_CHECK_DISK_CHANGE */ + +/* clear_inode() is available */ +/* #undef HAVE_CLEAR_INODE */ + +/* dentry uses const struct dentry_operations */ +/* #undef HAVE_CONST_DENTRY_OPERATIONS */ + +/* copy_from_iter() is available */ +/* #undef HAVE_COPY_FROM_ITER */ + +/* copy_to_iter() is available */ +/* #undef HAVE_COPY_TO_ITER */ + +/* yes */ +/* #undef HAVE_CPU_HOTPLUG */ + +/* current_time() exists */ +/* #undef HAVE_CURRENT_TIME */ + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +/* #undef HAVE_DCGETTEXT */ + +/* DECLARE_EVENT_CLASS() is available */ +/* #undef HAVE_DECLARE_EVENT_CLASS */ + +/* lookup_bdev() wants dev_t arg */ +/* #undef HAVE_DEVT_LOOKUP_BDEV */ + +/* sops->dirty_inode() wants flags */ +/* #undef HAVE_DIRTY_INODE_WITH_FLAGS */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* d_make_root() is available */ +/* #undef HAVE_D_MAKE_ROOT */ + +/* d_prune_aliases() is available */ +/* #undef HAVE_D_PRUNE_ALIASES */ + +/* dops->d_revalidate() operation takes nameidata */ +/* #undef HAVE_D_REVALIDATE_NAMEIDATA */ + +/* eops->encode_fh() wants child and parent inodes */ +/* #undef HAVE_ENCODE_FH_WITH_INODE */ + +/* sops->evict_inode() exists */ +/* #undef HAVE_EVICT_INODE */ + +/* fops->aio_fsync() exists */ +/* #undef HAVE_FILE_AIO_FSYNC */ + +/* file_dentry() is available */ +/* #undef HAVE_FILE_DENTRY */ + +/* file_inode() is available */ +/* #undef HAVE_FILE_INODE */ + +/* iops->follow_link() cookie */ +/* #undef HAVE_FOLLOW_LINK_COOKIE */ + +/* iops->follow_link() nameidata */ +/* #undef HAVE_FOLLOW_LINK_NAMEIDATA */ + +/* fops->fsync() with range */ +/* #undef HAVE_FSYNC_RANGE */ + +/* fops->fsync() without dentry */ +/* #undef HAVE_FSYNC_WITHOUT_DENTRY */ + +/* generic_*_io_acct() 3 arg available */ +/* #undef HAVE_GENERIC_IO_ACCT_3ARG */ + +/* generic_*_io_acct() 4 arg available */ +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */ + +/* generic_readlink is global */ +/* #undef HAVE_GENERIC_READLINK */ + +/* generic_setxattr() exists */ +/* #undef HAVE_GENERIC_SETXATTR */ + +/* generic_write_checks() takes kiocb */ +/* #undef HAVE_GENERIC_WRITE_CHECKS_KIOCB */ + +/* Define if the GNU gettext() function is already present or preinstalled. */ +/* #undef HAVE_GETTEXT */ + +/* iops->get_link() cookie */ +/* #undef HAVE_GET_LINK_COOKIE */ + +/* iops->get_link() delayed */ +/* #undef HAVE_GET_LINK_DELAYED */ + +/* group_info->gid exists */ +/* #undef HAVE_GROUP_INFO_GID */ + +/* has_capability() is available */ +/* #undef HAVE_HAS_CAPABILITY */ + +/* Define if you have the iconv() function and it works. */ +#define HAVE_ICONV 1 + +/* yes */ +/* #undef HAVE_INODE_LOCK_SHARED */ + +/* inode_set_flags() exists */ +/* #undef HAVE_INODE_SET_FLAGS */ + +/* inode_set_iversion() exists */ +/* #undef HAVE_INODE_SET_IVERSION */ + +/* inode->i_*time's are timespec64 */ +/* #undef HAVE_INODE_TIMESPEC64_TIMES */ + +/* timestamp_truncate() exists */ +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* in_compat_syscall() is available */ +/* #undef HAVE_IN_COMPAT_SYSCALL */ + +/* iov_iter_advance() is available */ +/* #undef HAVE_IOV_ITER_ADVANCE */ + +/* iov_iter_count() is available */ +/* #undef HAVE_IOV_ITER_COUNT */ + +/* iov_iter_fault_in_readable() is available */ +/* #undef HAVE_IOV_ITER_FAULT_IN_READABLE */ + +/* iov_iter_init() is available */ +/* #undef HAVE_IOV_ITER_INIT */ + +/* iov_iter_init() is available */ +/* #undef HAVE_IOV_ITER_INIT_LEGACY */ + +/* iov_iter_revert() is available */ +/* #undef HAVE_IOV_ITER_REVERT */ + +/* iov_iter types are available */ +/* #undef HAVE_IOV_ITER_TYPES */ + +/* yes */ +/* #undef HAVE_IO_SCHEDULE_TIMEOUT */ + +/* Define to 1 if you have the `issetugid' function. */ +#define HAVE_ISSETUGID 1 + +/* kernel has kernel_fpu_* functions */ +/* #undef HAVE_KERNEL_FPU */ + +/* kernel has asm/fpu/api.h */ +/* #undef HAVE_KERNEL_FPU_API_HEADER */ + +/* kernel fpu internal */ +/* #undef HAVE_KERNEL_FPU_INTERNAL */ + +/* uncached_acl_sentinel() exists */ +/* #undef HAVE_KERNEL_GET_ACL_HANDLE_CACHE */ + +/* kernel does stack verification */ +/* #undef HAVE_KERNEL_OBJTOOL */ + +/* kernel has linux/objtool.h */ +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */ + +/* kernel_read() take loff_t pointer */ +/* #undef HAVE_KERNEL_READ_PPOS */ + +/* timer_list.function gets a timer_list */ +/* #undef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST */ + +/* struct timer_list has a flags member */ +/* #undef HAVE_KERNEL_TIMER_LIST_FLAGS */ + +/* timer_setup() is available */ +/* #undef HAVE_KERNEL_TIMER_SETUP */ + +/* kernel_write() take loff_t pointer */ +/* #undef HAVE_KERNEL_WRITE_PPOS */ + +/* kmem_cache_create_usercopy() exists */ +/* #undef HAVE_KMEM_CACHE_CREATE_USERCOPY */ + +/* kstrtoul() exists */ +/* #undef HAVE_KSTRTOUL */ + +/* ktime_get_coarse_real_ts64() exists */ +/* #undef HAVE_KTIME_GET_COARSE_REAL_TS64 */ + +/* ktime_get_raw_ts64() exists */ +/* #undef HAVE_KTIME_GET_RAW_TS64 */ + +/* kvmalloc exists */ +/* #undef HAVE_KVMALLOC */ + +/* kernel has large stacks */ +/* #undef HAVE_LARGE_STACKS */ + +/* Define if you have [aio] */ +/* #undef HAVE_LIBAIO */ + +/* Define if you have [blkid] */ +/* #undef HAVE_LIBBLKID */ + +/* Define if you have [crypto] */ +#define HAVE_LIBCRYPTO 1 + +/* Define if you have [tirpc] */ +/* #undef HAVE_LIBTIRPC */ + +/* Define if you have [udev] */ +/* #undef HAVE_LIBUDEV */ + +/* Define if you have [uuid] */ +/* #undef HAVE_LIBUUID */ + +/* lseek_execute() is available */ +/* #undef HAVE_LSEEK_EXECUTE */ + +/* makedev() is declared in sys/mkdev.h */ +/* #undef HAVE_MAKEDEV_IN_MKDEV */ + +/* makedev() is declared in sys/sysmacros.h */ +/* #undef HAVE_MAKEDEV_IN_SYSMACROS */ + +/* Noting that make_request_fn() returns blk_qc_t */ +/* #undef HAVE_MAKE_REQUEST_FN_RET_QC */ + +/* Noting that make_request_fn() returns void */ +/* #undef HAVE_MAKE_REQUEST_FN_RET_VOID */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* iops->create()/mkdir()/mknod() take umode_t */ +/* #undef HAVE_MKDIR_UMODE_T */ + +/* Define to 1 if you have the `mlockall' function. */ +#define HAVE_MLOCKALL 1 + +/* lookup_bdev() wants mode arg */ +/* #undef HAVE_MODE_LOOKUP_BDEV */ + +/* Define if host toolchain supports MOVBE */ +#define HAVE_MOVBE 1 + +/* new_sync_read()/new_sync_write() are available */ +/* #undef HAVE_NEW_SYNC_READ */ + +/* iops->getattr() takes a path */ +/* #undef HAVE_PATH_IOPS_GETATTR */ + +/* Define if host toolchain supports PCLMULQDQ */ +#define HAVE_PCLMULQDQ 1 + +/* percpu_counter_init() wants gfp_t */ +/* #undef HAVE_PERCPU_COUNTER_INIT_WITH_GFP */ + +/* posix_acl_chmod() exists */ +/* #undef HAVE_POSIX_ACL_CHMOD */ + +/* posix_acl_from_xattr() needs user_ns */ +/* #undef HAVE_POSIX_ACL_FROM_XATTR_USERNS */ + +/* posix_acl_release() is available */ +/* #undef HAVE_POSIX_ACL_RELEASE */ + +/* posix_acl_release() is GPL-only */ +/* #undef HAVE_POSIX_ACL_RELEASE_GPL_ONLY */ + +/* posix_acl_valid() wants user namespace */ +/* #undef HAVE_POSIX_ACL_VALID_WITH_NS */ + +/* proc_ops structure exists */ +/* #undef HAVE_PROC_OPS_STRUCT */ + +/* iops->put_link() cookie */ +/* #undef HAVE_PUT_LINK_COOKIE */ + +/* iops->put_link() delayed */ +/* #undef HAVE_PUT_LINK_DELAYED */ + +/* iops->put_link() nameidata */ +/* #undef HAVE_PUT_LINK_NAMEIDATA */ + +/* If available, contains the Python version number currently in use. */ +#define HAVE_PYTHON "3.7" + +/* qat is enabled and existed */ +/* #undef HAVE_QAT */ + +/* iops->rename() wants flags */ +/* #undef HAVE_RENAME_WANTS_FLAGS */ + +/* REQ_DISCARD is defined */ +/* #undef HAVE_REQ_DISCARD */ + +/* REQ_FLUSH is defined */ +/* #undef HAVE_REQ_FLUSH */ + +/* REQ_OP_DISCARD is defined */ +/* #undef HAVE_REQ_OP_DISCARD */ + +/* REQ_OP_FLUSH is defined */ +/* #undef HAVE_REQ_OP_FLUSH */ + +/* REQ_OP_SECURE_ERASE is defined */ +/* #undef HAVE_REQ_OP_SECURE_ERASE */ + +/* REQ_PREFLUSH is defined */ +/* #undef HAVE_REQ_PREFLUSH */ + +/* revalidate_disk() is available */ +/* #undef HAVE_REVALIDATE_DISK */ + +/* revalidate_disk_size() is available */ +/* #undef HAVE_REVALIDATE_DISK_SIZE */ + +/* struct rw_semaphore has member activity */ +/* #undef HAVE_RWSEM_ACTIVITY */ + +/* struct rw_semaphore has atomic_long_t member count */ +/* #undef HAVE_RWSEM_ATOMIC_LONG_COUNT */ + +/* linux/sched/signal.h exists */ +/* #undef HAVE_SCHED_SIGNAL_HEADER */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SECURITY_PAM_MODULES_H 1 + +/* setattr_prepare() is available */ +/* #undef HAVE_SETATTR_PREPARE */ + +/* iops->set_acl() exists */ +/* #undef HAVE_SET_ACL */ + +/* set_cached_acl() is usable */ +/* #undef HAVE_SET_CACHED_ACL_USABLE */ + +/* struct shrink_control exists */ +/* #undef HAVE_SHRINK_CONTROL_STRUCT */ + +/* new shrinker callback wants 2 args */ +/* #undef HAVE_SINGLE_SHRINKER_CALLBACK */ + +/* ->count_objects exists */ +/* #undef HAVE_SPLIT_SHRINKER_CALLBACK */ + +#if defined(__amd64__) || defined(__i386__) +/* Define if host toolchain supports SSE */ +#define HAVE_SSE 1 + +/* Define if host toolchain supports SSE2 */ +#define HAVE_SSE2 1 + +/* Define if host toolchain supports SSE3 */ +#define HAVE_SSE3 1 + +/* Define if host toolchain supports SSE4.1 */ +#define HAVE_SSE4_1 1 + +/* Define if host toolchain supports SSE4.2 */ +#define HAVE_SSE4_2 1 + +/* Define if host toolchain supports SSSE3 */ +#define HAVE_SSSE3 1 +#endif + +/* STACK_FRAME_NON_STANDARD is defined */ +/* #undef HAVE_STACK_FRAME_NON_STANDARD */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcat' function. */ +#define HAVE_STRLCAT 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* submit_bio is member of struct block_device_operations */ +/* #undef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS */ + +/* super_setup_bdi_name() exits */ +/* #undef HAVE_SUPER_SETUP_BDI_NAME */ + +/* super_block->s_user_ns exists */ +/* #undef HAVE_SUPER_USER_NS */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* i_op->tmpfile() exists */ +/* #undef HAVE_TMPFILE */ + +/* totalhigh_pages() exists */ +/* #undef HAVE_TOTALHIGH_PAGES */ + +/* kernel has totalram_pages() */ +/* #undef HAVE_TOTALRAM_PAGES_FUNC */ + +/* Define to 1 if you have the `udev_device_get_is_initialized' function. */ +/* #undef HAVE_UDEV_DEVICE_GET_IS_INITIALIZED */ + +/* kernel has __kernel_fpu_* functions */ +/* #undef HAVE_UNDERSCORE_KERNEL_FPU */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* iops->getattr() takes a vfsmount */ +/* #undef HAVE_VFSMOUNT_IOPS_GETATTR */ + +/* aops->direct_IO() uses iovec */ +/* #undef HAVE_VFS_DIRECT_IO_IOVEC */ + +/* aops->direct_IO() uses iov_iter without rw */ +/* #undef HAVE_VFS_DIRECT_IO_ITER */ + +/* aops->direct_IO() uses iov_iter with offset */ +/* #undef HAVE_VFS_DIRECT_IO_ITER_OFFSET */ + +/* aops->direct_IO() uses iov_iter with rw and offset */ +/* #undef HAVE_VFS_DIRECT_IO_ITER_RW_OFFSET */ + +/* All required iov_iter interfaces are available */ +/* #undef HAVE_VFS_IOV_ITER */ + +/* fops->iterate() is available */ +/* #undef HAVE_VFS_ITERATE */ + +/* fops->iterate_shared() is available */ +/* #undef HAVE_VFS_ITERATE_SHARED */ + +/* fops->readdir() is available */ +/* #undef HAVE_VFS_READDIR */ + +/* fops->read/write_iter() are available */ +/* #undef HAVE_VFS_RW_ITERATE */ + +/* __vmalloc page flags exists */ +/* #undef HAVE_VMALLOC_PAGE_KERNEL */ + +/* yes */ +/* #undef HAVE_WAIT_ON_BIT_ACTION */ + +/* wait_queue_entry_t exists */ +/* #undef HAVE_WAIT_QUEUE_ENTRY_T */ + +/* wq_head->head and wq_entry->entry exist */ +/* #undef HAVE_WAIT_QUEUE_HEAD_ENTRY */ + +/* xattr_handler->get() wants dentry */ +/* #undef HAVE_XATTR_GET_DENTRY */ + +/* xattr_handler->get() wants both dentry and inode */ +/* #undef HAVE_XATTR_GET_DENTRY_INODE */ + +/* xattr_handler->get() wants xattr_handler */ +/* #undef HAVE_XATTR_GET_HANDLER */ + +/* xattr_handler has name */ +/* #undef HAVE_XATTR_HANDLER_NAME */ + +/* xattr_handler->list() wants dentry */ +/* #undef HAVE_XATTR_LIST_DENTRY */ + +/* xattr_handler->list() wants xattr_handler */ +/* #undef HAVE_XATTR_LIST_HANDLER */ + +/* xattr_handler->list() wants simple */ +/* #undef HAVE_XATTR_LIST_SIMPLE */ + +/* xattr_handler->set() wants dentry */ +/* #undef HAVE_XATTR_SET_DENTRY */ + +/* xattr_handler->set() wants both dentry and inode */ +/* #undef HAVE_XATTR_SET_DENTRY_INODE */ + +/* xattr_handler->set() wants xattr_handler */ +/* #undef HAVE_XATTR_SET_HANDLER */ + +/* Define if you have [z] */ +#define HAVE_ZLIB 1 + +/* __posix_acl_chmod() exists */ +/* #undef HAVE___POSIX_ACL_CHMOD */ + +/* kernel exports FPU functions */ +/* #undef KERNEL_EXPORTS_X86_FPU */ + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* make_request_fn() return type */ +/* #undef MAKE_REQUEST_FN_RET */ + +/* hardened module_param_call */ +/* #undef MODULE_PARAM_CALL_CONST */ + +/* struct shrink_control has nid */ +/* #undef SHRINK_CONTROL_HAS_NID */ + +/* Defined for legacy compatibility. */ +#define SPL_META_ALIAS ZFS_META_ALIAS + +/* Defined for legacy compatibility. */ +#define SPL_META_RELEASE ZFS_META_RELEASE + +/* Defined for legacy compatibility. */ +#define SPL_META_VERSION ZFS_META_VERSION + +/* True if ZFS is to be compiled for a FreeBSD system */ +#define SYSTEM_FREEBSD 1 + +/* True if ZFS is to be compiled for a Linux system */ +/* #undef SYSTEM_LINUX */ + +/* zfs debugging enabled */ +/* #undef ZFS_DEBUG */ + +/* /dev/zfs minor */ +/* #undef ZFS_DEVICE_MINOR */ + +/* enum node_stat_item contains NR_FILE_PAGES */ +/* #undef ZFS_ENUM_NODE_STAT_ITEM_NR_FILE_PAGES */ + +/* enum node_stat_item contains NR_INACTIVE_ANON */ +/* #undef ZFS_ENUM_NODE_STAT_ITEM_NR_INACTIVE_ANON */ + +/* enum node_stat_item contains NR_INACTIVE_FILE */ +/* #undef ZFS_ENUM_NODE_STAT_ITEM_NR_INACTIVE_FILE */ + +/* enum zone_stat_item contains NR_FILE_PAGES */ +/* #undef ZFS_ENUM_ZONE_STAT_ITEM_NR_FILE_PAGES */ + +/* enum zone_stat_item contains NR_INACTIVE_ANON */ +/* #undef ZFS_ENUM_ZONE_STAT_ITEM_NR_INACTIVE_ANON */ + +/* enum zone_stat_item contains NR_INACTIVE_FILE */ +/* #undef ZFS_ENUM_ZONE_STAT_ITEM_NR_INACTIVE_FILE */ + +/* global_node_page_state() exists */ +/* #undef ZFS_GLOBAL_NODE_PAGE_STATE */ + +/* global_zone_page_state() exists */ +/* #undef ZFS_GLOBAL_ZONE_PAGE_STATE */ + +/* Define to 1 if GPL-only symbols can be used */ +/* #undef ZFS_IS_GPL_COMPATIBLE */ + +/* Define the project alias string. */ - #define ZFS_META_ALIAS "zfs-2.0.0-FreeBSD_g891568c99" ++#define ZFS_META_ALIAS "zfs-2.1.0-FreeBSD_g3522f57b6" + +/* Define the project author. */ +#define ZFS_META_AUTHOR "OpenZFS" + +/* Define the project release date. */ +/* #undef ZFS_META_DATA */ + +/* Define the maximum compatible kernel version. */ +#define ZFS_META_KVER_MAX "5.11" + +/* Define the minimum compatible kernel version. */ +#define ZFS_META_KVER_MIN "3.10" + +/* Define the project license. */ +#define ZFS_META_LICENSE "CDDL" + +/* Define the libtool library 'age' version information. */ +/* #undef ZFS_META_LT_AGE */ + +/* Define the libtool library 'current' version information. */ +/* #undef ZFS_META_LT_CURRENT */ + +/* Define the libtool library 'revision' version information. */ +/* #undef ZFS_META_LT_REVISION */ + +/* Define the project name. */ +#define ZFS_META_NAME "zfs" + +/* Define the project release. */ - #define ZFS_META_RELEASE "FreeBSD_g891568c99" ++#define ZFS_META_RELEASE "FreeBSD_g3522f57b6" + +/* Define the project version. */ - #define ZFS_META_VERSION "2.0.0" ++#define ZFS_META_VERSION "2.1.0" + +/* count is located in percpu_ref.data */ +/* #undef ZFS_PERCPU_REF_COUNT_IN_DATA */ + From owner-dev-commits-src-main@freebsd.org Wed Apr 14 11:36:34 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 961AC5D4755; Wed, 14 Apr 2021 11:36:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FL0mf3ss4z4svV; Wed, 14 Apr 2021 11:36:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 77AAD1D326; Wed, 14 Apr 2021 11:36:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EBaYJG098618; Wed, 14 Apr 2021 11:36:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EBaYwq098617; Wed, 14 Apr 2021 11:36:34 GMT (envelope-from git) Date: Wed, 14 Apr 2021 11:36:34 GMT Message-Id: <202104141136.13EBaYwq098617@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 4eabfe468b6e - main - pfctl: Fix clearing rules counters MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4eabfe468b6e80a0823523d83dc908c27ec823c7 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 11:36:34 -0000 The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=4eabfe468b6e80a0823523d83dc908c27ec823c7 commit 4eabfe468b6e80a0823523d83dc908c27ec823c7 Author: Kristof Provost AuthorDate: 2021-04-12 15:23:33 +0000 Commit: Kristof Provost CommitDate: 2021-04-14 11:33:02 +0000 pfctl: Fix clearing rules counters After the migration to libpfctl for rule retrieval we accidentally lost support for clearing the rules counters. Introduce a get_clear variant of pfctl_get_rule() which allows rules counters to be cleared. MFC after: 4 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D29727 --- lib/libpfctl/libpfctl.c | 11 +++++++++++ lib/libpfctl/libpfctl.h | 3 +++ sbin/pfctl/pfctl.c | 10 ++++------ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index b8b8c1b526b3..8d81248e0229 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -507,6 +507,14 @@ pfctl_add_rule(int dev, const struct pfctl_rule *r, const char *anchor, int pfctl_get_rule(int dev, u_int32_t nr, u_int32_t ticket, const char *anchor, u_int32_t ruleset, struct pfctl_rule *rule, char *anchor_call) +{ + return (pfctl_get_clear_rule(dev, nr, ticket, anchor, ruleset, rule, + anchor_call, false)); +} + +int pfctl_get_clear_rule(int dev, u_int32_t nr, u_int32_t ticket, + const char *anchor, u_int32_t ruleset, struct pfctl_rule *rule, + char *anchor_call, bool clear) { struct pfioc_nv nv; nvlist_t *nvl; @@ -522,6 +530,9 @@ pfctl_get_rule(int dev, u_int32_t nr, u_int32_t ticket, const char *anchor, nvlist_add_string(nvl, "anchor", anchor); nvlist_add_number(nvl, "ruleset", ruleset); + if (clear) + nvlist_add_bool(nvl, "clear_counter", true); + nvlpacked = nvlist_pack(nvl, &nv.len); if (nvlpacked == NULL) { nvlist_destroy(nvl); diff --git a/lib/libpfctl/libpfctl.h b/lib/libpfctl/libpfctl.h index 674a25f04b9a..32d0184f42ed 100644 --- a/lib/libpfctl/libpfctl.h +++ b/lib/libpfctl/libpfctl.h @@ -182,6 +182,9 @@ RB_PROTOTYPE(pfctl_anchor_node, pfctl_anchor, entry_node, int pfctl_get_rule(int dev, u_int32_t nr, u_int32_t ticket, const char *anchor, u_int32_t ruleset, struct pfctl_rule *rule, char *anchor_call); +int pfctl_get_clear_rule(int dev, u_int32_t nr, u_int32_t ticket, + const char *anchor, u_int32_t ruleset, struct pfctl_rule *rule, + char *anchor_call, bool clear); int pfctl_add_rule(int dev, const struct pfctl_rule *r, const char *anchor, const char *anchor_call, u_int32_t ticket, u_int32_t pool_ticket); diff --git a/sbin/pfctl/pfctl.c b/sbin/pfctl/pfctl.c index 879fc876826c..9f6b3d2e36ea 100644 --- a/sbin/pfctl/pfctl.c +++ b/sbin/pfctl/pfctl.c @@ -949,13 +949,11 @@ pfctl_show_rules(int dev, char *path, int opts, enum pfctl_show format, pfctl_print_title("LABEL COUNTERS:"); } mnr = pr.nr; - if (opts & PF_OPT_CLRRULECTRS) - pr.action = PF_GET_CLR_CNTR; for (nr = 0; nr < mnr; ++nr) { pr.nr = nr; - if (pfctl_get_rule(dev, nr, pr.ticket, path, PF_SCRUB, - &rule, pr.anchor_call)) { + if (pfctl_get_clear_rule(dev, nr, pr.ticket, path, PF_SCRUB, + &rule, pr.anchor_call, opts & PF_OPT_CLRRULECTRS)) { warn("DIOCGETRULENV"); goto error; } @@ -987,8 +985,8 @@ pfctl_show_rules(int dev, char *path, int opts, enum pfctl_show format, mnr = pr.nr; for (nr = 0; nr < mnr; ++nr) { pr.nr = nr; - if (pfctl_get_rule(dev, nr, pr.ticket, path, PF_PASS, - &rule, pr.anchor_call)) { + if (pfctl_get_clear_rule(dev, nr, pr.ticket, path, PF_PASS, + &rule, pr.anchor_call, opts & PF_OPT_CLRRULECTRS)) { warn("DIOCGETRULE"); goto error; } From owner-dev-commits-src-main@freebsd.org Wed Apr 14 11:36:35 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BE03E5D47DF; Wed, 14 Apr 2021 11:36:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FL0mg4qzpz4t9q; Wed, 14 Apr 2021 11:36:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 981C61D0FC; Wed, 14 Apr 2021 11:36:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EBaZQQ098643; Wed, 14 Apr 2021 11:36:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EBaZxn098642; Wed, 14 Apr 2021 11:36:35 GMT (envelope-from git) Date: Wed, 14 Apr 2021 11:36:35 GMT Message-Id: <202104141136.13EBaZxn098642@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 112f007e1281 - main - pf tests: Test clearing rules counters MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 112f007e12818ba3d54869b331139090e69dbc74 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 11:36:35 -0000 The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=112f007e12818ba3d54869b331139090e69dbc74 commit 112f007e12818ba3d54869b331139090e69dbc74 Author: Kristof Provost AuthorDate: 2021-04-12 15:29:19 +0000 Commit: Kristof Provost CommitDate: 2021-04-14 11:33:02 +0000 pf tests: Test clearing rules counters This was briefly broken, so ensure that we can read and clear rules counters. MFC after: 4 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D29728 --- tests/sys/netpfil/pf/Makefile | 1 + tests/sys/netpfil/pf/rules_counter.sh | 79 +++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/tests/sys/netpfil/pf/Makefile b/tests/sys/netpfil/pf/Makefile index 86b85df8e18d..5cf11da76faf 100644 --- a/tests/sys/netpfil/pf/Makefile +++ b/tests/sys/netpfil/pf/Makefile @@ -19,6 +19,7 @@ ATF_TESTS_SH+= altq \ pfsync \ rdr \ route_to \ + rules_counter \ set_skip \ set_tos \ src_track \ diff --git a/tests/sys/netpfil/pf/rules_counter.sh b/tests/sys/netpfil/pf/rules_counter.sh new file mode 100644 index 000000000000..56dc159f49c8 --- /dev/null +++ b/tests/sys/netpfil/pf/rules_counter.sh @@ -0,0 +1,79 @@ +# $FreeBSD$ +# +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright (c) 2021 Rubicon Communications, LLC (Netgate) +# +# 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)/utils.subr + +atf_test_case "get_clear" "cleanup" +get_clear_head() +{ + atf_set descr 'Test clearing rules counters on get rules' + atf_set require.user root +} + +get_clear_body() +{ + pft_init + + epair_send=$(vnet_mkepair) + ifconfig ${epair_send}a 192.0.2.1/24 up + + vnet_mkjail alcatraz ${epair_send}b + jexec alcatraz ifconfig ${epair_send}b 192.0.2.2/24 up + jexec alcatraz pfctl -e + + pft_set_rules alcatraz \ + "pass all" + + # Ensure the rule matched packets, so we can verify non-zero counters + atf_check -s exit:0 -o ignore ping -c 3 192.0.2.2 + + # Expect non-zero counters + atf_check -s exit:0 -e ignore \ + -o match:'Evaluations: [1-9][0-9]*[[:space:]]*Packets: [1-9][0-9]*[[:space:]]*Bytes: [1-9][0-9]*[[:space:]]*' \ + jexec alcatraz pfctl -s r -v + + # We should still see non-zero because we didn't clear on the last + # pfctl, but are going to clear now + atf_check -s exit:0 -e ignore \ + -o match:'Evaluations: [1-9][0-9]*[[:space:]]*Packets: [1-9][0-9]*[[:space:]]*Bytes: [1-9][0-9]*[[:space:]]*' \ + jexec alcatraz pfctl -s r -v -z + + # Expect zero counters + atf_check -s exit:0 -e ignore \ + -o match:'Evaluations: 0[[:space:]]*Packets: 0*[[:space:]]*Bytes: 0*[[:space:]]*' \ + jexec alcatraz pfctl -s r -v +} + +get_clear_cleanup() +{ + pft_cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case "get_clear" +} From owner-dev-commits-src-main@freebsd.org Wed Apr 14 13:44:58 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EAD335D96E9; Wed, 14 Apr 2021 13:44:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FL3cp6MFmz3H9T; Wed, 14 Apr 2021 13:44:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CCBAD1E76A; Wed, 14 Apr 2021 13:44:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EDiwvZ073287; Wed, 14 Apr 2021 13:44:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EDiw6j073286; Wed, 14 Apr 2021 13:44:58 GMT (envelope-from git) Date: Wed, 14 Apr 2021 13:44:58 GMT Message-Id: <202104141344.13EDiw6j073286@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Emmanuel Vadot Subject: git: 0c80ad2dc689 - main - arm: Add no-cftconvert for sdma-imx6 files MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: manu X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0c80ad2dc6896c1fd1294cb1af59ab1f8fc95206 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 13:44:59 -0000 The branch main has been updated by manu: URL: https://cgit.FreeBSD.org/src/commit/?id=0c80ad2dc6896c1fd1294cb1af59ab1f8fc95206 commit 0c80ad2dc6896c1fd1294cb1af59ab1f8fc95206 Author: Emmanuel Vadot AuthorDate: 2021-04-14 13:43:37 +0000 Commit: Emmanuel Vadot CommitDate: 2021-04-14 13:43:37 +0000 arm: Add no-cftconvert for sdma-imx6 files Fixes a warning when building kernel: ctfconvert: file.c: Couldn't read ehdr: Invalid argument MFC after: 3 days --- sys/arm/freescale/imx/files.imx6 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/arm/freescale/imx/files.imx6 b/sys/arm/freescale/imx/files.imx6 index 0b71e1e6bf6a..926c2b25f4b9 100644 --- a/sys/arm/freescale/imx/files.imx6 +++ b/sys/arm/freescale/imx/files.imx6 @@ -50,12 +50,12 @@ arm/freescale/imx/imx6_usbphy.c optional ehci # SDMA firmware. sdma-imx6q.c optional fslsdma \ compile-with "${AWK} -f $S/tools/fw_stub.awk sdma-imx6q.bin:sdma-imx6q -msdma -c${.TARGET}" \ - no-implicit-rule before-depend local \ + no-ctfconvert no-implicit-rule before-depend local \ clean "sdma-imx6q.c" sdma-imx6q.fwo optional fslsdma \ dependency "sdma-imx6q.bin" \ compile-with "${LD} -m ${LD_EMULATION} -b binary -d -warn-common -r -d -o ${.TARGET} sdma-imx6q.bin" \ - no-implicit-rule \ + no-ctfconvert no-implicit-rule \ clean "sdma-imx6q.fwo" sdma-imx6q.bin optional fslsdma \ dependency "$S/contrib/dev/imx/sdma-imx6q.bin.uu" \ From owner-dev-commits-src-main@freebsd.org Wed Apr 14 15:18:54 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BCEAA5DD37F; Wed, 14 Apr 2021 15:18:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FL5jB50Nnz3NhB; Wed, 14 Apr 2021 15:18:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9E41C201F6; Wed, 14 Apr 2021 15:18:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EFIsFa093191; Wed, 14 Apr 2021 15:18:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EFIs2t093190; Wed, 14 Apr 2021 15:18:54 GMT (envelope-from git) Date: Wed, 14 Apr 2021 15:18:54 GMT Message-Id: <202104141518.13EFIs2t093190@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Yuri Pankov Subject: git: adec9669ff16 - main - expand @TPUT@ in ncurses manpages MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: yuripv X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: adec9669ff1679f1220352800c0dfdcc7963802c Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 15:18:54 -0000 The branch main has been updated by yuripv: URL: https://cgit.FreeBSD.org/src/commit/?id=adec9669ff1679f1220352800c0dfdcc7963802c commit adec9669ff1679f1220352800c0dfdcc7963802c Author: Yuri Pankov AuthorDate: 2021-04-14 15:16:59 +0000 Commit: Yuri Pankov CommitDate: 2021-04-14 15:16:59 +0000 expand @TPUT@ in ncurses manpages Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D29761 --- lib/ncurses/config.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ncurses/config.mk b/lib/ncurses/config.mk index cd569ddf9ec8..0ca0e4547ba8 100644 --- a/lib/ncurses/config.mk +++ b/lib/ncurses/config.mk @@ -45,6 +45,7 @@ MANFILTER= sed -e 's%@TERMINFO@%${TERMINFODIR}/terminfo%g' \ -e 's%@NCURSES_MAJOR@%${NCURSES_MAJOR}%g' \ -e 's%@NCURSES_MINOR@%${NCURSES_MINOR}%g' \ -e 's%@NCURSES_PATCH@%${NCURSES_PATCH}%g' \ + -e 's%@TPUT@%tput%g' \ -e 's%@TSET@%tset%g' \ -e 's%@RESET@%reset%g' \ -e 's%@CLEAR@%clear%g' \ From owner-dev-commits-src-main@freebsd.org Wed Apr 14 16:35:51 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1B84A5E0F02; Wed, 14 Apr 2021 16:35:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FL7Pz0HkFz3jy1; Wed, 14 Apr 2021 16:35:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ECD00212B3; Wed, 14 Apr 2021 16:35:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EGZoFa098503; Wed, 14 Apr 2021 16:35:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EGZoge098502; Wed, 14 Apr 2021 16:35:50 GMT (envelope-from git) Date: Wed, 14 Apr 2021 16:35:50 GMT Message-Id: <202104141635.13EGZoge098502@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gordon Bergling Subject: git: b1ab802ce490 - main - ossl(4): Install the man page also for arm64 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b1ab802ce4908b6af93e3a3b4328377003735357 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 16:35:51 -0000 The branch main has been updated by gbe (doc committer): URL: https://cgit.FreeBSD.org/src/commit/?id=b1ab802ce4908b6af93e3a3b4328377003735357 commit b1ab802ce4908b6af93e3a3b4328377003735357 Author: Gordon Bergling AuthorDate: 2021-04-14 16:32:56 +0000 Commit: Gordon Bergling CommitDate: 2021-04-14 16:32:56 +0000 ossl(4): Install the man page also for arm64 In 22bd0c9731d7 ossl(4) was ported to arm64. The manual page was adapted, but never installed since the ossl(4) manual page was i386 / amd64 only. Reviewed by: mhorne MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D29762 --- share/man/man4/Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 026b1c0faf31..f7626c80eeb1 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -833,7 +833,6 @@ _ntb_transport.4=ntb_transport.4 _nvd.4= nvd.4 _nvme.4= nvme.4 _nvram.4= nvram.4 -_ossl.4= ossl.4 _padlock.4= padlock.4 _pchtherm.4= pchtherm.4 _qat.4= qat.4 @@ -887,6 +886,11 @@ _nvd.4= nvd.4 _nvme.4= nvme.4 .endif +.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \ + ${MACHINE_CPUARCH} == "aarch64" +_ossl.4= ossl.4 +.endif + .if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "aarch64" || \ ${MACHINE_CPUARCH} == "riscv" _cgem.4= cgem.4 From owner-dev-commits-src-main@freebsd.org Wed Apr 14 17:03:44 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B27635E19A0; Wed, 14 Apr 2021 17:03:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FL8284hCfz3lZH; Wed, 14 Apr 2021 17:03:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 936F221642; Wed, 14 Apr 2021 17:03:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EH3idi038615; Wed, 14 Apr 2021 17:03:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EH3ikX038614; Wed, 14 Apr 2021 17:03:44 GMT (envelope-from git) Date: Wed, 14 Apr 2021 17:03:44 GMT Message-Id: <202104141703.13EH3ikX038614@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 29bb6c19f044 - main - domainset: Define additional global policies MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 29bb6c19f044274cc6693f0c2463ca22106cd3ab Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 17:03:44 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=29bb6c19f044274cc6693f0c2463ca22106cd3ab commit 29bb6c19f044274cc6693f0c2463ca22106cd3ab Author: Mark Johnston AuthorDate: 2021-04-14 16:56:39 +0000 Commit: Mark Johnston CommitDate: 2021-04-14 17:03:33 +0000 domainset: Define additional global policies Add global definitions for first-touch and interleave policies. The former may be useful for UMA, which implements a similar policy without using domainset iterators. No functional change intended. Reviewed by: mav MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29104 --- share/man/man9/domainset.9 | 20 ++++++++++++++++++-- sys/kern/kern_cpuset.c | 38 ++++++++++++++++++++++++-------------- sys/sys/domainset.h | 4 ++++ 3 files changed, 46 insertions(+), 16 deletions(-) diff --git a/share/man/man9/domainset.9 b/share/man/man9/domainset.9 index 5660f13afa88..969d9dd3b554 100644 --- a/share/man/man9/domainset.9 +++ b/share/man/man9/domainset.9 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 30, 2018 +.Dd April 14, 2021 .Dt DOMAINSET 9 .Os .Sh NAME @@ -46,6 +46,10 @@ struct domainset { .Ft struct domainset * .Fn DOMAINSET_FIXED domain .Ft struct domainset * +.Fn DOMAINSET_FT +.Ft struct domainset * +.Fn DOMAINSET_IL +.Ft struct domainset * .Fn DOMAINSET_RR .Ft struct domainset * .Fn DOMAINSET_PREF domain @@ -104,6 +108,8 @@ efficiency higher and is preferential to round-robin for general use. .Pp The .Fn DOMAINSET_FIXED , +.Fn DOMAINSET_FT , +.Fn DOMAINSET_IL , .Fn DOMAINSET_RR and .Fn DOMAINSET_PREF @@ -111,8 +117,18 @@ macros provide pointers to global pre-defined policies for use when the desired policy is known at compile time. .Fn DOMAINSET_FIXED is a policy which only permits allocations from the specified domain. +.Fn DOMAINSET_FT +is a policy which attempts to allocate memory local to the current CPU, +falling back to a round-robin policy if the initial allocation fails. +.Fn DOMAINSET_IL +and .Fn DOMAINSET_RR -provides round-robin selection among all domains in the system. +provide round-robin selection among all domains in the system, corresponding +to the +.Dv DOMAINSET_POLICY_INTERLEAVE +and +.Dv DOMAINSET_POLICY_ROUNDROBIN +policies, respectively. The .Fn DOMAINSET_PREF policies attempt allocation from the specified domain, but unlike diff --git a/sys/kern/kern_cpuset.c b/sys/kern/kern_cpuset.c index 19ad3fd20955..119df57c7b02 100644 --- a/sys/kern/kern_cpuset.c +++ b/sys/kern/kern_cpuset.c @@ -119,7 +119,9 @@ __FBSDID("$FreeBSD$"); */ LIST_HEAD(domainlist, domainset); +struct domainset __read_mostly domainset_firsttouch; struct domainset __read_mostly domainset_fixed[MAXMEMDOM]; +struct domainset __read_mostly domainset_interleave; struct domainset __read_mostly domainset_prefer[MAXMEMDOM]; struct domainset __read_mostly domainset_roundrobin; @@ -130,7 +132,7 @@ static struct setlist cpuset_ids; static struct domainlist cpuset_domains; static struct unrhdr *cpuset_unr; static struct cpuset *cpuset_zero, *cpuset_default, *cpuset_kernel; -static struct domainset domainset0, domainset2; +static struct domainset *domainset0, *domainset2; /* Return the size of cpuset_t at the kernel level */ SYSCTL_INT(_kern_sched, OID_AUTO, cpusetsize, CTLFLAG_RD | CTLFLAG_CAPRD, @@ -568,7 +570,7 @@ domainset_create(const struct domainset *domain) if (domain->ds_policy == DOMAINSET_POLICY_PREFER && !DOMAINSET_ISSET(domain->ds_prefer, &domain->ds_mask)) return (NULL); - if (!DOMAINSET_SUBSET(&domainset0.ds_mask, &domain->ds_mask)) + if (!DOMAINSET_SUBSET(&domainset0->ds_mask, &domain->ds_mask)) return (NULL); ndomain = uma_zalloc(domainset_zone, M_WAITOK | M_ZERO); domainset_copy(domain, ndomain); @@ -1532,6 +1534,18 @@ domainset_init(void) struct domainset *dset; int i; + dset = &domainset_firsttouch; + DOMAINSET_COPY(&all_domains, &dset->ds_mask); + dset->ds_policy = DOMAINSET_POLICY_FIRSTTOUCH; + dset->ds_prefer = -1; + _domainset_create(dset, NULL); + + dset = &domainset_interleave; + DOMAINSET_COPY(&all_domains, &dset->ds_mask); + dset->ds_policy = DOMAINSET_POLICY_INTERLEAVE; + dset->ds_prefer = -1; + _domainset_create(dset, NULL); + dset = &domainset_roundrobin; DOMAINSET_COPY(&all_domains, &dset->ds_mask); dset->ds_policy = DOMAINSET_POLICY_ROUNDROBIN; @@ -1554,7 +1568,7 @@ domainset_init(void) } /* - * Create the domainset for cpuset 0, 1 and cpuset 2. + * Define the domainsets for cpuset 0, 1 and cpuset 2. */ void domainset_zero(void) @@ -1563,15 +1577,11 @@ domainset_zero(void) mtx_init(&cpuset_lock, "cpuset", NULL, MTX_SPIN | MTX_RECURSE); - dset = &domainset0; - DOMAINSET_COPY(&all_domains, &dset->ds_mask); - dset->ds_policy = DOMAINSET_POLICY_FIRSTTOUCH; - dset->ds_prefer = -1; - curthread->td_domain.dr_policy = _domainset_create(dset, NULL); + domainset0 = &domainset_firsttouch; + curthread->td_domain.dr_policy = domainset0; - domainset_copy(dset, &domainset2); - domainset2.ds_policy = DOMAINSET_POLICY_INTERLEAVE; - kernel_object->domain.dr_policy = _domainset_create(&domainset2, NULL); + domainset2 = &domainset_interleave; + kernel_object->domain.dr_policy = domainset2; /* Remove empty domains from the global policies. */ LIST_FOREACH_SAFE(dset, &cpuset_domains, ds_link, tmp) @@ -1613,7 +1623,7 @@ cpuset_thread0(void) LIST_INSERT_HEAD(&cpuset_ids, set, cs_link); refcount_init(&set->cs_ref, 1); set->cs_flags = CPU_SET_ROOT | CPU_SET_RDONLY; - set->cs_domain = &domainset0; + set->cs_domain = domainset0; cpuset_zero = set; cpuset_root = &set->cs_mask; @@ -1630,7 +1640,7 @@ cpuset_thread0(void) set = uma_zalloc(cpuset_zone, M_WAITOK | M_ZERO); error = cpuset_init(set, cpuset_zero, NULL, NULL, 2); KASSERT(error == 0, ("Error creating kernel set: %d\n", error)); - set->cs_domain = &domainset2; + set->cs_domain = domainset2; cpuset_kernel = set; /* @@ -2315,7 +2325,7 @@ kern_cpuset_setdomain(struct thread *td, cpulevel_t level, cpuwhich_t which, * across all domains. */ if (domainset_empty_vm(&domain)) - domainset_copy(&domainset2, &domain); + domainset_copy(domainset2, &domain); switch (level) { case CPU_LEVEL_ROOT: diff --git a/sys/sys/domainset.h b/sys/sys/domainset.h index 7b1180012f4c..2113196d8d26 100644 --- a/sys/sys/domainset.h +++ b/sys/sys/domainset.h @@ -95,6 +95,10 @@ struct domainset { domainid_t ds_order[MAXMEMDOM]; /* nth domain table. */ }; +extern struct domainset domainset_firsttouch; +#define DOMAINSET_FT() (&domainset_firsttouch) +extern struct domainset domainset_interleave; +#define DOMAINSET_IL() (&domainset_interleave) extern struct domainset domainset_fixed[MAXMEMDOM], domainset_prefer[MAXMEMDOM]; #define DOMAINSET_FIXED(domain) (&domainset_fixed[(domain)]) #define DOMAINSET_PREF(domain) (&domainset_prefer[(domain)]) From owner-dev-commits-src-main@freebsd.org Wed Apr 14 17:03:45 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E9EA55E1896; Wed, 14 Apr 2021 17:03:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FL82964B6z3lZM; Wed, 14 Apr 2021 17:03:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ACA98216AA; Wed, 14 Apr 2021 17:03:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EH3jx7038636; Wed, 14 Apr 2021 17:03:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EH3jYZ038635; Wed, 14 Apr 2021 17:03:45 GMT (envelope-from git) Date: Wed, 14 Apr 2021 17:03:45 GMT Message-Id: <202104141703.13EH3jYZ038635@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 54f421f9e842 - main - uma: Split bucket_cache_drain() to permit per-domain reclamation MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 54f421f9e84234c4313f2d636e4ebd74009a74d6 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 17:03:46 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=54f421f9e84234c4313f2d636e4ebd74009a74d6 commit 54f421f9e84234c4313f2d636e4ebd74009a74d6 Author: Mark Johnston AuthorDate: 2021-04-09 13:47:09 +0000 Commit: Mark Johnston CommitDate: 2021-04-14 17:03:34 +0000 uma: Split bucket_cache_drain() to permit per-domain reclamation Note that the per-domain variant does not shrink the target bucket size. No functional change intended. MFC after: 2 weeks Sponsored by: The FreeBSD Foundation --- sys/vm/uma_core.c | 78 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c index d73eef70e249..0348d6468d74 100644 --- a/sys/vm/uma_core.c +++ b/sys/vm/uma_core.c @@ -1400,11 +1400,50 @@ pcpu_cache_drain_safe(uma_zone_t zone) * estimated working set size. */ static void -bucket_cache_reclaim(uma_zone_t zone, bool drain) +bucket_cache_reclaim_domain(uma_zone_t zone, bool drain, int domain) { uma_zone_domain_t zdom; uma_bucket_t bucket; long target; + + /* + * The cross bucket is partially filled and not part of + * the item count. Reclaim it individually here. + */ + zdom = ZDOM_GET(zone, domain); + if ((zone->uz_flags & UMA_ZONE_SMR) == 0 || drain) { + ZONE_CROSS_LOCK(zone); + bucket = zdom->uzd_cross; + zdom->uzd_cross = NULL; + ZONE_CROSS_UNLOCK(zone); + if (bucket != NULL) + bucket_free(zone, bucket, NULL); + } + + /* + * 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 + * difference nitems - imin is larger than the WSS estimate, + * 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 = zone_fetch_bucket(zone, zdom, true); + if (bucket == NULL) + break; + bucket_free(zone, bucket, NULL); + ZDOM_LOCK(zdom); + } + ZDOM_UNLOCK(zdom); +} + +static void +bucket_cache_reclaim(uma_zone_t zone, bool drain) +{ int i; /* @@ -1414,41 +1453,8 @@ bucket_cache_reclaim(uma_zone_t zone, bool drain) 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 = ZDOM_GET(zone, i); - if ((zone->uz_flags & UMA_ZONE_SMR) == 0 || drain) { - ZONE_CROSS_LOCK(zone); - bucket = zdom->uzd_cross; - zdom->uzd_cross = NULL; - ZONE_CROSS_UNLOCK(zone); - if (bucket != NULL) - bucket_free(zone, bucket, NULL); - } - - /* - * 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 - * difference nitems - imin is larger than the WSS estimate, - * 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 = zone_fetch_bucket(zone, zdom, true); - if (bucket == NULL) - break; - bucket_free(zone, bucket, NULL); - ZDOM_LOCK(zdom); - } - ZDOM_UNLOCK(zdom); - } + for (i = 0; i < vm_ndomains; i++) + bucket_cache_reclaim_domain(zone, drain, i); } static void From owner-dev-commits-src-main@freebsd.org Wed Apr 14 17:03:47 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 58E005E1841; Wed, 14 Apr 2021 17:03:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FL82C0X9jz3lLd; Wed, 14 Apr 2021 17:03:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D6228214F3; Wed, 14 Apr 2021 17:03:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EH3kDI038660; Wed, 14 Apr 2021 17:03:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EH3kpg038659; Wed, 14 Apr 2021 17:03:46 GMT (envelope-from git) Date: Wed, 14 Apr 2021 17:03:46 GMT Message-Id: <202104141703.13EH3kpg038659@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: aabe13f1450b - main - uma: Introduce per-domain reclamation functions MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: aabe13f1450bb4caba66ec2a7a41c0dfefff511d Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 17:03:47 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=aabe13f1450bb4caba66ec2a7a41c0dfefff511d commit aabe13f1450bb4caba66ec2a7a41c0dfefff511d Author: Mark Johnston AuthorDate: 2021-04-14 16:57:24 +0000 Commit: Mark Johnston CommitDate: 2021-04-14 17:03:34 +0000 uma: Introduce per-domain reclamation functions Make it possible to reclaim items from a specific NUMA domain. - Add uma_zone_reclaim_domain() and uma_reclaim_domain(). - Permit parallel reclamations. Use a counter instead of a flag to synchronize with zone_dtor(). - Use the zone lock to protect cache_shrink() now that parallel reclaims can happen. - Add a sysctl that can be used to trigger reclamation from a specific domain. Currently the new KPIs are unused, so there should be no functional change. Reviewed by: mav MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29685 --- share/man/man9/zone.9 | 14 ++++- sys/vm/uma.h | 8 ++- sys/vm/uma_core.c | 152 ++++++++++++++++++++++++++++++-------------------- sys/vm/uma_int.h | 5 +- sys/vm/vm_kern.c | 29 +++++++++- 5 files changed, 137 insertions(+), 71 deletions(-) diff --git a/share/man/man9/zone.9 b/share/man/man9/zone.9 index 7da40b13469b..89d5f3e2640f 100644 --- a/share/man/man9/zone.9 +++ b/share/man/man9/zone.9 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 11, 2021 +.Dd April 14, 2021 .Dt UMA 9 .Os .Sh NAME @@ -98,8 +98,12 @@ typedef void (*uma_free)(void *item, vm_size_t size, uint8_t pflag); .Ft void .Fn uma_reclaim "int req" .Ft void +.Fn uma_reclaim_domain "int req" "int domain" +.Ft void .Fn uma_zone_reclaim "uma_zone_t zone" "int req" .Ft void +.Fn uma_zone_reclaim_domain "uma_zone_t zone" "int req" "int domain" +.Ft void .Fn uma_zone_set_allocf "uma_zone_t zone" "uma_alloc allocf" .Ft void .Fn uma_zone_set_freef "uma_zone_t zone" "uma_free freef" @@ -471,6 +475,14 @@ Free items in the per-CPU caches are left alone. .It Dv UMA_RECLAIM_DRAIN_CPU Reclaim all cached items. .El +The +.Fn uma_reclaim_domain +and +.Fn uma_zone_reclaim_domain +functions apply only to items allocated from the specified domain. +In the case of domains using a round-robin NUMA policy, cached items from all +domains are freed to the keg, but only slabs from the specific domain will +be freed. .Pp The .Fn uma_zone_set_allocf diff --git a/sys/vm/uma.h b/sys/vm/uma.h index 361c64900845..5d473ba909b6 100644 --- a/sys/vm/uma.h +++ b/sys/vm/uma.h @@ -446,10 +446,12 @@ typedef void *(*uma_alloc)(uma_zone_t zone, vm_size_t size, int domain, typedef void (*uma_free)(void *item, vm_size_t size, uint8_t pflag); /* - * Reclaims unused memory + * Reclaims unused memory. If no NUMA domain is specified, memory from all + * domains is reclaimed. * * Arguments: - * req Reclamation request type. + * req Reclamation request type. + * domain The target NUMA domain. * Returns: * None */ @@ -457,7 +459,9 @@ typedef void (*uma_free)(void *item, vm_size_t size, uint8_t pflag); #define UMA_RECLAIM_DRAIN_CPU 2 /* release bucket and per-CPU caches */ #define UMA_RECLAIM_TRIM 3 /* trim bucket cache to WSS */ void uma_reclaim(int req); +void uma_reclaim_domain(int req, int domain); void uma_zone_reclaim(uma_zone_t, int req); +void uma_zone_reclaim_domain(uma_zone_t, int req, int domain); /* * Sets the alignment mask to be used for all zones requesting cache diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c index 0348d6468d74..6b0add6b6b07 100644 --- a/sys/vm/uma_core.c +++ b/sys/vm/uma_core.c @@ -168,17 +168,20 @@ static LIST_HEAD(,uma_keg) uma_kegs = LIST_HEAD_INITIALIZER(uma_kegs); static LIST_HEAD(,uma_zone) uma_cachezones = LIST_HEAD_INITIALIZER(uma_cachezones); -/* This RW lock protects the keg list */ +/* + * Mutex for global lists: uma_kegs, uma_cachezones, and the per-keg list of + * zones. + */ static struct rwlock_padalign __exclusive_cache_line uma_rwlock; +static struct sx uma_reclaim_lock; + /* * First available virual address for boot time allocations. */ static vm_offset_t bootstart; static vm_offset_t bootmem; -static struct sx uma_reclaim_lock; - /* * kmem soft limit, initialized by uma_set_limit(). Ensure that early * allocations don't trigger a wakeup of the reclaim thread. @@ -289,7 +292,7 @@ static void pcpu_page_free(void *, vm_size_t, uint8_t); static uma_slab_t keg_alloc_slab(uma_keg_t, uma_zone_t, int, int, int); static void cache_drain(uma_zone_t); static void bucket_drain(uma_zone_t, uma_bucket_t); -static void bucket_cache_reclaim(uma_zone_t zone, bool); +static void bucket_cache_reclaim(uma_zone_t zone, bool, int); static int keg_ctor(void *, int, void *, int); static void keg_dtor(void *, int, void *); static int zone_ctor(void *, int, void *, int); @@ -315,7 +318,7 @@ static void bucket_enable(void); static void bucket_init(void); static uma_bucket_t bucket_alloc(uma_zone_t zone, void *, int); static void bucket_free(uma_zone_t zone, uma_bucket_t, void *); -static void bucket_zone_drain(void); +static void bucket_zone_drain(int domain); static uma_bucket_t zone_alloc_bucket(uma_zone_t, void *, int, int); static void *slab_alloc_item(uma_keg_t keg, uma_slab_t slab); static void slab_free_item(uma_zone_t zone, uma_slab_t slab, void *item); @@ -525,12 +528,13 @@ bucket_free(uma_zone_t zone, uma_bucket_t bucket, void *udata) } static void -bucket_zone_drain(void) +bucket_zone_drain(int domain) { struct uma_bucket_zone *ubz; for (ubz = &bucket_zones[0]; ubz->ubz_entries != 0; ubz++) - uma_zone_reclaim(ubz->ubz_zone, UMA_RECLAIM_DRAIN); + uma_zone_reclaim_domain(ubz->ubz_zone, UMA_RECLAIM_DRAIN, + domain); } #ifdef KASAN @@ -1308,7 +1312,7 @@ cache_drain(uma_zone_t zone) bucket_free(zone, bucket, NULL); } } - bucket_cache_reclaim(zone, true); + bucket_cache_reclaim(zone, true, UMA_ANYDOMAIN); } static void @@ -1318,8 +1322,10 @@ 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 @@ -1442,7 +1448,7 @@ bucket_cache_reclaim_domain(uma_zone_t zone, bool drain, int domain) } static void -bucket_cache_reclaim(uma_zone_t zone, bool drain) +bucket_cache_reclaim(uma_zone_t zone, bool drain, int domain) { int i; @@ -1453,8 +1459,13 @@ bucket_cache_reclaim(uma_zone_t zone, bool drain) if (zone->uz_bucket_size > zone->uz_bucket_size_min) zone->uz_bucket_size--; - for (i = 0; i < vm_ndomains; i++) - bucket_cache_reclaim_domain(zone, drain, i); + if (domain != UMA_ANYDOMAIN && + (zone->uz_flags & UMA_ZONE_ROUNDROBIN) == 0) { + bucket_cache_reclaim_domain(zone, drain, domain); + } else { + for (i = 0; i < vm_ndomains; i++) + bucket_cache_reclaim_domain(zone, drain, i); + } } static void @@ -1561,63 +1572,65 @@ keg_drain_domain(uma_keg_t keg, int domain) * Returns nothing. */ static void -keg_drain(uma_keg_t keg) +keg_drain(uma_keg_t keg, int domain) { int i; if ((keg->uk_flags & UMA_ZONE_NOFREE) != 0) return; - for (i = 0; i < vm_ndomains; i++) - keg_drain_domain(keg, i); + if (domain != UMA_ANYDOMAIN) { + keg_drain_domain(keg, domain); + } else { + for (i = 0; i < vm_ndomains; i++) + keg_drain_domain(keg, i); + } } static void -zone_reclaim(uma_zone_t zone, int waitok, bool drain) +zone_reclaim(uma_zone_t zone, int domain, int waitok, bool drain) { - /* - * Set draining to interlock with zone_dtor() so we can release our - * locks as we go. Only dtor() should do a WAITOK call since it - * is the only call that knows the structure will still be available - * when it wakes up. + * Count active reclaim operations in order to interlock with + * zone_dtor(), which removes the zone from global lists before + * attempting to reclaim items itself. + * + * The zone may be destroyed while sleeping, so only zone_dtor() should + * specify M_WAITOK. */ ZONE_LOCK(zone); - while (zone->uz_flags & UMA_ZFLAG_RECLAIMING) { - if (waitok == M_NOWAIT) - goto out; - msleep(zone, &ZDOM_GET(zone, 0)->uzd_lock, PVM, "zonedrain", - 1); + if (waitok == M_WAITOK) { + while (zone->uz_reclaimers > 0) + msleep(zone, ZONE_LOCKPTR(zone), PVM, "zonedrain", 1); } - zone->uz_flags |= UMA_ZFLAG_RECLAIMING; + zone->uz_reclaimers++; ZONE_UNLOCK(zone); - bucket_cache_reclaim(zone, drain); + bucket_cache_reclaim(zone, drain, domain); - /* - * The DRAINING flag protects us from being freed while - * we're running. Normally the uma_rwlock would protect us but we - * must be able to release and acquire the right lock for each keg. - */ if ((zone->uz_flags & UMA_ZFLAG_CACHE) == 0) - keg_drain(zone->uz_keg); + keg_drain(zone->uz_keg, domain); ZONE_LOCK(zone); - zone->uz_flags &= ~UMA_ZFLAG_RECLAIMING; - wakeup(zone); -out: + zone->uz_reclaimers--; + if (zone->uz_reclaimers == 0) + wakeup(zone); ZONE_UNLOCK(zone); } static void -zone_drain(uma_zone_t zone, void *unused) +zone_drain(uma_zone_t zone, void *arg) { + int domain; - zone_reclaim(zone, M_NOWAIT, true); + domain = (int)(uintptr_t)arg; + zone_reclaim(zone, domain, M_NOWAIT, true); } static void -zone_trim(uma_zone_t zone, void *unused) +zone_trim(uma_zone_t zone, void *arg) { + int domain; - zone_reclaim(zone, M_NOWAIT, false); + domain = (int)(uintptr_t)arg; + zone_reclaim(zone, domain, M_NOWAIT, false); } /* @@ -2883,7 +2896,7 @@ zone_dtor(void *arg, int size, void *udata) keg = zone->uz_keg; keg->uk_reserve = 0; } - zone_reclaim(zone, M_WAITOK, true); + zone_reclaim(zone, UMA_ANYDOMAIN, M_WAITOK, true); /* * We only destroy kegs from non secondary/non cache zones. @@ -3153,9 +3166,9 @@ uma_zcreate(const char *name, size_t size, uma_ctor ctor, uma_dtor dtor, args.flags = flags; args.keg = NULL; - sx_slock(&uma_reclaim_lock); + sx_xlock(&uma_reclaim_lock); res = zone_alloc_item(zones, &args, UMA_ANYDOMAIN, M_WAITOK); - sx_sunlock(&uma_reclaim_lock); + sx_xunlock(&uma_reclaim_lock); return (res); } @@ -3181,9 +3194,9 @@ uma_zsecond_create(const char *name, uma_ctor ctor, uma_dtor dtor, args.flags = keg->uk_flags | UMA_ZONE_SECONDARY; args.keg = keg; - sx_slock(&uma_reclaim_lock); + sx_xlock(&uma_reclaim_lock); res = zone_alloc_item(zones, &args, UMA_ANYDOMAIN, M_WAITOK); - sx_sunlock(&uma_reclaim_lock); + sx_xunlock(&uma_reclaim_lock); return (res); } @@ -3224,9 +3237,9 @@ uma_zdestroy(uma_zone_t zone) if (booted == BOOT_SHUTDOWN && zone->uz_fini == NULL && zone->uz_release == zone_release) return; - sx_slock(&uma_reclaim_lock); + sx_xlock(&uma_reclaim_lock); zone_free_item(zones, zone, NULL, SKIP_NONE); - sx_sunlock(&uma_reclaim_lock); + sx_xunlock(&uma_reclaim_lock); } void @@ -5035,22 +5048,29 @@ uma_zone_memory(uma_zone_t zone) void uma_reclaim(int req) { + uma_reclaim_domain(req, UMA_ANYDOMAIN); +} + +void +uma_reclaim_domain(int req, int domain) +{ + void *arg; - CTR0(KTR_UMA, "UMA: vm asked us to release pages!"); - sx_xlock(&uma_reclaim_lock); bucket_enable(); + arg = (void *)(uintptr_t)domain; + sx_slock(&uma_reclaim_lock); switch (req) { case UMA_RECLAIM_TRIM: - zone_foreach(zone_trim, NULL); + zone_foreach(zone_trim, arg); break; case UMA_RECLAIM_DRAIN: + zone_foreach(zone_drain, arg); + break; case UMA_RECLAIM_DRAIN_CPU: - zone_foreach(zone_drain, NULL); - if (req == UMA_RECLAIM_DRAIN_CPU) { - pcpu_cache_drain_safe(NULL); - zone_foreach(zone_drain, NULL); - } + zone_foreach(zone_drain, arg); + pcpu_cache_drain_safe(NULL); + zone_foreach(zone_drain, arg); break; default: panic("unhandled reclamation request %d", req); @@ -5061,10 +5081,10 @@ uma_reclaim(int req) * we visit again so that we can free pages that are empty once other * zones are drained. We have to do the same for buckets. */ - zone_drain(slabzones[0], NULL); - zone_drain(slabzones[1], NULL); - bucket_zone_drain(); - sx_xunlock(&uma_reclaim_lock); + zone_drain(slabzones[0], arg); + zone_drain(slabzones[1], arg); + bucket_zone_drain(domain); + sx_sunlock(&uma_reclaim_lock); } static volatile int uma_reclaim_needed; @@ -5099,17 +5119,25 @@ uma_reclaim_worker(void *arg __unused) void uma_zone_reclaim(uma_zone_t zone, int req) { + uma_zone_reclaim_domain(zone, req, UMA_ANYDOMAIN); +} + +void +uma_zone_reclaim_domain(uma_zone_t zone, int req, int domain) +{ + void *arg; + arg = (void *)(uintptr_t)domain; switch (req) { case UMA_RECLAIM_TRIM: - zone_trim(zone, NULL); + zone_trim(zone, arg); break; case UMA_RECLAIM_DRAIN: - zone_drain(zone, NULL); + zone_drain(zone, arg); break; case UMA_RECLAIM_DRAIN_CPU: pcpu_cache_drain_safe(zone); - zone_drain(zone, NULL); + zone_drain(zone, arg); break; default: panic("unhandled reclamation request %d", req); diff --git a/sys/vm/uma_int.h b/sys/vm/uma_int.h index 9965e486ca53..93910e78165b 100644 --- a/sys/vm/uma_int.h +++ b/sys/vm/uma_int.h @@ -162,7 +162,6 @@ #define UMA_ZFLAG_CTORDTOR 0x01000000 /* Zone has ctor/dtor set. */ #define UMA_ZFLAG_LIMIT 0x02000000 /* Zone has limit set. */ #define UMA_ZFLAG_CACHE 0x04000000 /* uma_zcache_create()d it */ -#define UMA_ZFLAG_RECLAIMING 0x08000000 /* Running zone_reclaim(). */ #define UMA_ZFLAG_BUCKET 0x10000000 /* Bucket zone. */ #define UMA_ZFLAG_INTERNAL 0x20000000 /* No offpage no PCPU. */ #define UMA_ZFLAG_TRASH 0x40000000 /* Add trash ctor/dtor. */ @@ -175,7 +174,6 @@ "\37TRASH" \ "\36INTERNAL" \ "\35BUCKET" \ - "\34RECLAIMING" \ "\33CACHE" \ "\32LIMIT" \ "\31CTORDTOR" \ @@ -490,7 +488,7 @@ struct uma_zone { char *uz_ctlname; /* sysctl safe name string. */ int uz_namecnt; /* duplicate name count. */ uint16_t uz_bucket_size_min; /* Min number of items in bucket */ - uint16_t uz_pad0; + uint16_t uz_reclaimers; /* pending reclaim operations. */ /* Offset 192, rare read-only. */ struct sysctl_oid *uz_oid; /* sysctl oid pointer. */ @@ -582,6 +580,7 @@ static __inline uma_slab_t hash_sfind(struct uma_hash *hash, uint8_t *data); #define ZONE_LOCK(z) ZDOM_LOCK(ZDOM_GET((z), 0)) #define ZONE_UNLOCK(z) ZDOM_UNLOCK(ZDOM_GET((z), 0)) +#define ZONE_LOCKPTR(z) (&ZDOM_GET((z), 0)->uzd_lock) #define ZONE_CROSS_LOCK_INIT(z) \ mtx_init(&(z)->uz_cross_lock, "UMA Cross", NULL, MTX_DEF) diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index a69493d1323f..7ab1fdb8950e 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -907,7 +907,6 @@ debug_vm_lowmem(SYSCTL_HANDLER_ARGS) EVENTHANDLER_INVOKE(vm_lowmem, i); return (0); } - SYSCTL_PROC(_debug, OID_AUTO, vm_lowmem, CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RW, 0, 0, debug_vm_lowmem, "I", "set to trigger vm_lowmem event with given flags"); @@ -919,7 +918,7 @@ debug_uma_reclaim(SYSCTL_HANDLER_ARGS) i = 0; error = sysctl_handle_int(oidp, &i, 0, req); - if (error != 0) + if (error != 0 || req->newptr == NULL) return (error); if (i != UMA_RECLAIM_TRIM && i != UMA_RECLAIM_DRAIN && i != UMA_RECLAIM_DRAIN_CPU) @@ -927,7 +926,31 @@ debug_uma_reclaim(SYSCTL_HANDLER_ARGS) uma_reclaim(i); return (0); } - SYSCTL_PROC(_debug, OID_AUTO, uma_reclaim, CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RW, 0, 0, debug_uma_reclaim, "I", "set to generate request to reclaim uma caches"); + +static int +debug_uma_reclaim_domain(SYSCTL_HANDLER_ARGS) +{ + int domain, error, request; + + request = 0; + error = sysctl_handle_int(oidp, &request, 0, req); + if (error != 0 || req->newptr == NULL) + return (error); + + domain = request >> 4; + request &= 0xf; + if (request != UMA_RECLAIM_TRIM && request != UMA_RECLAIM_DRAIN && + request != UMA_RECLAIM_DRAIN_CPU) + return (EINVAL); + if (domain < 0 || domain >= vm_ndomains) + return (EINVAL); + uma_reclaim_domain(request, domain); + return (0); +} +SYSCTL_PROC(_debug, OID_AUTO, uma_reclaim_domain, + CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RW, 0, 0, + debug_uma_reclaim_domain, "I", + ""); From owner-dev-commits-src-main@freebsd.org Wed Apr 14 18:25:32 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E20B25E3D7A; Wed, 14 Apr 2021 18:25:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FL9rX5CkLz3qYR; Wed, 14 Apr 2021 18:25:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A63622291D; Wed, 14 Apr 2021 18:25:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EIPWWY046281; Wed, 14 Apr 2021 18:25:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EIPWe7046280; Wed, 14 Apr 2021 18:25:32 GMT (envelope-from git) Date: Wed, 14 Apr 2021 18:25:32 GMT Message-Id: <202104141825.13EIPWe7046280@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gordon Bergling Subject: git: c8786bba8ebb - main - Revert "config(8): Correct the mentioned paper in the SEE ALSO section" MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c8786bba8ebb6092fa49199501483a0dc6c66a99 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 18:25:33 -0000 The branch main has been updated by gbe (doc committer): URL: https://cgit.FreeBSD.org/src/commit/?id=c8786bba8ebb6092fa49199501483a0dc6c66a99 commit c8786bba8ebb6092fa49199501483a0dc6c66a99 Author: Gordon Bergling AuthorDate: 2021-04-14 18:22:48 +0000 Commit: Gordon Bergling CommitDate: 2021-04-14 18:22:48 +0000 Revert "config(8): Correct the mentioned paper in the SEE ALSO section" config(8) was first imported from 4.4BSD. Reported by: rgrimes This reverts commit e6ab1e365c06559e964667d2f5a6de856fa28be6. --- usr.sbin/config/config.8 | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/usr.sbin/config/config.8 b/usr.sbin/config/config.8 index 1e874c3e8355..929607712ef8 100644 --- a/usr.sbin/config/config.8 +++ b/usr.sbin/config/config.8 @@ -28,7 +28,7 @@ .\" @(#)config.8 8.2 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd April 11, 2021 +.Dd April 9, 2021 .Dt CONFIG 8 .Os .Sh NAME @@ -249,12 +249,11 @@ The .Sx SYNOPSIS portion of each device in section 4. .Rs -.\" 4.3BSD SMM:2 +.\" 4.4BSD SMM:2 .%A S. J. Leffler .%A M. J. Karels .%T "Building 4.3 BSD UNIX System with Config" -.%B 4.3BSD System Manager's Manual (SMM) -.%D June 3, 1986 +.%B 4.4BSD System Manager's Manual (SMM) .Re .Sh HISTORY The From owner-dev-commits-src-main@freebsd.org Wed Apr 14 18:28:53 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 52B5E5E40C0; Wed, 14 Apr 2021 18:28:53 +0000 (UTC) (envelope-from gbe@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FL9wP209Gz3qF3; Wed, 14 Apr 2021 18:28:53 +0000 (UTC) (envelope-from gbe@freebsd.org) Received: from localhost (p200300d5d70db04a94d619a49bbf22f1.dip0.t-ipconnect.de [IPv6:2003:d5:d70d:b04a:94d6:19a4:9bbf:22f1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gbe) by smtp.freebsd.org (Postfix) with ESMTPSA id B38CEA434; Wed, 14 Apr 2021 18:28:52 +0000 (UTC) (envelope-from gbe@freebsd.org) Date: Wed, 14 Apr 2021 20:28:49 +0200 From: Gordon Bergling To: rgrimes@freebsd.org Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: e6ab1e365c06 - main - config(8): Correct the mentioned paper in the SEE ALSO section Message-ID: References: <202104141038.13EAcgMl042607@gndrsh.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202104141038.13EAcgMl042607@gndrsh.dnsmgr.net> X-Url: X-Operating-System: FreeBSD 12.2-STABLE amd64 X-Host-Uptime: 8:25PM up 2:46, 1 user, load averages: 0.20, 0.24, 0.23 X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 18:28:53 -0000 On Wed, Apr 14, 2021 at 03:38:41AM -0700, Rodney W. Grimes wrote: > > On Tue, Apr 13, 2021 at 03:41:22AM -0700, Rodney W. Grimes wrote: > > > > The branch main has been updated by gbe (doc committer): > > > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=e6ab1e365c06559e964667d2f5a6de856fa28be6 > > > > > > > > commit e6ab1e365c06559e964667d2f5a6de856fa28be6 > > > > Author: Gordon Bergling > > > > AuthorDate: 2021-04-13 04:49:00 +0000 > > > > Commit: Gordon Bergling > > > > CommitDate: 2021-04-13 04:49:00 +0000 > > > > > > > > config(8): Correct the mentioned paper in the SEE ALSO section > > > > > > > > FreeBSD's version of the config(8) utility is based on 4.3BSD not > > > > 4.4BSD. So correct the mentioned paper in the SEE ALSO section. > > > > > > What is this based upon? > > > > > > As far as I know, and I am the one that did the imports, we > > > never had the source code to config(8) for 4.3BSD, the config > > > sources in the system are imported from the 4.4BSD lite source tape. > > > > Warner has sent me a private mail in which he told me that FreeBSD's > > config(8) is based on 4.3BSD with a lot modifications. The updated > > paper date and origin I got from a scan of the original documents > > found at [1]. > > If this has infact occured that is a violation of the AT&T/USL > lawsuit agreement. > > Further as the person that did the import of 4.4, and did the lifting > to make that version work with FreeBSD I dispute this claim that > the config utility is based on 4.3BSD, the history of the files simply > do not bear that to be true. > > Please revert this inaccurate change of history. > Done in c8786bba8ebb. I'll check the commit history before updating such a reference again. --Gordon > > [1] http://www.bitsavers.org/pdf/mtXinu/MT_XINU_SMM_Apr_1986.pdf > > > > > > Reported by: imp > > > > Reviewed by: imp > > > > X-MFC-with: 2b59392cb0da804e825c63469beb1934ec4267db > > > > Differential Revision: https://reviews.freebsd.org/D29701 > > > > --- > > > > usr.sbin/config/config.8 | 7 ++++--- > > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > > > > > diff --git a/usr.sbin/config/config.8 b/usr.sbin/config/config.8 > > > > index 929607712ef8..1e874c3e8355 100644 > > > > --- a/usr.sbin/config/config.8 > > > > +++ b/usr.sbin/config/config.8 > > > > @@ -28,7 +28,7 @@ > > > > .\" @(#)config.8 8.2 (Berkeley) 4/19/94 > > > > .\" $FreeBSD$ > > > > .\" > > > > -.Dd April 9, 2021 > > > > +.Dd April 11, 2021 > > > > .Dt CONFIG 8 > > > > .Os > > > > .Sh NAME > > > > @@ -249,11 +249,12 @@ The > > > > .Sx SYNOPSIS > > > > portion of each device in section 4. > > > > .Rs > > > > -.\" 4.4BSD SMM:2 > > > > +.\" 4.3BSD SMM:2 > > > > .%A S. J. Leffler > > > > .%A M. J. Karels > > > > .%T "Building 4.3 BSD UNIX System with Config" > > > > -.%B 4.4BSD System Manager's Manual (SMM) > > > > +.%B 4.3BSD System Manager's Manual (SMM) > > > > +.%D June 3, 1986 > > > > .Re > > > > .Sh HISTORY > > > > The > > > > > > > > > > -- > > > Rod Grimes rgrimes@freebsd.org > > > > -- > > > > -- > Rod Grimes rgrimes@freebsd.org -- From owner-dev-commits-src-main@freebsd.org Wed Apr 14 19:38:23 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 457E85E5B2C; Wed, 14 Apr 2021 19:38:23 +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 4FLCSZ6mXnz3tT6; Wed, 14 Apr 2021 19:38:22 +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 13EJcJcI044395; Wed, 14 Apr 2021 12:38:19 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 13EJcJwo044394; Wed, 14 Apr 2021 12:38:19 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202104141938.13EJcJwo044394@gndrsh.dnsmgr.net> Subject: Re: git: e6ab1e365c06 - main - config(8): Correct the mentioned paper in the SEE ALSO section In-Reply-To: To: Gordon Bergling Date: Wed, 14 Apr 2021 12:38:19 -0700 (PDT) CC: rgrimes@freebsd.org, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@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: 4FLCSZ6mXnz3tT6 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 19:38:23 -0000 > On Wed, Apr 14, 2021 at 03:38:41AM -0700, Rodney W. Grimes wrote: > > > On Tue, Apr 13, 2021 at 03:41:22AM -0700, Rodney W. Grimes wrote: > > > > > The branch main has been updated by gbe (doc committer): > > > > > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=e6ab1e365c06559e964667d2f5a6de856fa28be6 > > > > > > > > > > commit e6ab1e365c06559e964667d2f5a6de856fa28be6 > > > > > Author: Gordon Bergling > > > > > AuthorDate: 2021-04-13 04:49:00 +0000 > > > > > Commit: Gordon Bergling > > > > > CommitDate: 2021-04-13 04:49:00 +0000 > > > > > > > > > > config(8): Correct the mentioned paper in the SEE ALSO section > > > > > > > > > > FreeBSD's version of the config(8) utility is based on 4.3BSD not > > > > > 4.4BSD. So correct the mentioned paper in the SEE ALSO section. > > > > > > > > What is this based upon? > > > > > > > > As far as I know, and I am the one that did the imports, we > > > > never had the source code to config(8) for 4.3BSD, the config > > > > sources in the system are imported from the 4.4BSD lite source tape. > > > > > > Warner has sent me a private mail in which he told me that FreeBSD's > > > config(8) is based on 4.3BSD with a lot modifications. The updated > > > paper date and origin I got from a scan of the original documents > > > found at [1]. > > > > If this has infact occured that is a violation of the AT&T/USL > > lawsuit agreement. > > > > Further as the person that did the import of 4.4, and did the lifting > > to make that version work with FreeBSD I dispute this claim that > > the config utility is based on 4.3BSD, the history of the files simply > > do not bear that to be true. > > > > Please revert this inaccurate change of history. > > > > Done in c8786bba8ebb. I'll check the commit history before updating > such a reference again. Thank you. Be very weary and careful of anything that is moving history "before" BSD 4.4 Lite as that is what the AT&T/USL/Novell agreement(s) basically said everyone needed to rebase onto. Regards, Rod > > --Gordon > > > > [1] http://www.bitsavers.org/pdf/mtXinu/MT_XINU_SMM_Apr_1986.pdf > > > > > > > > Reported by: imp > > > > > Reviewed by: imp > > > > > X-MFC-with: 2b59392cb0da804e825c63469beb1934ec4267db > > > > > Differential Revision: https://reviews.freebsd.org/D29701 > > > > > --- > > > > > usr.sbin/config/config.8 | 7 ++++--- > > > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > > > > > > > diff --git a/usr.sbin/config/config.8 b/usr.sbin/config/config.8 > > > > > index 929607712ef8..1e874c3e8355 100644 > > > > > --- a/usr.sbin/config/config.8 > > > > > +++ b/usr.sbin/config/config.8 > > > > > @@ -28,7 +28,7 @@ > > > > > .\" @(#)config.8 8.2 (Berkeley) 4/19/94 > > > > > .\" $FreeBSD$ > > > > > .\" > > > > > -.Dd April 9, 2021 > > > > > +.Dd April 11, 2021 > > > > > .Dt CONFIG 8 > > > > > .Os > > > > > .Sh NAME > > > > > @@ -249,11 +249,12 @@ The > > > > > .Sx SYNOPSIS > > > > > portion of each device in section 4. > > > > > .Rs > > > > > -.\" 4.4BSD SMM:2 > > > > > +.\" 4.3BSD SMM:2 > > > > > .%A S. J. Leffler > > > > > .%A M. J. Karels > > > > > .%T "Building 4.3 BSD UNIX System with Config" > > > > > -.%B 4.4BSD System Manager's Manual (SMM) > > > > > +.%B 4.3BSD System Manager's Manual (SMM) > > > > > +.%D June 3, 1986 > > > > > .Re > > > > > .Sh HISTORY > > > > > The > > > > > > > > > > > > > -- > > > > Rod Grimes rgrimes@freebsd.org > > > > > > -- > > > > > > > -- > > Rod Grimes rgrimes@freebsd.org > > -- > -- Rod Grimes rgrimes@freebsd.org From owner-dev-commits-src-main@freebsd.org Wed Apr 14 19:39:08 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6168F5E5D8D for ; Wed, 14 Apr 2021 19:39:08 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qv1-xf2a.google.com (mail-qv1-xf2a.google.com [IPv6:2607:f8b0:4864:20::f2a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FLCTS22w6z3tkv for ; Wed, 14 Apr 2021 19:39:08 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qv1-xf2a.google.com with SMTP id er3so2005033qvb.6 for ; Wed, 14 Apr 2021 12:39:08 -0700 (PDT) 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=ZeeRfalnoC9uX0ZwcAEq6Hlpw18R/HzsjbfUvwxSzSI=; b=lI8hlTdLroktvnmwhoe1RdzTf8h08wLmKmEi02zpUi8HHz68DZWEZl/tkSApIUwmzd wnQ4WItzW1MQtjJYIkjFHgp97tsNQFOMFzZpvwwYCW4kdW9Yxcv+2GS7CY4VqTo0wY4H wWhn0xPDdv88aHW2d8+ttUGqhgPXjhPGVzZnfMMDi14CiN7icCmjS2itMg3ZbHduZKAc xrlqenqnWHmdPTcCS+2c3MwQ5YQVZduy0mgs2nm3vhdEdcO5guhaQQLUOMrc19+U3DNY wWmQY8N3YTuNz/A2bc5rwffz8+RmV8rOdiLSmkjvojZaCiTJZ9zprRpCHzWKsf0/w8Ah g8eg== 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=ZeeRfalnoC9uX0ZwcAEq6Hlpw18R/HzsjbfUvwxSzSI=; b=BC//7xGsvHhUNxDuq96Q9VXxTJQyp4DtrgIr571Y1f9HRbYyt+QTZdcr+Ph9GbZkXn GLnVmzS6jXIiTcG/VQ/7vGWNHWJhDi9M491XqcX3HxMDDwCkXQbGTRELl29h3ynadY/G B+tfOrlW3RY2s5IEoD/0lsrew974kwK/DsdLHFRyovaKNvnSiijHdK3LMPusoa8W/3QM PY+HOIv54e+zAIo/8NYHettmOjSgWvqswfsq4PqLtAAguHy44x/j2dhCWMhXtQqSzQEa OCYt5yJhouO/qhUisFIDMdBs3ZCKDrlAGAV8ZepmcZtajDELj50LFu8UfXZJkK378Afl DINA== X-Gm-Message-State: AOAM531H+M0GV8U6jr8c51egqVsBq+zyQJwyqefQABSrnWzEcWGT6GlI zs3qwChcK25oRWHgWUX1NdouKygz+LRs+x6mB3tZwA== X-Google-Smtp-Source: ABdhPJzoPP0rcucwKB2ndWB5OFANiggiDv0JWOTd42kdyK/1Pir7AdO+9ZxdDCk+FrbNnvaErjOnDmWdr7q295B/I/w= X-Received: by 2002:a05:6214:1866:: with SMTP id eh6mr1022483qvb.29.1618429147227; Wed, 14 Apr 2021 12:39:07 -0700 (PDT) MIME-Version: 1.0 References: <202104141038.13EAcgMl042607@gndrsh.dnsmgr.net> In-Reply-To: <202104141038.13EAcgMl042607@gndrsh.dnsmgr.net> From: Warner Losh Date: Wed, 14 Apr 2021 13:38:56 -0600 Message-ID: Subject: Re: git: e6ab1e365c06 - main - config(8): Correct the mentioned paper in the SEE ALSO section To: "Rodney W. Grimes" Cc: Gordon Bergling , src-committers , "" , dev-commits-src-main@freebsd.org X-Rspamd-Queue-Id: 4FLCTS22w6z3tkv X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.34 X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 19:39:08 -0000 On Wed, Apr 14, 2021 at 4:38 AM Rodney W. Grimes wrote: > > On Tue, Apr 13, 2021 at 03:41:22AM -0700, Rodney W. Grimes wrote: > > > > The branch main has been updated by gbe (doc committer): > > > > > > > > URL: > https://cgit.FreeBSD.org/src/commit/?id=e6ab1e365c06559e964667d2f5a6de856fa28be6 > > > > > > > > commit e6ab1e365c06559e964667d2f5a6de856fa28be6 > > > > Author: Gordon Bergling > > > > AuthorDate: 2021-04-13 04:49:00 +0000 > > > > Commit: Gordon Bergling > > > > CommitDate: 2021-04-13 04:49:00 +0000 > > > > > > > > config(8): Correct the mentioned paper in the SEE ALSO section > > > > > > > > FreeBSD's version of the config(8) utility is based on 4.3BSD not > > > > 4.4BSD. So correct the mentioned paper in the SEE ALSO section. > > > > > > What is this based upon? > > > > > > As far as I know, and I am the one that did the imports, we > > > never had the source code to config(8) for 4.3BSD, the config > > > sources in the system are imported from the 4.4BSD lite source tape. > > > > Warner has sent me a private mail in which he told me that FreeBSD's > > config(8) is based on 4.3BSD with a lot modifications. The updated > > paper date and origin I got from a scan of the original documents > > found at [1]. > > If this has infact occured that is a violation of the AT&T/USL > lawsuit agreement. > > Further as the person that did the import of 4.4, and did the lifting > to make that version work with FreeBSD I dispute this claim that > the config utility is based on 4.3BSD, the history of the files simply > do not bear that to be true. > > Please revert this inaccurate change of history. > There were two different config programs in 4.4BSD, which is the base of this confusion. Rodney imported "config" from the 4.4-Lite tapes. This is the older one, based on the 4.3BSD config with i386 added (he did nothing wrong here: it was config on 4.4BSD). In talking about this with $OTHERBSD projects this has always been referred to as the 4.3BSD-based config, even if that's a bit inaccurate. It was referred to this way because they'd adopted config.new from 4.4BSD and considered that the 4.4BSD-based config.... Chris Torek wrote config.new, which also first appeared on the 4.4BSD tape, and subsequent 4.4BSD-lite releases. NetBSD adopted this in its early days, so it's the basis for both NetBSD and OpenBSD. There was even a port to FreeBSD which lost out to Doug Rabson's newbus for device configuration in the FreeBSD 3.x timeframe. Atsushi Furuta-san presented on this port at USENIX-99, the paper can be found here: https://www.usenix.org/legacy/event/usenix99/full_papers/furuta/furuta.pdf and Chris Torek's original paper is available from here: http://www.netbsd.org/Documentation/kernel/config-torek.ps I'd only ever seen his paper (at least I think it's this paper, since my mac can't render it for me to confirm). It describes config.new, but bills it as the configuration for 4.4BSD systems. I read it years ago. My failure was that I'd neglected to double check what was actually in the 4.4BSD manual. I'd assumed it was Chris' paper, but a check now shows that I was wrong. So Rodney is right, this should have been reverted. Warner > Regards, > Rod > > > > --Gordon > > > > [1] http://www.bitsavers.org/pdf/mtXinu/MT_XINU_SMM_Apr_1986.pdf > > > > > > Reported by: imp > > > > Reviewed by: imp > > > > X-MFC-with: 2b59392cb0da804e825c63469beb1934ec4267db > > > > Differential Revision: https://reviews.freebsd.org/D29701 > > > > --- > > > > usr.sbin/config/config.8 | 7 ++++--- > > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > > > > > diff --git a/usr.sbin/config/config.8 b/usr.sbin/config/config.8 > > > > index 929607712ef8..1e874c3e8355 100644 > > > > --- a/usr.sbin/config/config.8 > > > > +++ b/usr.sbin/config/config.8 > > > > @@ -28,7 +28,7 @@ > > > > .\" @(#)config.8 8.2 (Berkeley) 4/19/94 > > > > .\" $FreeBSD$ > > > > .\" > > > > -.Dd April 9, 2021 > > > > +.Dd April 11, 2021 > > > > .Dt CONFIG 8 > > > > .Os > > > > .Sh NAME > > > > @@ -249,11 +249,12 @@ The > > > > .Sx SYNOPSIS > > > > portion of each device in section 4. > > > > .Rs > > > > -.\" 4.4BSD SMM:2 > > > > +.\" 4.3BSD SMM:2 > > > > .%A S. J. Leffler > > > > .%A M. J. Karels > > > > .%T "Building 4.3 BSD UNIX System with Config" > > > > -.%B 4.4BSD System Manager's Manual (SMM) > > > > +.%B 4.3BSD System Manager's Manual (SMM) > > > > +.%D June 3, 1986 > > > > .Re > > > > .Sh HISTORY > > > > The > > > > > > > > > > -- > > > Rod Grimes > rgrimes@freebsd.org > > > > -- > > > > -- > Rod Grimes > rgrimes@freebsd.org > From owner-dev-commits-src-main@freebsd.org Wed Apr 14 19:47:55 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 70B1A5E5FC2 for ; Wed, 14 Apr 2021 19:47:55 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com [IPv6:2607:f8b0:4864:20::734]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FLCgb1qCjz3tvJ for ; Wed, 14 Apr 2021 19:47:55 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x734.google.com with SMTP id e13so12891384qkl.6 for ; Wed, 14 Apr 2021 12:47:54 -0700 (PDT) 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=wrj9Ds3C2Ocrw2KDNiVto3613+n1nB1exx5JeKoIrPk=; b=DOSuSbqSWLVDZkg7EtDTj7g9Sfigq222cNMhp5LD4eV2urCd9+GYFIgstM0crD+u/m 7AtE1Wg3b0ZNbJwaALAABJKXlH1AXFriVM+2wJCyipRkIfBqymEs6EySp/DhAgAkyLVD Iae63bvQygyJet+Fg1rx53BSdmFO7/ZLmgNLBgDBfXDhwocGaPCppkBE+2tro+t4Mwss q+FBacZG0dPOtPbF/zGr92H5RWvvQV6RK+2xVhMcY/68Tasqwa8if5Yuth8HdKIuh2+X lp6YDObxN3xmc21fnAgYIKH6M49BPH9Ea4rsCoY4ZgWjb1qC2qc0Gyd9SAgx3hoLNqlY bUrg== 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=wrj9Ds3C2Ocrw2KDNiVto3613+n1nB1exx5JeKoIrPk=; b=s9mj+HNzDAQLqB/CaNh4LbhGVW4hILOno7dowpq96BY8chAZlb4nw66lEnDnV6q+En 1Jw5uktK+9GfJwhRTnrInSn5Kmr1M1uGhgECBYeLCQ1XEZvoBQyBvArN2nGs4FHzmpbP AQ1BUq8exlY9UcNeyCl/tgOHoGElhOE84gXKeIoj+JuGcq5u3COvnyofYoogRQ82bP9N zzrYufJtnxhpsHeXFBq8OAofoWlUEE1wvC9i9fbMUCjnnfkq4F62utz8rwoPJ/BB75vU hISYo22v1U14HyR+IKkElZIvinqfDblCr0FTVBTuccvobzQ3p+j4WwX4PgqC0IebDcML fYNA== X-Gm-Message-State: AOAM531visdPQ9rWuO+SRM4GTPY3li8GIGuKMg6TNXrhLgMSAn1LWPER 0yMTClyRiRglfzUJaA9trsuMOOkqJVPrU1MTEXcLoA== X-Google-Smtp-Source: ABdhPJzQxjtVZxUT+eRXiPnF9cwoJIFwWFar43O2L7Ob9jrnRT1AAlVFcsO3LTVaqtg2XKj8n33j8M2ETXMTS5dDxmc= X-Received: by 2002:a37:9c42:: with SMTP id f63mr15548086qke.359.1618429674250; Wed, 14 Apr 2021 12:47:54 -0700 (PDT) MIME-Version: 1.0 References: <202104141938.13EJcJwo044394@gndrsh.dnsmgr.net> In-Reply-To: <202104141938.13EJcJwo044394@gndrsh.dnsmgr.net> From: Warner Losh Date: Wed, 14 Apr 2021 13:47:43 -0600 Message-ID: Subject: Re: git: e6ab1e365c06 - main - config(8): Correct the mentioned paper in the SEE ALSO section To: "Rodney W. Grimes" Cc: Gordon Bergling , src-committers , "" , dev-commits-src-main@freebsd.org X-Rspamd-Queue-Id: 4FLCgb1qCjz3tvJ X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.34 X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 19:47:55 -0000 On Wed, Apr 14, 2021 at 1:38 PM Rodney W. Grimes wrote: > > On Wed, Apr 14, 2021 at 03:38:41AM -0700, Rodney W. Grimes wrote: > > > > On Tue, Apr 13, 2021 at 03:41:22AM -0700, Rodney W. Grimes wrote: > > > > > > The branch main has been updated by gbe (doc committer): > > > > > > > > > > > > URL: > https://cgit.FreeBSD.org/src/commit/?id=e6ab1e365c06559e964667d2f5a6de856fa28be6 > > > > > > > > > > > > commit e6ab1e365c06559e964667d2f5a6de856fa28be6 > > > > > > Author: Gordon Bergling > > > > > > AuthorDate: 2021-04-13 04:49:00 +0000 > > > > > > Commit: Gordon Bergling > > > > > > CommitDate: 2021-04-13 04:49:00 +0000 > > > > > > > > > > > > config(8): Correct the mentioned paper in the SEE ALSO > section > > > > > > > > > > > > FreeBSD's version of the config(8) utility is based on > 4.3BSD not > > > > > > 4.4BSD. So correct the mentioned paper in the SEE ALSO > section. > > > > > > > > > > What is this based upon? > > > > > > > > > > As far as I know, and I am the one that did the imports, we > > > > > never had the source code to config(8) for 4.3BSD, the config > > > > > sources in the system are imported from the 4.4BSD lite source > tape. > > > > > > > > Warner has sent me a private mail in which he told me that FreeBSD's > > > > config(8) is based on 4.3BSD with a lot modifications. The updated > > > > paper date and origin I got from a scan of the original documents > > > > found at [1]. > > > > > > If this has infact occured that is a violation of the AT&T/USL > > > lawsuit agreement. > > > > > > Further as the person that did the import of 4.4, and did the lifting > > > to make that version work with FreeBSD I dispute this claim that > > > the config utility is based on 4.3BSD, the history of the files simply > > > do not bear that to be true. > > > > > > Please revert this inaccurate change of history. > > > > > > > Done in c8786bba8ebb. I'll check the commit history before updating > > such a reference again. > > Thank you. Be very weary and careful of anything that is moving > history "before" BSD 4.4 Lite as that is what the AT&T/USL/Novell > agreement(s) basically said everyone needed to rebase onto. > Yes. Rod did import the 4.4BSD-Lite config, but that was just the 4.3-Reno config with i386 and some copyrights added (it's unchanged between 4.4BSD and 4.4BSD-Lite). As explained elsewhere, config.new was also on that tape, which the other BSD projects rebased onto, and that become popularly known as the 4.4BSD config while the other config was the 4.3BSD config. This is a bit inaccurate, to be true, but is how people generally talk about it who aren't parties to lawsuits. :) Again, my apologies for recalling these conversations and not checking with the actual 4.4BSD system manager's manual to see which paper was published there and assuming it was the Torek paper. Warner From owner-dev-commits-src-main@freebsd.org Wed Apr 14 20:06:43 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 21DC05E61E3; Wed, 14 Apr 2021 20:06:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLD5H0W6tz3vk8; Wed, 14 Apr 2021 20:06:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 046B523F6B; Wed, 14 Apr 2021 20:06:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EK6gNf078479; Wed, 14 Apr 2021 20:06:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EK6gSj078478; Wed, 14 Apr 2021 20:06:42 GMT (envelope-from git) Date: Wed, 14 Apr 2021 20:06:42 GMT Message-Id: <202104142006.13EK6gSj078478@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Vladimir Kondratyev Subject: git: 8e84712d01eb - main - hidmap: add missing opt_hid.h to module Makefile MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8e84712d01eb150f57dfe2244cd0c09b756fe40c Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 20:06:43 -0000 The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=8e84712d01eb150f57dfe2244cd0c09b756fe40c commit 8e84712d01eb150f57dfe2244cd0c09b756fe40c Author: Vladimir Kondratyev AuthorDate: 2021-04-14 19:55:52 +0000 Commit: Vladimir Kondratyev CommitDate: 2021-04-14 20:05:59 +0000 hidmap: add missing opt_hid.h to module Makefile Reported by: pstef MFC after: 2 weeks --- sys/modules/hid/hidmap/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/modules/hid/hidmap/Makefile b/sys/modules/hid/hidmap/Makefile index 8e79f156d9d7..00e7099b287b 100644 --- a/sys/modules/hid/hidmap/Makefile +++ b/sys/modules/hid/hidmap/Makefile @@ -4,6 +4,7 @@ KMOD= hidmap SRCS= hidmap.c +SRCS+= opt_hid.h SRCS+= bus_if.h device_if.h .include From owner-dev-commits-src-main@freebsd.org Wed Apr 14 22:20:58 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BB8625D2B71; Wed, 14 Apr 2021 22:20:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLH4B4zGpz4XMw; Wed, 14 Apr 2021 22:20:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9D98B25A3A; Wed, 14 Apr 2021 22:20:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13EMKwBS061185; Wed, 14 Apr 2021 22:20:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13EMKweu061184; Wed, 14 Apr 2021 22:20:58 GMT (envelope-from git) Date: Wed, 14 Apr 2021 22:20:58 GMT Message-Id: <202104142220.13EMKweu061184@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kirk McKusick Subject: git: 14d0cd7225e2 - main - Ensure that the mount command shows "with quotas" when quotas are enabled. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 14d0cd7225e250015eb6d9c79a7eb4e944211b23 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 22:20:58 -0000 The branch main has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=14d0cd7225e250015eb6d9c79a7eb4e944211b23 commit 14d0cd7225e250015eb6d9c79a7eb4e944211b23 Author: Kirk McKusick AuthorDate: 2021-04-14 22:22:12 +0000 Commit: Kirk McKusick CommitDate: 2021-04-14 22:25:08 +0000 Ensure that the mount command shows "with quotas" when quotas are enabled. When quotas are enabled with the quotaon(8) command, it sets the MNT_QUOTA flag in the mount structure mnt_flag field. The mount structure holds a cached copy of the filesystem statfs structure in mnt_stat that includes a copy of the mnt_flag field in mnt_stat.f_flags. The mnt_stat structure may not be updated for hours. Since the mount command requests mount details using the MNT_NOWAIT option, it gets the mount's mnt_stat statfs structure whose f_flags field does not yet show the MNT_QUOTA flag being set in mnt_flag. The fix is to have quotaon(8) set the MNT_QUOTA flag in both mnt_flag and in mnt_stat.f_flags so that it will be immediately visible to callers of statfs(2). Reported by: Christos Chatzaras Tested by: Christos Chatzaras PR: 254682 MFC after: 3 days Sponsored by: Netflix --- sys/ufs/ufs/ufs_quota.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/ufs/ufs/ufs_quota.c b/sys/ufs/ufs/ufs_quota.c index 47c8133adc11..4dff74f75945 100644 --- a/sys/ufs/ufs/ufs_quota.c +++ b/sys/ufs/ufs/ufs_quota.c @@ -562,6 +562,7 @@ quotaon(struct thread *td, struct mount *mp, int type, void *fname) VOP_UNLOCK(vp); MNT_ILOCK(mp); mp->mnt_flag |= MNT_QUOTA; + mp->mnt_stat.f_flags |= MNT_QUOTA; MNT_IUNLOCK(mp); vpp = &ump->um_quotas[type]; @@ -764,6 +765,7 @@ quotaoff_inchange(struct thread *td, struct mount *mp, int type) if (i == MAXQUOTAS) { MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_QUOTA; + mp->mnt_stat.f_flags &= ~MNT_QUOTA; MNT_IUNLOCK(mp); } UFS_UNLOCK(ump); From owner-dev-commits-src-main@freebsd.org Thu Apr 15 05:51:46 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 09CD65E05EB; Thu, 15 Apr 2021 05:51:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLT4K6wTKz4vWq; Thu, 15 Apr 2021 05:51:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E0C5F3C1A; Thu, 15 Apr 2021 05:51:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13F5pjD5058199; Thu, 15 Apr 2021 05:51:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13F5pjmm058198; Thu, 15 Apr 2021 05:51:45 GMT (envelope-from git) Date: Thu, 15 Apr 2021 05:51:45 GMT Message-Id: <202104150551.13F5pjmm058198@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Peter Grehan Subject: git: 17d214c2ca9f - main - bhyve: implement rdmsr for MSR_IA32_FEATURE_CONTROL MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: grehan X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 17d214c2ca9f110db3fa2a10d6b448d624e87774 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 05:51:46 -0000 The branch main has been updated by grehan: URL: https://cgit.FreeBSD.org/src/commit/?id=17d214c2ca9f110db3fa2a10d6b448d624e87774 commit 17d214c2ca9f110db3fa2a10d6b448d624e87774 Author: Corvin Köhne AuthorDate: 2021-04-15 03:49:19 +0000 Commit: Peter Grehan CommitDate: 2021-04-15 03:49:19 +0000 bhyve: implement rdmsr for MSR_IA32_FEATURE_CONTROL Without the -w option, Windows guests crash on boot. This is caused by a rdmsr of MSR_IA32_FEATURE_CONTROL. Windows checks this MSR to determine enabled VMX features. This MSR isn't emulated in bhyve, so a #GP exception is injected which causes Windows to crash. Fix by returning a rdmsr of MSR_IA32_FEATURE_CONTROL with Lock Bit set and VMX disabled to informWindows that VMX isn't available. Reviewed by: jhb, grehan (bhyve) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29665 --- usr.sbin/bhyve/xmsr.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/usr.sbin/bhyve/xmsr.c b/usr.sbin/bhyve/xmsr.c index 0b87821836b7..1a7f98ee222a 100644 --- a/usr.sbin/bhyve/xmsr.c +++ b/usr.sbin/bhyve/xmsr.c @@ -124,6 +124,14 @@ emulate_rdmsr(struct vmctx *ctx, int vcpu, uint32_t num, uint64_t *val) */ *val = 0x000a1003; break; + case MSR_IA32_FEATURE_CONTROL: + /* + * Windows guests check this MSR. + * Set the lock bit to avoid writes + * to this MSR. + */ + *val = IA32_FEATURE_CONTROL_LOCK; + break; default: error = -1; break; From owner-dev-commits-src-main@freebsd.org Thu Apr 15 07:56:26 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2667E5E3F77; Thu, 15 Apr 2021 07:56:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLWrB0V7Hz3Hxk; Thu, 15 Apr 2021 07:56:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F3AFD573C; Thu, 15 Apr 2021 07:56:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13F7uPha017371; Thu, 15 Apr 2021 07:56:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13F7uPSq017370; Thu, 15 Apr 2021 07:56:25 GMT (envelope-from git) Date: Thu, 15 Apr 2021 07:56:25 GMT Message-Id: <202104150756.13F7uPSq017370@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik Subject: git: 4f0279e064bb - main - cache: extend mismatch vnode assert print to include the name MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4f0279e064bb163dbcc4859e409fc65dcbe8f1bf Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 07:56:26 -0000 The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=4f0279e064bb163dbcc4859e409fc65dcbe8f1bf commit 4f0279e064bb163dbcc4859e409fc65dcbe8f1bf Author: Mateusz Guzik AuthorDate: 2021-04-15 07:55:43 +0000 Commit: Mateusz Guzik CommitDate: 2021-04-15 07:55:43 +0000 cache: extend mismatch vnode assert print to include the name --- sys/kern/vfs_cache.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index 8819ef483af5..68ad0128245b 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -2468,12 +2468,12 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, struct componentname *cnp, MPASS(cache_ncp_canuse(n2)); if ((n2->nc_flag & NCF_NEGATIVE) != 0) KASSERT(vp == NULL, - ("%s: found entry pointing to a different vnode (%p != %p)", - __func__, NULL, vp)); + ("%s: found entry pointing to a different vnode (%p != %p) ; name [%s]", + __func__, NULL, vp, cnp->cn_nameptr)); else KASSERT(n2->nc_vp == vp, - ("%s: found entry pointing to a different vnode (%p != %p)", - __func__, n2->nc_vp, vp)); + ("%s: found entry pointing to a different vnode (%p != %p) ; name [%s]", + __func__, n2->nc_vp, vp, cnp->cn_nameptr)); /* * Entries are supposed to be immutable unless in the * process of getting destroyed. Accommodating for From owner-dev-commits-src-main@freebsd.org Thu Apr 15 09:50:00 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A3D725E8868; Thu, 15 Apr 2021 09:50:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLZMD4F0bz3Q6h; Thu, 15 Apr 2021 09:50:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 84A276C79; Thu, 15 Apr 2021 09:50:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13F9o0EO066809; Thu, 15 Apr 2021 09:50:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13F9o02V066794; Thu, 15 Apr 2021 09:50:00 GMT (envelope-from git) Date: Thu, 15 Apr 2021 09:50:00 GMT Message-Id: <202104150950.13F9o02V066794@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: c78e124535fe - main - link(2): correct descriptor name in AT_RESOLVE_BENEATH description MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c78e124535febc6c0bc7c0756b42d6b845428d2e Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 09:50:00 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=c78e124535febc6c0bc7c0756b42d6b845428d2e commit c78e124535febc6c0bc7c0756b42d6b845428d2e Author: Konstantin Belousov AuthorDate: 2021-03-30 21:56:28 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-15 09:47:40 +0000 link(2): correct descriptor name in AT_RESOLVE_BENEATH description Noted and reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 3 days Differential revision: https://reviews.freebsd.org/D29111 --- lib/libc/sys/link.2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libc/sys/link.2 b/lib/libc/sys/link.2 index de0efd5e510f..bcf03f17f3bb 100644 --- a/lib/libc/sys/link.2 +++ b/lib/libc/sys/link.2 @@ -117,7 +117,7 @@ names a symbolic link, a new link for the target of the symbolic link is created. .It Dv AT_RESOLVE_BENEATH Only walk paths below the directory specified by the -.Ar fd +.Ar fd1 descriptor. See the description of the .Dv O_RESOLVE_BENEATH From owner-dev-commits-src-main@freebsd.org Thu Apr 15 09:50:01 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E4C0B5E8A7B; Thu, 15 Apr 2021 09:50:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLZMF641wz3Q6n; Thu, 15 Apr 2021 09:50:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B746B6D6D; Thu, 15 Apr 2021 09:50:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13F9o137068041; Thu, 15 Apr 2021 09:50:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13F9o1tB068037; Thu, 15 Apr 2021 09:50:01 GMT (envelope-from git) Date: Thu, 15 Apr 2021 09:50:01 GMT Message-Id: <202104150950.13F9o1tB068037@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 42be0a7b10b1 - main - Style. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 42be0a7b10b14113ba9c4e4a738e8f20e235b736 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 09:50:02 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=42be0a7b10b14113ba9c4e4a738e8f20e235b736 commit 42be0a7b10b14113ba9c4e4a738e8f20e235b736 Author: Konstantin Belousov AuthorDate: 2021-03-18 10:40:20 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-15 09:47:46 +0000 Style. Add missed spaces, wrap long lines. Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29323 --- sys/kern/kern_descrip.c | 2 +- sys/kern/vfs_syscalls.c | 8 ++++---- sys/kern/vfs_vnops.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 67350f4ad71e..7a43fbb2eb80 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -550,7 +550,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) tmp = flg = fp->f_flag; tmp &= ~FCNTLFLAGS; tmp |= FFLAGS(arg & ~O_ACCMODE) & FCNTLFLAGS; - } while(atomic_cmpset_int(&fp->f_flag, flg, tmp) == 0); + } while (atomic_cmpset_int(&fp->f_flag, flg, tmp) == 0); tmp = fp->f_flag & FNONBLOCK; error = fo_ioctl(fp, FIONBIO, &tmp, td->td_ucred, td); if (error != 0) { diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 3db34c3689de..48df8a3e9051 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1881,8 +1881,8 @@ restart: if (vp->v_type == VDIR && oldinum == 0) { error = EPERM; /* POSIX */ } else if (oldinum != 0 && - ((error = VOP_STAT(vp, &sb, td->td_ucred, NOCRED, td)) == 0) && - sb.st_ino != oldinum) { + ((error = VOP_STAT(vp, &sb, td->td_ucred, NOCRED, td)) == 0) && + sb.st_ino != oldinum) { error = EIDRM; /* Identifier removed */ } else if (fp != NULL && fp->f_vnode != vp) { if (VN_IS_DOOMED(fp->f_vnode)) @@ -3818,8 +3818,8 @@ kern_frmdirat(struct thread *td, int dfd, const char *path, int fd, fp = NULL; if (fd != FD_NONE) { - error = getvnode(td, fd, cap_rights_init_one(&rights, CAP_LOOKUP), - &fp); + error = getvnode(td, fd, cap_rights_init_one(&rights, + CAP_LOOKUP), &fp); if (error != 0) return (error); } diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index f0914c569828..44cbf1a7893b 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -1775,7 +1775,7 @@ vn_closefile(struct file *fp, struct thread *td) vp = fp->f_vnode; fp->f_ops = &badfileops; - ref= (fp->f_flag & FHASLOCK) != 0 && fp->f_type == DTYPE_VNODE; + ref = (fp->f_flag & FHASLOCK) != 0 && fp->f_type == DTYPE_VNODE; error = vn_close1(vp, fp->f_flag, fp->f_cred, td, ref); From owner-dev-commits-src-main@freebsd.org Thu Apr 15 09:50:03 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 381F35E886F; Thu, 15 Apr 2021 09:50:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLZMG6s6Jz3Q6v; Thu, 15 Apr 2021 09:50:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D169F6D6E; Thu, 15 Apr 2021 09:50:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13F9o2xQ068252; Thu, 15 Apr 2021 09:50:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13F9o24Z068249; Thu, 15 Apr 2021 09:50:02 GMT (envelope-from git) Date: Thu, 15 Apr 2021 09:50:02 GMT Message-Id: <202104150950.13F9o24Z068249@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 437c241d0c78 - main - vfs_vnops.c: Make vn_statfile() non-static MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 437c241d0c78f77a9d9e54494a353db01ce1a3de Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 09:50:03 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=437c241d0c78f77a9d9e54494a353db01ce1a3de commit 437c241d0c78f77a9d9e54494a353db01ce1a3de Author: Konstantin Belousov AuthorDate: 2021-03-18 10:41:07 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-15 09:47:56 +0000 vfs_vnops.c: Make vn_statfile() non-static Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29323 --- sys/kern/vfs_vnops.c | 3 +-- sys/sys/file.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 44cbf1a7893b..98f37d26ea8c 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -102,7 +102,6 @@ static fo_truncate_t vn_truncate; static fo_ioctl_t vn_ioctl; static fo_poll_t vn_poll; static fo_kqfilter_t vn_kqfilter; -static fo_stat_t vn_statfile; static fo_close_t vn_closefile; static fo_mmap_t vn_mmap; static fo_fallocate_t vn_fallocate; @@ -1616,7 +1615,7 @@ vn_truncate_locked(struct vnode *vp, off_t length, bool sync, /* * File table vnode stat routine. */ -static int +int vn_statfile(struct file *fp, struct stat *sb, struct ucred *active_cred, struct thread *td) { diff --git a/sys/sys/file.h b/sys/sys/file.h index c42ab09a7e03..c4fc70f517a4 100644 --- a/sys/sys/file.h +++ b/sys/sys/file.h @@ -262,7 +262,7 @@ fo_kqfilter_t invfo_kqfilter; fo_chmod_t invfo_chmod; fo_chown_t invfo_chown; fo_sendfile_t invfo_sendfile; - +fo_stat_t vn_statfile; fo_sendfile_t vn_sendfile; fo_seek_t vn_seek; fo_fill_kinfo_t vn_fill_kinfo; From owner-dev-commits-src-main@freebsd.org Thu Apr 15 09:50:04 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AF54E5E8D32; Thu, 15 Apr 2021 09:50:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLZMH6vpfz3QHg; Thu, 15 Apr 2021 09:50:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DCD5B6C7A; Thu, 15 Apr 2021 09:50:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13F9o3Lj068465; Thu, 15 Apr 2021 09:50:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13F9o3xc068462; Thu, 15 Apr 2021 09:50:03 GMT (envelope-from git) Date: Thu, 15 Apr 2021 09:50:03 GMT Message-Id: <202104150950.13F9o3xc068462@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: d51b4b0aac43 - main - AT_RESOLVE_BENEATH is bsd-specific MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d51b4b0aac43d9d25f7eb3f17b2d3034a5c851d8 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 09:50:04 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=d51b4b0aac43d9d25f7eb3f17b2d3034a5c851d8 commit d51b4b0aac43d9d25f7eb3f17b2d3034a5c851d8 Author: Konstantin Belousov AuthorDate: 2021-03-11 15:07:02 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-15 09:48:02 +0000 AT_RESOLVE_BENEATH is bsd-specific Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29111 --- sys/sys/fcntl.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/sys/fcntl.h b/sys/sys/fcntl.h index 8db9b1fe80b9..bc2011c31e88 100644 --- a/sys/sys/fcntl.h +++ b/sys/sys/fcntl.h @@ -219,10 +219,12 @@ typedef __pid_t pid_t; #define AT_SYMLINK_NOFOLLOW 0x0200 /* Do not follow symbolic links */ #define AT_SYMLINK_FOLLOW 0x0400 /* Follow symbolic link */ #define AT_REMOVEDIR 0x0800 /* Remove directory instead of file */ +#endif /* __POSIX_VISIBLE >= 200809 */ +#if __BSD_VISIBLE /* #define AT_UNUSED1 0x1000 *//* Was AT_BENEATH */ #define AT_RESOLVE_BENEATH 0x2000 /* Do not allow name resolution to walk out of dirfd */ -#endif +#endif /* __BSD_VISIBLE */ /* * Constants used for fcntl(2) From owner-dev-commits-src-main@freebsd.org Thu Apr 15 09:50:05 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 326A65E8C51; Thu, 15 Apr 2021 09:50:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLZMK0PG6z3Q9J; Thu, 15 Apr 2021 09:50:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EB7366CE1; Thu, 15 Apr 2021 09:50:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13F9o4GZ068680; Thu, 15 Apr 2021 09:50:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13F9o4j9068677; Thu, 15 Apr 2021 09:50:04 GMT (envelope-from git) Date: Thu, 15 Apr 2021 09:50:04 GMT Message-Id: <202104150950.13F9o4j9068677@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 509124b62616 - main - Add AT_EMPTY_PATH for several *at(2) syscalls MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 509124b62616f73dcdc42263ee109392dafafd99 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 09:50:05 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=509124b62616f73dcdc42263ee109392dafafd99 commit 509124b62616f73dcdc42263ee109392dafafd99 Author: Konstantin Belousov AuthorDate: 2021-03-07 14:29:09 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-15 09:48:11 +0000 Add AT_EMPTY_PATH for several *at(2) syscalls It is currently allowed to fchownat(2), fchmodat(2), fchflagsat(2), utimensat(2), fstatat(2), and linkat(2). For linkat(2), PRIV_VFS_FHOPEN privilege is required to exercise the flag. It allows to link any open file. Requested by: trasz Tested by: pho, trasz Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D29111 --- lib/libc/sys/access.2 | 13 +++++++++- lib/libc/sys/chflags.2 | 13 +++++++++- lib/libc/sys/chmod.2 | 13 +++++++++- lib/libc/sys/chown.2 | 13 +++++++++- lib/libc/sys/link.2 | 11 ++++++++- lib/libc/sys/stat.2 | 13 +++++++++- lib/libc/sys/utimensat.2 | 13 +++++++++- sys/kern/vfs_lookup.c | 63 ++++++++++++++++++++++++++++++++++++++++++------ sys/kern/vfs_syscalls.c | 63 +++++++++++++++++++++++++++++++++--------------- sys/sys/fcntl.h | 1 + sys/sys/namei.h | 3 +++ 11 files changed, 185 insertions(+), 34 deletions(-) diff --git a/lib/libc/sys/access.2 b/lib/libc/sys/access.2 index 13bfd7e5a88a..12af63385780 100644 --- a/lib/libc/sys/access.2 +++ b/lib/libc/sys/access.2 @@ -28,7 +28,7 @@ .\" @(#)access.2 8.2 (Berkeley) 4/1/94 .\" $FreeBSD$ .\" -.Dd February 23, 2021 +.Dd March 30, 2021 .Dt ACCESS 2 .Os .Sh NAME @@ -129,6 +129,17 @@ See the description of the flag in the .Xr open 2 manual page. +.It Dv AT_EMPTY_PATH +If the +.Fa path +argument is an empty string, operate on the file or directory +referenced by the descriptor +.Fa fd . +If +.Fa fd +is equal to +.Dv AT_FDCWD , +operate on the current working directory. .El .Pp Even if a process's real or effective user has appropriate privileges diff --git a/lib/libc/sys/chflags.2 b/lib/libc/sys/chflags.2 index a44713904599..f8dfd59c39d3 100644 --- a/lib/libc/sys/chflags.2 +++ b/lib/libc/sys/chflags.2 @@ -28,7 +28,7 @@ .\" @(#)chflags.2 8.3 (Berkeley) 5/2/95 .\" $FreeBSD$ .\" -.Dd February 23, 2021 +.Dd March 30, 2021 .Dt CHFLAGS 2 .Os .Sh NAME @@ -103,6 +103,17 @@ See the description of the flag in the .Xr open 2 manual page. +.It Dv AT_EMPTY_PATH +If the +.Fa path +argument is an empty string, operate on the file or directory +referenced by the descriptor +.Fa fd . +If +.Fa fd +is equal to +.Dv AT_FDCWD , +operate on the current working directory. .El .Pp If diff --git a/lib/libc/sys/chmod.2 b/lib/libc/sys/chmod.2 index 0127a5b629e4..44a1b18718f1 100644 --- a/lib/libc/sys/chmod.2 +++ b/lib/libc/sys/chmod.2 @@ -28,7 +28,7 @@ .\" @(#)chmod.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd February 23, 2021 +.Dd March 30, 2021 .Dt CHMOD 2 .Os .Sh NAME @@ -110,6 +110,17 @@ See the description of the flag in the .Xr open 2 manual page. +.It Dv AT_EMPTY_PATH +If the +.Fa path +argument is an empty string, operate on the file or directory +referenced by the descriptor +.Fa fd . +If +.Fa fd +is equal to +.Dv AT_FDCWD , +operate on the current working directory. .El .Pp If diff --git a/lib/libc/sys/chown.2 b/lib/libc/sys/chown.2 index 4c45ce9174bb..467ff8a87e55 100644 --- a/lib/libc/sys/chown.2 +++ b/lib/libc/sys/chown.2 @@ -28,7 +28,7 @@ .\" @(#)chown.2 8.4 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd February 23, 2021 +.Dd March 30, 2021 .Dt CHOWN 2 .Os .Sh NAME @@ -127,6 +127,17 @@ See the description of the flag in the .Xr open 2 manual page. +.It Dv AT_EMPTY_PATH +If the +.Fa path +argument is an empty string, operate on the file or directory +referenced by the descriptor +.Fa fd . +If +.Fa fd +is equal to +.Dv AT_FDCWD , +operate on the current working directory. .El .Pp If diff --git a/lib/libc/sys/link.2 b/lib/libc/sys/link.2 index bcf03f17f3bb..37225f9571d0 100644 --- a/lib/libc/sys/link.2 +++ b/lib/libc/sys/link.2 @@ -28,7 +28,7 @@ .\" @(#)link.2 8.3 (Berkeley) 1/12/94 .\" $FreeBSD$ .\" -.Dd February 23, 2021 +.Dd March 30, 2021 .Dt LINK 2 .Os .Sh NAME @@ -124,6 +124,15 @@ See the description of the flag in the .Xr open 2 manual page. +.It Dv AT_EMPTY_PATH +If the +.Fa path2 +argument is an empty string, link the file referenced by the descriptor +.Fa fd2 . +The operation requires that the calling process has the +.Dv PRIV_VFS_FHOPEN +privilege, effectively being executed with effective user +.Dv root . .El .Pp If diff --git a/lib/libc/sys/stat.2 b/lib/libc/sys/stat.2 index 0ed70620af63..55221d05a60e 100644 --- a/lib/libc/sys/stat.2 +++ b/lib/libc/sys/stat.2 @@ -28,7 +28,7 @@ .\" @(#)stat.2 8.4 (Berkeley) 5/1/95 .\" $FreeBSD$ .\" -.Dd February 23, 2021 +.Dd March 30, 2021 .Dt STAT 2 .Os .Sh NAME @@ -111,6 +111,17 @@ See the description of the flag in the .Xr open 2 manual page. +.It Dv AT_EMPTY_PATH +If the +.Fa path +argument is an empty string, operate on the file or directory +referenced by the descriptor +.Fa fd . +If +.Fa fd +is equal to +.Dv AT_FDCWD , +operate on the current working directory. .El .Pp If diff --git a/lib/libc/sys/utimensat.2 b/lib/libc/sys/utimensat.2 index d31ee1f1515a..2af452898c9d 100644 --- a/lib/libc/sys/utimensat.2 +++ b/lib/libc/sys/utimensat.2 @@ -31,7 +31,7 @@ .\" @(#)utimes.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd February 23, 2021 +.Dd March 30, 2021 .Dt UTIMENSAT 2 .Os .Sh NAME @@ -155,6 +155,17 @@ See the description of the flag in the .Xr open 2 manual page. +.It Dv AT_EMPTY_PATH +If the +.Fa path +argument is an empty string, operate on the file or directory +referenced by the descriptor +.Fa fd . +If +.Fa fd +is equal to +.Dv AT_FDCWD , +operate on the current working directory. .El .Sh RETURN VALUES .Rv -std diff --git a/sys/kern/vfs_lookup.c b/sys/kern/vfs_lookup.c index 07c89e634de4..f4ec3cea9fff 100644 --- a/sys/kern/vfs_lookup.c +++ b/sys/kern/vfs_lookup.c @@ -401,7 +401,9 @@ namei_setup(struct nameidata *ndp, struct vnode **dpp, struct pwd **pwdp) } #endif } - if (error == 0 && (*dpp)->v_type != VDIR) + if (error == 0 && (*dpp)->v_type != VDIR && + (cnp->cn_pnbuf[0] != '\0' || + (cnp->cn_flags & EMPTYPATH) == 0)) error = ENOTDIR; } if (error == 0 && (cnp->cn_flags & RBENEATH) != 0) { @@ -458,23 +460,62 @@ namei_getpath(struct nameidata *ndp) &ndp->ni_pathlen); } - if (__predict_false(error != 0)) { - namei_cleanup_cnp(cnp); + if (__predict_false(error != 0)) return (error); - } /* - * Don't allow empty pathnames. + * Don't allow empty pathnames unless EMPTYPATH is specified. + * Caller checks for ENOENT as an indication for the empty path. */ - if (__predict_false(*cnp->cn_pnbuf == '\0')) { - namei_cleanup_cnp(cnp); + if (__predict_false(*cnp->cn_pnbuf == '\0')) return (ENOENT); - } cnp->cn_nameptr = cnp->cn_pnbuf; return (0); } +static int +namei_emptypath(struct nameidata *ndp) +{ + struct componentname *cnp; + struct pwd *pwd; + struct vnode *dp; + int error; + + cnp = &ndp->ni_cnd; + MPASS(*cnp->cn_pnbuf == '\0'); + MPASS((cnp->cn_flags & EMPTYPATH) != 0); + MPASS((cnp->cn_flags & (LOCKPARENT | WANTPARENT)) == 0); + + error = namei_setup(ndp, &dp, &pwd); + if (error != 0) { + namei_cleanup_cnp(cnp); + goto errout; + } + + ndp->ni_vp = dp; + vref(dp); + namei_cleanup_cnp(cnp); + pwd_drop(pwd); + ndp->ni_resflags |= NIRES_EMPTYPATH; + NDVALIDATE(ndp); + if ((cnp->cn_flags & LOCKLEAF) != 0) { + VOP_LOCK(dp, (cnp->cn_flags & LOCKSHARED) != 0 ? + LK_SHARED : LK_EXCLUSIVE); + if (VN_IS_DOOMED(dp)) { + vput(dp); + error = ENOENT; + goto errout; + } + } + SDT_PROBE4(vfs, namei, lookup, return, 0, ndp->ni_vp, false, ndp); + return (0); + +errout: + SDT_PROBE4(vfs, namei, lookup, return, error, NULL, false, ndp); + return (error); +} + /* * Convert a pathname into a pointer to a locked vnode. * @@ -555,6 +596,11 @@ namei(struct nameidata *ndp) error = namei_getpath(ndp); if (__predict_false(error != 0)) { + if (error == ENOENT && (cnp->cn_flags & EMPTYPATH) != 0) + return (namei_emptypath(ndp)); + namei_cleanup_cnp(cnp); + SDT_PROBE4(vfs, namei, lookup, return, error, NULL, + false, ndp); return (error); } @@ -588,6 +634,7 @@ namei(struct nameidata *ndp) ndp->ni_loopcnt = 0; error = namei_getpath(ndp); if (__predict_false(error != 0)) { + namei_cleanup_cnp(cnp); return (error); } /* FALLTHROUGH */ diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 48df8a3e9051..45f155ebff3d 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -129,6 +129,8 @@ at2cnpflags(u_int at_flags, u_int mask) res |= (at_flags & AT_SYMLINK_NOFOLLOW) != 0 ? NOFOLLOW : FOLLOW; } + if ((mask & AT_EMPTY_PATH) != 0 && (at_flags & AT_EMPTY_PATH) != 0) + res |= EMPTYPATH; return (res); } @@ -1496,12 +1498,13 @@ sys_linkat(struct thread *td, struct linkat_args *uap) int flag; flag = uap->flag; - if ((flag & ~(AT_SYMLINK_FOLLOW | AT_RESOLVE_BENEATH)) != 0) + if ((flag & ~(AT_SYMLINK_FOLLOW | AT_RESOLVE_BENEATH | + AT_EMPTY_PATH)) != 0) return (EINVAL); return (kern_linkat(td, uap->fd1, uap->fd2, uap->path1, uap->path2, UIO_USERSPACE, at2cnpflags(flag, AT_SYMLINK_FOLLOW | - AT_RESOLVE_BENEATH))); + AT_RESOLVE_BENEATH | AT_EMPTY_PATH))); } int hardlink_check_uid = 0; @@ -1578,6 +1581,23 @@ kern_linkat_vp(struct thread *td, struct vnode *vp, int fd, const char *path, LOCKPARENT | SAVENAME | AUDITVNODE2 | NOCACHE, segflag, path, fd, &cap_linkat_target_rights, td); if ((error = namei(&nd)) == 0) { + if ((nd.ni_resflags & NIRES_EMPTYPATH) != 0) { + error = priv_check(td, PRIV_VFS_FHOPEN); + if (error != 0) { + NDFREE(&nd, NDF_ONLY_PNBUF); + if (nd.ni_vp != NULL) { + if (nd.ni_dvp == nd.ni_vp) + vrele(nd.ni_dvp); + else + vput(nd.ni_dvp); + vrele(nd.ni_vp); + } else { + vput(nd.ni_dvp); + } + vrele(vp); + return (error); + } + } if (nd.ni_vp != NULL) { NDFREE(&nd, NDF_ONLY_PNBUF); if (nd.ni_dvp == nd.ni_vp) @@ -2075,7 +2095,7 @@ kern_accessat(struct thread *td, int fd, const char *path, struct nameidata nd; int error; - if ((flag & ~(AT_EACCESS | AT_RESOLVE_BENEATH)) != 0) + if ((flag & ~(AT_EACCESS | AT_RESOLVE_BENEATH | AT_EMPTY_PATH)) != 0) return (EINVAL); if (amode != F_OK && (amode & ~(R_OK | W_OK | X_OK)) != 0) return (EINVAL); @@ -2096,8 +2116,8 @@ kern_accessat(struct thread *td, int fd, const char *path, usecred = cred; AUDIT_ARG_VALUE(amode); NDINIT_ATRIGHTS(&nd, LOOKUP, FOLLOW | LOCKSHARED | LOCKLEAF | - AUDITVNODE1 | at2cnpflags(flag, AT_RESOLVE_BENEATH), - pathseg, path, fd, &cap_fstat_rights, td); + AUDITVNODE1 | at2cnpflags(flag, AT_RESOLVE_BENEATH | + AT_EMPTY_PATH), pathseg, path, fd, &cap_fstat_rights, td); if ((error = namei(&nd)) != 0) goto out; vp = nd.ni_vp; @@ -2387,12 +2407,13 @@ kern_statat(struct thread *td, int flag, int fd, const char *path, struct nameidata nd; int error; - if ((flag & ~(AT_SYMLINK_NOFOLLOW | AT_RESOLVE_BENEATH)) != 0) + if ((flag & ~(AT_SYMLINK_NOFOLLOW | AT_RESOLVE_BENEATH | + AT_EMPTY_PATH)) != 0) return (EINVAL); NDINIT_ATRIGHTS(&nd, LOOKUP, at2cnpflags(flag, AT_RESOLVE_BENEATH | - AT_SYMLINK_NOFOLLOW) | LOCKSHARED | LOCKLEAF | AUDITVNODE1, - pathseg, path, fd, &cap_fstat_rights, td); + AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH) | LOCKSHARED | LOCKLEAF | + AUDITVNODE1, pathseg, path, fd, &cap_fstat_rights, td); if ((error = namei(&nd)) != 0) return (error); @@ -2710,7 +2731,8 @@ int sys_chflagsat(struct thread *td, struct chflagsat_args *uap) { - if ((uap->atflag & ~(AT_SYMLINK_NOFOLLOW | AT_RESOLVE_BENEATH)) != 0) + if ((uap->atflag & ~(AT_SYMLINK_NOFOLLOW | AT_RESOLVE_BENEATH | + AT_EMPTY_PATH)) != 0) return (EINVAL); return (kern_chflagsat(td, uap->fd, uap->path, UIO_USERSPACE, @@ -2743,8 +2765,8 @@ kern_chflagsat(struct thread *td, int fd, const char *path, AUDIT_ARG_FFLAGS(flags); NDINIT_ATRIGHTS(&nd, LOOKUP, at2cnpflags(atflag, AT_SYMLINK_NOFOLLOW | - AT_RESOLVE_BENEATH) | AUDITVNODE1, pathseg, path, fd, - &cap_fchflags_rights, td); + AT_RESOLVE_BENEATH | AT_EMPTY_PATH) | AUDITVNODE1, pathseg, path, + fd, &cap_fchflags_rights, td); if ((error = namei(&nd)) != 0) return (error); NDFREE_NOTHING(&nd); @@ -2838,7 +2860,8 @@ int sys_fchmodat(struct thread *td, struct fchmodat_args *uap) { - if ((uap->flag & ~(AT_SYMLINK_NOFOLLOW | AT_RESOLVE_BENEATH)) != 0) + if ((uap->flag & ~(AT_SYMLINK_NOFOLLOW | AT_RESOLVE_BENEATH | + AT_EMPTY_PATH)) != 0) return (EINVAL); return (kern_fchmodat(td, uap->fd, uap->path, UIO_USERSPACE, @@ -2871,8 +2894,8 @@ kern_fchmodat(struct thread *td, int fd, const char *path, AUDIT_ARG_MODE(mode); NDINIT_ATRIGHTS(&nd, LOOKUP, at2cnpflags(flag, AT_SYMLINK_NOFOLLOW | - AT_RESOLVE_BENEATH) | AUDITVNODE1, pathseg, path, fd, - &cap_fchmod_rights, td); + AT_RESOLVE_BENEATH | AT_EMPTY_PATH) | AUDITVNODE1, pathseg, path, + fd, &cap_fchmod_rights, td); if ((error = namei(&nd)) != 0) return (error); NDFREE_NOTHING(&nd); @@ -2966,7 +2989,8 @@ int sys_fchownat(struct thread *td, struct fchownat_args *uap) { - if ((uap->flag & ~(AT_SYMLINK_NOFOLLOW | AT_RESOLVE_BENEATH)) != 0) + if ((uap->flag & ~(AT_SYMLINK_NOFOLLOW | AT_RESOLVE_BENEATH | + AT_EMPTY_PATH)) != 0) return (EINVAL); return (kern_fchownat(td, uap->fd, uap->path, UIO_USERSPACE, uap->uid, @@ -2982,8 +3006,8 @@ kern_fchownat(struct thread *td, int fd, const char *path, AUDIT_ARG_OWNER(uid, gid); NDINIT_ATRIGHTS(&nd, LOOKUP, at2cnpflags(flag, AT_SYMLINK_NOFOLLOW | - AT_RESOLVE_BENEATH) | AUDITVNODE1, pathseg, path, fd, - &cap_fchown_rights, td); + AT_RESOLVE_BENEATH | AT_EMPTY_PATH) | AUDITVNODE1, pathseg, path, + fd, &cap_fchown_rights, td); if ((error = namei(&nd)) != 0) return (error); @@ -3334,13 +3358,14 @@ kern_utimensat(struct thread *td, int fd, const char *path, struct timespec ts[2]; int error, flags; - if ((flag & ~(AT_SYMLINK_NOFOLLOW | AT_RESOLVE_BENEATH)) != 0) + if ((flag & ~(AT_SYMLINK_NOFOLLOW | AT_RESOLVE_BENEATH | + AT_EMPTY_PATH)) != 0) return (EINVAL); if ((error = getutimens(tptr, tptrseg, ts, &flags)) != 0) return (error); NDINIT_ATRIGHTS(&nd, LOOKUP, at2cnpflags(flag, AT_SYMLINK_NOFOLLOW | - AT_RESOLVE_BENEATH) | AUDITVNODE1, + AT_RESOLVE_BENEATH | AT_EMPTY_PATH) | AUDITVNODE1, pathseg, path, fd, &cap_futimes_rights, td); if ((error = namei(&nd)) != 0) return (error); diff --git a/sys/sys/fcntl.h b/sys/sys/fcntl.h index bc2011c31e88..0fa4e7758c9d 100644 --- a/sys/sys/fcntl.h +++ b/sys/sys/fcntl.h @@ -224,6 +224,7 @@ typedef __pid_t pid_t; /* #define AT_UNUSED1 0x1000 *//* Was AT_BENEATH */ #define AT_RESOLVE_BENEATH 0x2000 /* Do not allow name resolution to walk out of dirfd */ +#define AT_EMPTY_PATH 0x4000 /* Operate on dirfd if path is empty */ #endif /* __BSD_VISIBLE */ /* diff --git a/sys/sys/namei.h b/sys/sys/namei.h index b6985f1fa6ff..5f3d917083a5 100644 --- a/sys/sys/namei.h +++ b/sys/sys/namei.h @@ -144,10 +144,12 @@ int cache_fplookup(struct nameidata *ndp, enum cache_fpl_status *status, #define WANTPARENT 0x0010 /* want parent vnode returned unlocked */ #define FAILIFEXISTS 0x0020 /* return EEXIST if found */ #define FOLLOW 0x0040 /* follow symbolic links */ +#define EMPTYPATH 0x0080 /* Allow empty path for *at */ #define LOCKSHARED 0x0100 /* Shared lock leaf */ #define NOFOLLOW 0x0000 /* do not follow symbolic links (pseudo) */ #define RBENEATH 0x100000000ULL /* No escape, even tmp, from start dir */ #define MODMASK 0xf000001ffULL /* mask of operational modifiers */ + /* * Namei parameter descriptors. * @@ -198,6 +200,7 @@ int cache_fplookup(struct nameidata *ndp, enum cache_fpl_status *status, */ #define NIRES_ABS 0x00000001 /* Path was absolute */ #define NIRES_STRICTREL 0x00000002 /* Restricted lookup result */ +#define NIRES_EMPTYPATH 0x00000004 /* EMPTYPATH used */ /* * Flags in ni_lcf, valid for the duration of the namei call. From owner-dev-commits-src-main@freebsd.org Thu Apr 15 09:50:06 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E090C5E8E8A; Thu, 15 Apr 2021 09:50:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLZML397yz3QFq; Thu, 15 Apr 2021 09:50:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0F469702D; Thu, 15 Apr 2021 09:50:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13F9o5hM068887; Thu, 15 Apr 2021 09:50:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13F9o54n068882; Thu, 15 Apr 2021 09:50:05 GMT (envelope-from git) Date: Thu, 15 Apr 2021 09:50:05 GMT Message-Id: <202104150950.13F9o54n068882@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 8d9ed174f3af - main - open(2): Implement O_PATH MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8d9ed174f3afba5f114742447e622fc1173d4774 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 09:50:07 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=8d9ed174f3afba5f114742447e622fc1173d4774 commit 8d9ed174f3afba5f114742447e622fc1173d4774 Author: Konstantin Belousov AuthorDate: 2021-03-18 10:41:47 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-15 09:48:24 +0000 open(2): Implement O_PATH Reviewed by: markj Tested by: pho Discussed with: walker.aj325_gmail.com, wulf Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29323 --- lib/libc/sys/open.2 | 41 ++++++++++++++++++++++++++++++++- sys/kern/kern_descrip.c | 46 +++++++++++++++++++++++++++++++++---- sys/kern/vfs_aio.c | 5 ++++ sys/kern/vfs_lookup.c | 6 +++-- sys/kern/vfs_syscalls.c | 61 ++++++++++++++++++++++++++++++++++++++----------- sys/kern/vfs_vnops.c | 34 ++++++++++++++++----------- sys/sys/fcntl.h | 8 ++++--- sys/sys/file.h | 1 + sys/sys/filedesc.h | 2 ++ 9 files changed, 168 insertions(+), 36 deletions(-) diff --git a/lib/libc/sys/open.2 b/lib/libc/sys/open.2 index e24c823d039a..f9c54bfc7581 100644 --- a/lib/libc/sys/open.2 +++ b/lib/libc/sys/open.2 @@ -28,7 +28,7 @@ .\" @(#)open.2 8.2 (Berkeley) 11/16/93 .\" $FreeBSD$ .\" -.Dd February 23, 2021 +.Dd March 18, 2021 .Dt OPEN 2 .Os .Sh NAME @@ -168,6 +168,7 @@ O_DIRECTORY error if file is not a directory O_CLOEXEC set FD_CLOEXEC upon open O_VERIFY verify the contents of the file O_RESOLVE_BENEATH path resolution must not cross the fd directory +O_PATH record only the target path in the opened descriptor .Ed .Pp Opening a file with @@ -316,6 +317,44 @@ The primary use for this descriptor will be as the lookup descriptor for the .Fn *at family of functions. .Pp +.Dv O_PATH +returns a file descriptor that can be used as a directory file descriptor for +.Xr openat 2 +and other system calls taking a file descriptor argument, like +.Xr fstatat 2 +and others. +The other functionality of the returned file descriptor is limited to +the descriptor-level operations. +It can be used for +.Bl -tag -width SCM_RIGHTS -offset indent -compact +.It Xr fcntl 2 +but advisory locking is not allowed +.It Xr dup 2 +.It Xr close 2 +.It Xr fstat 2 +.It Xr fexecve 2 +requires that +.Dv O_EXEC +was also specified at open time +.It Dv SCM_RIGHTS +can be passed over a +.Xr unix 4 +socket using a +.Dv SCM_RIGHTS +message +.El +But operations like +.Xr read 2 , +.Xr ftruncate 2 , +and any other that operate on file and not on file descriptor (except +.Xr fstat 2 ), +are not allowed. +See also the description of +.Dv AT_EMPTY_PATH +flag for +.Xr fstatat 2 +and related syscalls. +.Pp If successful, .Fn open returns a non-negative integer, termed a file descriptor. diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 7a43fbb2eb80..81af58fbddd1 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -546,6 +547,11 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) error = fget_fcntl(td, fd, &cap_fcntl_rights, F_SETFL, &fp); if (error != 0) break; + if (fp->f_ops == &path_fileops) { + fdrop(fp, td); + error = EBADF; + break; + } do { tmp = flg = fp->f_flag; tmp &= ~FCNTLFLAGS; @@ -610,7 +616,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) error = fget_unlocked(fdp, fd, &cap_flock_rights, &fp); if (error != 0) break; - if (fp->f_type != DTYPE_VNODE) { + if (fp->f_type != DTYPE_VNODE || fp->f_ops == &path_fileops) { error = EBADF; fdrop(fp, td); break; @@ -715,7 +721,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) error = fget_unlocked(fdp, fd, &cap_flock_rights, &fp); if (error != 0) break; - if (fp->f_type != DTYPE_VNODE) { + if (fp->f_type != DTYPE_VNODE || fp->f_ops == &path_fileops) { error = EBADF; fdrop(fp, td); break; @@ -771,7 +777,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) error = fget_unlocked(fdp, fd, &cap_no_rights, &fp); if (error != 0) break; - if (fp->f_type != DTYPE_VNODE) { + if (fp->f_type != DTYPE_VNODE || fp->f_ops == &path_fileops) { fdrop(fp, td); error = EBADF; break; @@ -3544,7 +3550,7 @@ sys_flock(struct thread *td, struct flock_args *uap) error = fget(td, uap->fd, &cap_flock_rights, &fp); if (error != 0) return (error); - if (fp->f_type != DTYPE_VNODE) { + if (fp->f_type != DTYPE_VNODE || fp->f_ops == &path_fileops) { fdrop(fp, td); return (EOPNOTSUPP); } @@ -4960,6 +4966,38 @@ struct fileops badfileops = { .fo_fill_kinfo = badfo_fill_kinfo, }; +static int +path_poll(struct file *fp, int events, struct ucred *active_cred, + struct thread *td) +{ + return (POLLNVAL); +} + +static int +path_close(struct file *fp, struct thread *td) +{ + MPASS(fp->f_type == DTYPE_VNODE); + fp->f_ops = &badfileops; + vrele(fp->f_vnode); + return (0); +} + +struct fileops path_fileops = { + .fo_read = badfo_readwrite, + .fo_write = badfo_readwrite, + .fo_truncate = badfo_truncate, + .fo_ioctl = badfo_ioctl, + .fo_poll = path_poll, + .fo_kqfilter = badfo_kqfilter, + .fo_stat = vn_statfile, + .fo_close = path_close, + .fo_chmod = badfo_chmod, + .fo_chown = badfo_chown, + .fo_sendfile = badfo_sendfile, + .fo_fill_kinfo = vn_fill_kinfo, + .fo_flags = DFLAG_PASSABLE, +}; + int invfo_rdwr(struct file *fp, struct uio *uio, struct ucred *active_cred, int flags, struct thread *td) diff --git a/sys/kern/vfs_aio.c b/sys/kern/vfs_aio.c index 9b45a06c5f9f..640e82b6f0ff 100644 --- a/sys/kern/vfs_aio.c +++ b/sys/kern/vfs_aio.c @@ -1619,6 +1619,11 @@ aio_aqueue(struct thread *td, struct aiocb *ujob, struct aioliojob *lj, goto err3; } + if (fp != NULL && fp->f_ops == &path_fileops) { + error = EBADF; + goto err3; + } + job->fd_file = fp; mtx_lock(&aio_job_mtx); diff --git a/sys/kern/vfs_lookup.c b/sys/kern/vfs_lookup.c index f4ec3cea9fff..f979676f4c7d 100644 --- a/sys/kern/vfs_lookup.c +++ b/sys/kern/vfs_lookup.c @@ -360,8 +360,10 @@ namei_setup(struct nameidata *ndp, struct vnode **dpp, struct pwd **pwdp) if (cnp->cn_flags & AUDITVNODE2) AUDIT_ARG_ATFD2(ndp->ni_dirfd); /* - * Effectively inlined fgetvp_rights, because we need to - * inspect the file as well as grabbing the vnode. + * Effectively inlined fgetvp_rights, because + * we need to inspect the file as well as + * grabbing the vnode. No check for O_PATH, + * files to implement its semantic. */ error = fget_cap(td, ndp->ni_dirfd, &rights, &dfp, &ndp->ni_filecaps); diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 45f155ebff3d..5a1efcdec467 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -375,7 +375,7 @@ kern_fstatfs(struct thread *td, int fd, struct statfs *buf) int error; AUDIT_ARG_FD(fd); - error = getvnode(td, fd, &cap_fstatfs_rights, &fp); + error = getvnode_path(td, fd, &cap_fstatfs_rights, &fp); if (error != 0) return (error); vp = fp->f_vnode; @@ -891,7 +891,7 @@ sys_fchdir(struct thread *td, struct fchdir_args *uap) int error; AUDIT_ARG_FD(uap->fd); - error = getvnode(td, uap->fd, &cap_fchdir_rights, + error = getvnode_path(td, uap->fd, &cap_fchdir_rights, &fp); if (error != 0) return (error); @@ -1023,9 +1023,10 @@ change_dir(struct vnode *vp, struct thread *td) static __inline void flags_to_rights(int flags, cap_rights_t *rightsp) { - if (flags & O_EXEC) { cap_rights_set_one(rightsp, CAP_FEXECVE); + if (flags & O_PATH) + return; } else { switch ((flags & O_ACCMODE)) { case O_RDONLY: @@ -1112,11 +1113,15 @@ kern_openat(struct thread *td, int fd, const char *path, enum uio_seg pathseg, AUDIT_ARG_MODE(mode); cap_rights_init_one(&rights, CAP_LOOKUP); flags_to_rights(flags, &rights); + /* * Only one of the O_EXEC, O_RDONLY, O_WRONLY and O_RDWR flags - * may be specified. + * may be specified. On the other hand, for O_PATH any mode + * except O_EXEC is ignored. */ - if (flags & O_EXEC) { + if ((flags & O_PATH) != 0) { + flags &= ~(O_CREAT | O_ACCMODE); + } else if ((flags & O_EXEC) != 0) { if (flags & O_ACCMODE) return (EINVAL); } else if ((flags & O_ACCMODE) == O_ACCMODE) { @@ -1145,8 +1150,10 @@ kern_openat(struct thread *td, int fd, const char *path, enum uio_seg pathseg, * wonderous happened deep below and we just pass it up * pretending we know what we do. */ - if (error == ENXIO && fp->f_ops != &badfileops) + if (error == ENXIO && fp->f_ops != &badfileops) { + MPASS((flags & O_PATH) == 0); goto success; + } /* * Handle special fdopen() case. bleh. @@ -1176,14 +1183,16 @@ kern_openat(struct thread *td, int fd, const char *path, enum uio_seg pathseg, * files that switched type in the cdevsw fdopen() method. */ fp->f_vnode = vp; + /* * If the file wasn't claimed by devfs bind it to the normal * vnode operations here. */ if (fp->f_ops == &badfileops) { - KASSERT(vp->v_type != VFIFO, + KASSERT(vp->v_type != VFIFO || (flags & O_PATH) != 0, ("Unexpected fifo fp %p vp %p", fp, vp)); - finit_vnode(fp, flags, NULL, &vnops); + finit_vnode(fp, flags, NULL, (flags & O_PATH) != 0 ? + &path_fileops : &vnops); } VOP_UNLOCK(vp); @@ -1882,7 +1891,7 @@ kern_funlinkat(struct thread *td, int dfd, const char *path, int fd, fp = NULL; if (fd != FD_NONE) { - error = getvnode(td, fd, &cap_no_rights, &fp); + error = getvnode_path(td, fd, &cap_no_rights, &fp); if (error != 0) return (error); } @@ -4255,12 +4264,13 @@ out: } /* - * Convert a user file descriptor to a kernel file entry and check that, if it - * is a capability, the correct rights are present. A reference on the file - * entry is held upon returning. + * This variant of getvnode() allows O_PATH files. Caller should + * ensure that returned file and vnode are only used for compatible + * semantics. */ int -getvnode(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) +getvnode_path(struct thread *td, int fd, cap_rights_t *rightsp, + struct file **fpp) { struct file *fp; int error; @@ -4285,10 +4295,35 @@ getvnode(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) fdrop(fp, td); return (EINVAL); } + *fpp = fp; return (0); } +/* + * Convert a user file descriptor to a kernel file entry and check + * that, if it is a capability, the correct rights are present. + * A reference on the file entry is held upon returning. + */ +int +getvnode(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) +{ + int error; + + error = getvnode_path(td, fd, rightsp, fpp); + + /* + * Filter out O_PATH file descriptors, most getvnode() callers + * do not call fo_ methods. + */ + if (error == 0 && (*fpp)->f_ops == &path_fileops) { + fdrop(*fpp, td); + error = EBADF; + } + + return (error); +} + /* * Get an (NFS) file handle. */ diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 98f37d26ea8c..6339295b0556 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -391,25 +391,30 @@ vn_open_vnode(struct vnode *vp, int fmode, struct ucred *cred, return (EOPNOTSUPP); if (vp->v_type != VDIR && fmode & O_DIRECTORY) return (ENOTDIR); + accmode = 0; - if (fmode & (FWRITE | O_TRUNC)) { - if (vp->v_type == VDIR) - return (EISDIR); - accmode |= VWRITE; + if ((fmode & O_PATH) == 0) { + if ((fmode & (FWRITE | O_TRUNC)) != 0) { + if (vp->v_type == VDIR) + return (EISDIR); + accmode |= VWRITE; + } + if ((fmode & FREAD) != 0) + accmode |= VREAD; + if ((fmode & O_APPEND) && (fmode & FWRITE)) + accmode |= VAPPEND; +#ifdef MAC + if ((fmode & O_CREAT) != 0) + accmode |= VCREAT; +#endif } - if (fmode & FREAD) - accmode |= VREAD; - if (fmode & FEXEC) + if ((fmode & FEXEC) != 0) accmode |= VEXEC; - if ((fmode & O_APPEND) && (fmode & FWRITE)) - accmode |= VAPPEND; #ifdef MAC - if (fmode & O_CREAT) - accmode |= VCREAT; - if (fmode & O_VERIFY) + if ((fmode & O_VERIFY) != 0) accmode |= VVERIFY; error = mac_vnode_check_open(cred, vp, accmode); - if (error) + if (error != 0) return (error); accmode &= ~(VCREAT | VVERIFY); @@ -419,6 +424,9 @@ vn_open_vnode(struct vnode *vp, int fmode, struct ucred *cred, if (error != 0) return (error); } + if ((fmode & O_PATH) != 0) + return (0); + if (vp->v_type == VFIFO && VOP_ISLOCKED(vp) != LK_EXCLUSIVE) vn_lock(vp, LK_UPGRADE | LK_RETRY); error = VOP_OPEN(vp, fmode, cred, td, fp); diff --git a/sys/sys/fcntl.h b/sys/sys/fcntl.h index 0fa4e7758c9d..c328abaa02af 100644 --- a/sys/sys/fcntl.h +++ b/sys/sys/fcntl.h @@ -135,7 +135,7 @@ typedef __pid_t pid_t; #if __BSD_VISIBLE #define O_VERIFY 0x00200000 /* open only after verification */ -/* #define O_UNUSED1 0x00400000 */ /* Was O_BENEATH */ +#define O_PATH 0x00400000 /* fd is only a path */ #define O_RESOLVE_BENEATH 0x00800000 /* Do not allow name resolution to walk out of cwd */ #endif @@ -156,10 +156,12 @@ typedef __pid_t pid_t; /* convert from open() flags to/from fflags; convert O_RD/WR to FREAD/FWRITE */ #define FFLAGS(oflags) ((oflags) & O_EXEC ? (oflags) : (oflags) + 1) -#define OFLAGS(fflags) ((fflags) & O_EXEC ? (fflags) : (fflags) - 1) +#define OFLAGS(fflags) \ + (((fflags) & (O_EXEC | O_PATH)) != 0 ? (fflags) : (fflags) - 1) /* bits to save after open */ -#define FMASK (FREAD|FWRITE|FAPPEND|FASYNC|FFSYNC|FDSYNC|FNONBLOCK|O_DIRECT|FEXEC) +#define FMASK (FREAD|FWRITE|FAPPEND|FASYNC|FFSYNC|FDSYNC|FNONBLOCK| \ + O_DIRECT|FEXEC|O_PATH) /* bits settable by fcntl(F_SETFL, ...) */ #define FCNTLFLAGS (FAPPEND|FASYNC|FFSYNC|FDSYNC|FNONBLOCK|FRDAHEAD|O_DIRECT) diff --git a/sys/sys/file.h b/sys/sys/file.h index c4fc70f517a4..9237ee5ceb9d 100644 --- a/sys/sys/file.h +++ b/sys/sys/file.h @@ -239,6 +239,7 @@ struct xfile { extern struct fileops vnops; extern struct fileops badfileops; +extern struct fileops path_fileops; extern struct fileops socketops; extern int maxfiles; /* kernel limit on number of open files */ extern int maxfilesperproc; /* per process limit on number of open files */ diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index 8c5aa258ed28..7f18d8a2286c 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -265,6 +265,8 @@ struct filedesc_to_leader * struct filedesc *fdp, struct proc *leader); int getvnode(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp); +int getvnode_path(struct thread *td, int fd, cap_rights_t *rightsp, + struct file **fpp); void mountcheckdirs(struct vnode *olddp, struct vnode *newdp); int fget_cap_locked(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, From owner-dev-commits-src-main@freebsd.org Thu Apr 15 09:50:07 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C688B5E8F05; Thu, 15 Apr 2021 09:50:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLZMM2gqmz3Q7K; Thu, 15 Apr 2021 09:50:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1A1F76C7B; Thu, 15 Apr 2021 09:50:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13F9o7NH069104; Thu, 15 Apr 2021 09:50:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13F9o79v069100; Thu, 15 Apr 2021 09:50:07 GMT (envelope-from git) Date: Thu, 15 Apr 2021 09:50:07 GMT Message-Id: <202104150950.13F9o79v069100@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: a5970a529c2d - main - Make files opened with O_PATH to not block non-forced unmount MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a5970a529c2d952714f20e4bc6e529c74fd2b3b5 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 09:50:08 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a5970a529c2d952714f20e4bc6e529c74fd2b3b5 commit a5970a529c2d952714f20e4bc6e529c74fd2b3b5 Author: Konstantin Belousov AuthorDate: 2021-04-03 18:55:11 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-15 09:48:27 +0000 Make files opened with O_PATH to not block non-forced unmount by only keeping hold count on the vnode, instead of the use count. Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29323 --- lib/libc/sys/open.2 | 3 +++ sys/kern/kern_descrip.c | 6 +++--- sys/kern/vfs_lookup.c | 2 +- sys/kern/vfs_syscalls.c | 11 ++++++++--- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/libc/sys/open.2 b/lib/libc/sys/open.2 index f9c54bfc7581..06a877e34460 100644 --- a/lib/libc/sys/open.2 +++ b/lib/libc/sys/open.2 @@ -349,6 +349,9 @@ But operations like and any other that operate on file and not on file descriptor (except .Xr fstat 2 ), are not allowed. +File opened with the +.Dv O_PATH +flag does not prevent non-forced unmount of the volume it belongs to. See also the description of .Dv AT_EMPTY_PATH flag for diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 81af58fbddd1..a28e94634326 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -3430,7 +3430,7 @@ _fgetvp(struct thread *td, int fd, int flags, cap_rights_t *needrightsp, error = EINVAL; } else { *vpp = fp->f_vnode; - vrefact(*vpp); + vref(*vpp); } fdrop(fp, td); @@ -3466,7 +3466,7 @@ fgetvp_rights(struct thread *td, int fd, cap_rights_t *needrightsp, *havecaps = caps; *vpp = fp->f_vnode; - vrefact(*vpp); + vref(*vpp); fdrop(fp, td); return (0); @@ -4978,7 +4978,7 @@ path_close(struct file *fp, struct thread *td) { MPASS(fp->f_type == DTYPE_VNODE); fp->f_ops = &badfileops; - vrele(fp->f_vnode); + vdrop(fp->f_vnode); return (0); } diff --git a/sys/kern/vfs_lookup.c b/sys/kern/vfs_lookup.c index f979676f4c7d..3050275c1b6f 100644 --- a/sys/kern/vfs_lookup.c +++ b/sys/kern/vfs_lookup.c @@ -380,7 +380,7 @@ namei_setup(struct nameidata *ndp, struct vnode **dpp, struct pwd **pwdp) error = ENOTDIR; } else { *dpp = dfp->f_vnode; - vrefact(*dpp); + vref(*dpp); if ((dfp->f_flag & FSEARCH) != 0) cnp->cn_flags |= NOEXECCHECK; diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 5a1efcdec467..9130843f6761 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -896,7 +896,7 @@ sys_fchdir(struct thread *td, struct fchdir_args *uap) if (error != 0) return (error); vp = fp->f_vnode; - vrefact(vp); + vref(vp); fdrop(fp, td); vn_lock(vp, LK_SHARED | LK_RETRY); AUDIT_ARG_VNODE1(vp); @@ -1191,8 +1191,13 @@ kern_openat(struct thread *td, int fd, const char *path, enum uio_seg pathseg, if (fp->f_ops == &badfileops) { KASSERT(vp->v_type != VFIFO || (flags & O_PATH) != 0, ("Unexpected fifo fp %p vp %p", fp, vp)); - finit_vnode(fp, flags, NULL, (flags & O_PATH) != 0 ? - &path_fileops : &vnops); + if ((flags & O_PATH) != 0) { + finit_vnode(fp, flags, NULL, &path_fileops); + vhold(vp); + vunref(vp); + } else { + finit_vnode(fp, flags, NULL, &vnops); + } } VOP_UNLOCK(vp); From owner-dev-commits-src-main@freebsd.org Thu Apr 15 09:50:09 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 84B105E8E9C; Thu, 15 Apr 2021 09:50:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLZMN4YH5z3Q4k; Thu, 15 Apr 2021 09:50:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2DE236C7C; Thu, 15 Apr 2021 09:50:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13F9o8VM069313; Thu, 15 Apr 2021 09:50:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13F9o87D069310; Thu, 15 Apr 2021 09:50:08 GMT (envelope-from git) Date: Thu, 15 Apr 2021 09:50:08 GMT Message-Id: <202104150950.13F9o87D069310@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: f9b923af34a6 - main - O_PATH: Allow to open symlink MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f9b923af34a6749c7703b957742f33cc02a485a2 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 09:50:09 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=f9b923af34a6749c7703b957742f33cc02a485a2 commit f9b923af34a6749c7703b957742f33cc02a485a2 Author: Konstantin Belousov AuthorDate: 2021-04-07 03:23:25 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-15 09:49:09 +0000 O_PATH: Allow to open symlink When O_NOFOLLOW is specified, namei() returns the symlink itself. In this case, open(O_PATH) should be allowed, to denote the location of symlink itself. Prevent O_EXEC in this case, execve(2) code is not ready to try to execute symlinks. Reported by: wulf Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29323 --- sys/kern/vfs_vnops.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 6339295b0556..bb9ee2cceb79 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -385,8 +385,10 @@ vn_open_vnode(struct vnode *vp, int fmode, struct ucred *cred, accmode_t accmode; int error; - if (vp->v_type == VLNK) - return (EMLINK); + if (vp->v_type == VLNK) { + if ((fmode & O_PATH) == 0 || (fmode & FEXEC) != 0) + return (EMLINK); + } if (vp->v_type == VSOCK) return (EOPNOTSUPP); if (vp->v_type != VDIR && fmode & O_DIRECTORY) From owner-dev-commits-src-main@freebsd.org Thu Apr 15 09:50:09 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C64BE5E8CC3; Thu, 15 Apr 2021 09:50:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLZMP3R4cz3QQW; Thu, 15 Apr 2021 09:50:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 572C96C7D; Thu, 15 Apr 2021 09:50:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13F9o93T069523; Thu, 15 Apr 2021 09:50:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13F9o9Sx069518; Thu, 15 Apr 2021 09:50:09 GMT (envelope-from git) Date: Thu, 15 Apr 2021 09:50:09 GMT Message-Id: <202104150950.13F9o9Sx069518@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: bbf7a4e878ed - main - O_PATH: allow vnode kevent filter on such files MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bbf7a4e878ed6828d13c7029c128a7e60dc25391 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 09:50:09 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=bbf7a4e878ed6828d13c7029c128a7e60dc25391 commit bbf7a4e878ed6828d13c7029c128a7e60dc25391 Author: Konstantin Belousov AuthorDate: 2021-04-07 18:31:48 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-15 09:49:18 +0000 O_PATH: allow vnode kevent filter on such files if VREAD access is checked as allowed during open Requested by: wulf Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29323 --- lib/libc/sys/open.2 | 3 +++ sys/kern/kern_descrip.c | 2 +- sys/kern/vfs_syscalls.c | 3 ++- sys/kern/vfs_vnops.c | 14 +++++++++++++- sys/sys/fcntl.h | 2 ++ sys/sys/file.h | 1 + 6 files changed, 22 insertions(+), 3 deletions(-) diff --git a/lib/libc/sys/open.2 b/lib/libc/sys/open.2 index 06a877e34460..a7806df69daf 100644 --- a/lib/libc/sys/open.2 +++ b/lib/libc/sys/open.2 @@ -342,6 +342,9 @@ can be passed over a socket using a .Dv SCM_RIGHTS message +.It Xr kqueue 2 +using for +.Dv EVFILT_VNODE .El But operations like .Xr read 2 , diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index a28e94634326..30ac40ffe296 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -4988,7 +4988,7 @@ struct fileops path_fileops = { .fo_truncate = badfo_truncate, .fo_ioctl = badfo_ioctl, .fo_poll = path_poll, - .fo_kqfilter = badfo_kqfilter, + .fo_kqfilter = vn_kqfilter_opath, .fo_stat = vn_statfile, .fo_close = path_close, .fo_chmod = badfo_chmod, diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 9130843f6761..43104a472b5b 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1192,7 +1192,8 @@ kern_openat(struct thread *td, int fd, const char *path, enum uio_seg pathseg, KASSERT(vp->v_type != VFIFO || (flags & O_PATH) != 0, ("Unexpected fifo fp %p vp %p", fp, vp)); if ((flags & O_PATH) != 0) { - finit_vnode(fp, flags, NULL, &path_fileops); + finit(fp, (flags & FMASK) | (fp->f_flag & FKQALLOWED), + DTYPE_VNODE, NULL, &path_fileops); vhold(vp); vunref(vp); } else { diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index bb9ee2cceb79..9da35721def4 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -426,8 +426,12 @@ vn_open_vnode(struct vnode *vp, int fmode, struct ucred *cred, if (error != 0) return (error); } - if ((fmode & O_PATH) != 0) + if ((fmode & O_PATH) != 0) { + error = VOP_ACCESS(vp, VREAD, cred, td); + if (error == 0) + fp->f_flag |= FKQALLOWED; return (0); + } if (vp->v_type == VFIFO && VOP_ISLOCKED(vp) != LK_EXCLUSIVE) vn_lock(vp, LK_UPGRADE | LK_RETRY); @@ -2139,6 +2143,14 @@ vn_kqfilter(struct file *fp, struct knote *kn) return (VOP_KQFILTER(fp->f_vnode, kn)); } +int +vn_kqfilter_opath(struct file *fp, struct knote *kn) +{ + if ((fp->f_flag & FKQALLOWED) == 0) + return (EBADF); + return (vn_kqfilter(fp, kn)); +} + /* * Simplified in-kernel wrapper calls for extended attribute access. * Both calls pass in a NULL credential, authorizing as "kernel" access. diff --git a/sys/sys/fcntl.h b/sys/sys/fcntl.h index c328abaa02af..58d46ae26338 100644 --- a/sys/sys/fcntl.h +++ b/sys/sys/fcntl.h @@ -153,6 +153,8 @@ typedef __pid_t pid_t; #define FREVOKE O_VERIFY /* Only for fo_close() from half-succeeded open */ #define FOPENFAILED O_TTY_INIT +/* Only for O_PATH files which passed ACCESS FREAD check on open */ +#define FKQALLOWED O_RESOLVE_BENEATH /* convert from open() flags to/from fflags; convert O_RD/WR to FREAD/FWRITE */ #define FFLAGS(oflags) ((oflags) & O_EXEC ? (oflags) : (oflags) + 1) diff --git a/sys/sys/file.h b/sys/sys/file.h index 9237ee5ceb9d..b16e23bdfbcf 100644 --- a/sys/sys/file.h +++ b/sys/sys/file.h @@ -267,6 +267,7 @@ fo_stat_t vn_statfile; fo_sendfile_t vn_sendfile; fo_seek_t vn_seek; fo_fill_kinfo_t vn_fill_kinfo; +fo_kqfilter_t vn_kqfilter_opath; int vn_fill_kinfo_vnode(struct vnode *vp, struct kinfo_file *kif); void finit(struct file *, u_int, short, void *, struct fileops *); From owner-dev-commits-src-main@freebsd.org Thu Apr 15 11:35:35 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 519475EBC3B; Thu, 15 Apr 2021 11:35:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLcj30qnjz3mFK; Thu, 15 Apr 2021 11:35:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 040C710B74; Thu, 15 Apr 2021 11:35:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FBZYRQ014039; Thu, 15 Apr 2021 11:35:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FBZYQa014038; Thu, 15 Apr 2021 11:35:34 GMT (envelope-from git) Date: Thu, 15 Apr 2021 11:35:34 GMT Message-Id: <202104151135.13FBZYQa014038@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Chris Rees Subject: git: 3c6366067036 - main - lpd: Add -F flag to prevent daemonizing MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: crees X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3c6366067036d4573528309a0a4d3b52e2a76ae7 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 11:35:35 -0000 The branch main has been updated by crees (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=3c6366067036d4573528309a0a4d3b52e2a76ae7 commit 3c6366067036d4573528309a0a4d3b52e2a76ae7 Author: Chris Rees AuthorDate: 2021-04-03 17:51:56 +0000 Commit: Chris Rees CommitDate: 2021-04-15 11:34:01 +0000 lpd: Add -F flag to prevent daemonizing This is necessary for use with supervision, e.g. runit. I chose -F simply because that is what the folks at LPRng use. Approved by: pfg, gad, ngie Differential Revision: https://reviews.freebsd.org/D29566 --- usr.sbin/lpr/lpd/lpd.8 | 11 +++++++++++ usr.sbin/lpr/lpd/lpd.c | 22 +++++++++++++++------- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/usr.sbin/lpr/lpd/lpd.8 b/usr.sbin/lpr/lpd/lpd.8 index 2554aba2f834..c9607265ee6f 100644 --- a/usr.sbin/lpr/lpd/lpd.8 +++ b/usr.sbin/lpr/lpd/lpd.8 @@ -108,6 +108,17 @@ This means that will not accept any connections from any remote hosts, although it will still accept print requests from all local users. +.It Fl F +By default, +.Nm +will daemonize into the background. +The +.Fl F +flag causes +.Nm +to remain in the foreground. +Logging is still performed with +.Xr syslog 3 . .It Fl W By default, the .Nm diff --git a/usr.sbin/lpr/lpd/lpd.c b/usr.sbin/lpr/lpd/lpd.c index f2f8994d1fee..56821d114268 100644 --- a/usr.sbin/lpr/lpd/lpd.c +++ b/usr.sbin/lpr/lpd/lpd.c @@ -104,6 +104,7 @@ __FBSDID("$FreeBSD$"); int lflag; /* log requests flag */ int sflag; /* no incoming port flag */ +int Fflag; /* run in foreground flag */ int from_remote; /* from remote socket */ int main(int argc, char **_argv); @@ -152,7 +153,7 @@ main(int argc, char **argv) errx(EX_NOPERM,"must run as root"); errs = 0; - while ((i = getopt(argc, argv, "cdlpswW46")) != -1) + while ((i = getopt(argc, argv, "cdlpswFW46")) != -1) switch (i) { case 'c': /* log all kinds of connection-errors to syslog */ @@ -184,6 +185,9 @@ main(int argc, char **argv) syslog(LOG_WARNING, "NOTE: please change your lpd config to use -W"); /* FALLTHROUGH */ + case 'F': + Fflag++; + break; case 'W': /* allow connections coming from a non-reserved port */ /* (done by some lpr-implementations for MS-Windows) */ @@ -264,12 +268,16 @@ main(int argc, char **argv) WEXITSTATUS(status)); } -#ifndef DEBUG +#ifdef DEBUG + Fflag++; +#endif /* - * Set up standard environment by detaching from the parent. + * Set up standard environment by detaching from the parent + * if -F not specified */ - daemon(0, 0); -#endif + if (Fflag == 0) { + daemon(0, 0); + } openlog("lpd", LOG_PID, LOG_LPR); syslog(LOG_INFO, "lpd startup: logging=%d%s%s", lflag, @@ -932,9 +940,9 @@ static void usage(void) { #ifdef INET6 - fprintf(stderr, "usage: lpd [-cdlsW46] [port#]\n"); + fprintf(stderr, "usage: lpd [-cdlsFW46] [port#]\n"); #else - fprintf(stderr, "usage: lpd [-cdlsW] [port#]\n"); + fprintf(stderr, "usage: lpd [-cdlsFW] [port#]\n"); #endif exit(EX_USAGE); } From owner-dev-commits-src-main@freebsd.org Thu Apr 15 11:41:14 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ADE365EBE77; Thu, 15 Apr 2021 11:41:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLcqZ4cP8z3mRZ; Thu, 15 Apr 2021 11:41:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 90D9B109BF; Thu, 15 Apr 2021 11:41:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FBfEJG026741; Thu, 15 Apr 2021 11:41:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FBfExA026740; Thu, 15 Apr 2021 11:41:14 GMT (envelope-from git) Date: Thu, 15 Apr 2021 11:41:14 GMT Message-Id: <202104151141.13FBfExA026740@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Chris Rees Subject: git: 56b0f5f360b6 - main - lpd.8: Chase Dd-- took old value when merging MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: crees X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 56b0f5f360b6039c6a696aa241aaa02a16ff6a0a Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 11:41:14 -0000 The branch main has been updated by crees (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=56b0f5f360b6039c6a696aa241aaa02a16ff6a0a commit 56b0f5f360b6039c6a696aa241aaa02a16ff6a0a Author: Chris Rees AuthorDate: 2021-04-15 11:40:16 +0000 Commit: Chris Rees CommitDate: 2021-04-15 11:40:16 +0000 lpd.8: Chase Dd-- took old value when merging --- usr.sbin/lpr/lpd/lpd.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/lpr/lpd/lpd.8 b/usr.sbin/lpr/lpd/lpd.8 index c9607265ee6f..bff3093bcd09 100644 --- a/usr.sbin/lpr/lpd/lpd.8 +++ b/usr.sbin/lpr/lpd/lpd.8 @@ -28,7 +28,7 @@ .\" @(#)lpd.8 8.3 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd April 9, 2021 +.Dd April 15, 2021 .Dt LPD 8 .Os .Sh NAME From owner-dev-commits-src-main@freebsd.org Thu Apr 15 12:12:35 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9F44C5ED587; Thu, 15 Apr 2021 12:12:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLdWl4B6dz3p2S; Thu, 15 Apr 2021 12:12:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 828C811068; Thu, 15 Apr 2021 12:12:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FCCZGK067634; Thu, 15 Apr 2021 12:12:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FCCZ5u067633; Thu, 15 Apr 2021 12:12:35 GMT (envelope-from git) Date: Thu, 15 Apr 2021 12:12:35 GMT Message-Id: <202104151212.13FCCZ5u067633@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Emmanuel Vadot Subject: git: f41efc453ab5 - main - Fix build with WITHOUT_AUDIT=yes in src.conf MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: manu X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f41efc453ab5563cde214cb19273d87e6e4aa2d4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 12:12:35 -0000 The branch main has been updated by manu: URL: https://cgit.FreeBSD.org/src/commit/?id=f41efc453ab5563cde214cb19273d87e6e4aa2d4 commit f41efc453ab5563cde214cb19273d87e6e4aa2d4 Author: Emmanuel Vadot AuthorDate: 2021-04-15 12:11:13 +0000 Commit: Emmanuel Vadot CommitDate: 2021-04-15 12:11:13 +0000 Fix build with WITHOUT_AUDIT=yes in src.conf Always install the audit related includes are some part of the source always requires them. Reported by: many Fixes: 8c3eaf244a417a4 --- include/Makefile | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/include/Makefile b/include/Makefile index 8d50aeea864f..b444184ab8c6 100644 --- a/include/Makefile +++ b/include/Makefile @@ -223,6 +223,7 @@ MLX5DIR= ${INCLUDEDIR}/dev/mlx5 INCSGROUPS= INCS \ ACPICA \ AGP \ + BSM \ CAM \ CAMATA \ CAMMMC \ @@ -236,14 +237,10 @@ INCSGROUPS= INCS \ OPENCRYPTO \ PCI \ RPC \ + SECAUDIT \ TEKEN \ VERIEXEC -.if ${MK_AUDIT} != "no" -INCSGROUPS+= BSM -INCSGROUPS+= SECAUDIT -.endif - .if ${MK_IPFILTER} != "no" INCSGROUPS+= IPFILTER .endif From owner-dev-commits-src-main@freebsd.org Thu Apr 15 12:27:31 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B39825EDF8C; Thu, 15 Apr 2021 12:27:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLdrz4hmgz3ps1; Thu, 15 Apr 2021 12:27:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8FA9C10FE3; Thu, 15 Apr 2021 12:27:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FCRVlR080817; Thu, 15 Apr 2021 12:27:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FCRVnr080816; Thu, 15 Apr 2021 12:27:31 GMT (envelope-from git) Date: Thu, 15 Apr 2021 12:27:31 GMT Message-Id: <202104151227.13FCRVnr080816@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Chris Rees Subject: git: cebcca89f1b0 - main - lpd: Update SYNOPSIS with new flag MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: crees X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cebcca89f1b059438cc329bde4d8ad254a303623 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 12:27:31 -0000 The branch main has been updated by crees (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=cebcca89f1b059438cc329bde4d8ad254a303623 commit cebcca89f1b059438cc329bde4d8ad254a303623 Author: Chris Rees AuthorDate: 2021-04-15 12:26:10 +0000 Commit: Chris Rees CommitDate: 2021-04-15 12:27:09 +0000 lpd: Update SYNOPSIS with new flag Reported by: 0mp --- usr.sbin/lpr/lpd/lpd.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/lpr/lpd/lpd.8 b/usr.sbin/lpr/lpd/lpd.8 index bff3093bcd09..23c839086571 100644 --- a/usr.sbin/lpr/lpd/lpd.8 +++ b/usr.sbin/lpr/lpd/lpd.8 @@ -36,7 +36,7 @@ .Nd line printer spooler daemon .Sh SYNOPSIS .Nm -.Op Fl cdlpsW46 +.Op Fl cdlpsFW46 .Op Ar port# .Sh DESCRIPTION The From owner-dev-commits-src-main@freebsd.org Thu Apr 15 12:48:42 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 17DF75EEC35; Thu, 15 Apr 2021 12:48:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLfKQ0BpXz3rBm; Thu, 15 Apr 2021 12:48:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ED43911B14; Thu, 15 Apr 2021 12:48:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FCmfDt007767; Thu, 15 Apr 2021 12:48:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FCmfbh007766; Thu, 15 Apr 2021 12:48:41 GMT (envelope-from git) Date: Thu, 15 Apr 2021 12:48:41 GMT Message-Id: <202104151248.13FCmfbh007766@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: e3d675958539 - main - b_vflags update requries bufobj lock MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e3d675958539eee899d42438f5b46a26f3c64902 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 12:48:42 -0000 The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e3d675958539eee899d42438f5b46a26f3c64902 commit e3d675958539eee899d42438f5b46a26f3c64902 Author: Konstantin Belousov AuthorDate: 2021-04-13 10:22:56 +0000 Commit: Konstantin Belousov CommitDate: 2021-04-15 12:47:42 +0000 b_vflags update requries bufobj lock The trunc_dependencies() issue was reported by Alexander Lochmann , who found the problem by performing lock analysis using LockDoc, see https://doi.org/10.1145/3302424.3303948. Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week --- sys/ufs/ffs/ffs_softdep.c | 2 ++ sys/ufs/ffs/ffs_vnops.c | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index 0091b5dcd3b8..23c0cf6e128b 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -7546,7 +7546,9 @@ cleanrestart: BO_LOCK(bo); goto cleanrestart; } + BO_LOCK(bo); bp->b_vflags |= BV_SCANNED; + BO_UNLOCK(bo); bremfree(bp); if (blkoff != 0) { allocbuf(bp, blkoff); diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index dc638595eb7b..05eb19c0ee13 100644 --- a/sys/ufs/ffs/ffs_vnops.c +++ b/sys/ufs/ffs/ffs_vnops.c @@ -321,8 +321,9 @@ loop: if (BUF_LOCK(bp, LK_EXCLUSIVE | LK_SLEEPFAIL | LK_INTERLOCK, BO_LOCKPTR(bo)) != 0) { + BO_LOCK(bo); bp->b_vflags &= ~BV_SCANNED; - goto next; + goto next_locked; } } else continue; @@ -385,6 +386,7 @@ next: * to start from a known point. */ BO_LOCK(bo); +next_locked: nbp = TAILQ_FIRST(&bo->bo_dirty.bv_hd); } if (waitfor != MNT_WAIT) { From owner-dev-commits-src-main@freebsd.org Thu Apr 15 13:41:56 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 46D4D5F052C; Thu, 15 Apr 2021 13:41:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLgVr1bLGz3tyx; Thu, 15 Apr 2021 13:41:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2991F12783; Thu, 15 Apr 2021 13:41:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FDfuu0086050; Thu, 15 Apr 2021 13:41:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FDfupC086049; Thu, 15 Apr 2021 13:41:56 GMT (envelope-from git) Date: Thu, 15 Apr 2021 13:41:56 GMT Message-Id: <202104151341.13FDfupC086049@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 3a248c84419d - main - Add some regression tests for O_PATH and AT_EMPTY_PATH MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3a248c84419d4f7d6617d30744ab56d0b456fe03 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 13:41:56 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3a248c84419d4f7d6617d30744ab56d0b456fe03 commit 3a248c84419d4f7d6617d30744ab56d0b456fe03 Author: Mark Johnston AuthorDate: 2021-04-15 13:40:57 +0000 Commit: Mark Johnston CommitDate: 2021-04-15 13:40:57 +0000 Add some regression tests for O_PATH and AT_EMPTY_PATH Reviewed by: kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29719 --- tests/sys/file/Makefile | 1 + tests/sys/file/path_test.c | 778 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 779 insertions(+) diff --git a/tests/sys/file/Makefile b/tests/sys/file/Makefile index ed2d2c4fbe2e..46a6a9544c62 100644 --- a/tests/sys/file/Makefile +++ b/tests/sys/file/Makefile @@ -4,6 +4,7 @@ TESTSDIR= ${TESTSBASE}/sys/file BINDIR= ${TESTSDIR} +ATF_TESTS_C+= path_test TAP_TESTS_C+= closefrom_test TAP_TESTS_C+= dup_test TAP_TESTS_C+= fcntlflags_test diff --git a/tests/sys/file/path_test.c b/tests/sys/file/path_test.c new file mode 100644 index 000000000000..a8354f88b091 --- /dev/null +++ b/tests/sys/file/path_test.c @@ -0,0 +1,778 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2021 The FreeBSD Foundation + * + * This software was developed by Mark Johnston 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. + */ + +/* + * Basic regression tests for handling of O_PATH descriptors. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#define FMT_ERR(s) s ": %s", strerror(errno) + +#define CHECKED_CLOSE(fd) \ + ATF_REQUIRE_MSG(close(fd) == 0, FMT_ERR("close")) + +/* Create a temporary regular file containing some data. */ +static void +mktfile(char path[PATH_MAX], const char *template) +{ + char buf[BUFSIZ]; + int fd; + + snprintf(path, PATH_MAX, "%s", template); + fd = mkstemp(path); + ATF_REQUIRE_MSG(fd >= 0, FMT_ERR("mkstemp")); + memset(buf, 0, sizeof(buf)); + ATF_REQUIRE_MSG(write(fd, buf, sizeof(buf)) == sizeof(buf), + FMT_ERR("write")); + CHECKED_CLOSE(fd); +} + +/* Make a temporary directory. */ +static void +mktdir(char path[PATH_MAX], const char *template) +{ + snprintf(path, PATH_MAX, "%s", template); + ATF_REQUIRE_MSG(mkdtemp(path) == path, FMT_ERR("mkdtemp")); +} + +/* Wait for a child process to exit with status 0. */ +static void +waitchild(pid_t child, int exstatus) +{ + int error, status; + + error = waitpid(child, &status, 0); + ATF_REQUIRE_MSG(error != -1, FMT_ERR("waitpid")); + ATF_REQUIRE_MSG(WIFEXITED(status), "child exited abnormally, status %d", + status); + ATF_REQUIRE_MSG(WEXITSTATUS(status) == exstatus, + "child exit status is %d, expected %d", + WEXITSTATUS(status), exstatus); +} + +ATF_TC_WITHOUT_HEAD(path_access); +ATF_TC_BODY(path_access, tc) +{ + char path[PATH_MAX]; + struct stat sb; + struct timespec ts[2]; + struct timeval tv[2]; + int pathfd; + + mktfile(path, "path_access.XXXXXX"); + + pathfd = open(path, O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + ATF_REQUIRE_ERRNO(EBADF, fchmod(pathfd, 0666) == -1); + ATF_REQUIRE_ERRNO(EBADF, fchown(pathfd, getuid(), getgid()) == -1); + ATF_REQUIRE_ERRNO(EBADF, fchflags(pathfd, UF_NODUMP) == -1); + memset(tv, 0, sizeof(tv)); + ATF_REQUIRE_ERRNO(EBADF, futimes(pathfd, tv) == -1); + memset(ts, 0, sizeof(ts)); + ATF_REQUIRE_ERRNO(EBADF, futimens(pathfd, ts) == -1); + + /* fpathconf(2) and fstat(2) are permitted. */ + ATF_REQUIRE_MSG(fstat(pathfd, &sb) == 0, FMT_ERR("fstat")); + ATF_REQUIRE_MSG(fpathconf(pathfd, _PC_LINK_MAX) != -1, + FMT_ERR("fpathconf")); + + CHECKED_CLOSE(pathfd); +} + +/* Basic tests to verify that AIO operations fail. */ +ATF_TC_WITHOUT_HEAD(path_aio); +ATF_TC_BODY(path_aio, tc) +{ + struct aiocb aio; + char buf[BUFSIZ], path[PATH_MAX]; + int pathfd; + + mktfile(path, "path_aio.XXXXXX"); + + pathfd = open(path, O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + memset(&aio, 0, sizeof(aio)); + aio.aio_buf = buf; + aio.aio_nbytes = sizeof(buf); + aio.aio_fildes = pathfd; + aio.aio_offset = 0; + + ATF_REQUIRE_ERRNO(EBADF, aio_read(&aio) == -1); + ATF_REQUIRE_ERRNO(EBADF, aio_write(&aio) == -1); + ATF_REQUIRE_ERRNO(EBADF, aio_fsync(O_SYNC, &aio) == -1); + ATF_REQUIRE_ERRNO(EBADF, aio_fsync(O_DSYNC, &aio) == -1); + + CHECKED_CLOSE(pathfd); +} + +/* Basic tests to verify that Capsicum restrictions apply to path fds. */ +ATF_TC_WITHOUT_HEAD(path_capsicum); +ATF_TC_BODY(path_capsicum, tc) +{ + char path[PATH_MAX]; + cap_rights_t rights; + int truefd; + pid_t child; + + mktfile(path, "path_capsicum.XXXXXX"); + + /* Make sure that filesystem namespace restrictions apply to O_PATH. */ + child = fork(); + ATF_REQUIRE_MSG(child != -1, FMT_ERR("fork")); + if (child == 0) { + if (cap_enter() != 0) + _exit(1); + if (open(path, O_PATH) >= 0) + _exit(2); + if (errno != ECAPMODE) + _exit(3); + if (open("/usr/bin/true", O_PATH | O_EXEC) >= 0) + _exit(4); + if (errno != ECAPMODE) + _exit(5); + _exit(0); + } + waitchild(child, 0); + + /* Make sure that CAP_FEXECVE is required. */ + child = fork(); + ATF_REQUIRE_MSG(child != -1, FMT_ERR("fork")); + if (child == 0) { + truefd = open("/usr/bin/true", O_PATH | O_EXEC); + if (truefd < 0) + _exit(1); + cap_rights_init(&rights); + if (cap_rights_limit(truefd, &rights) != 0) + _exit(2); + (void)fexecve(truefd, + (char * const[]){__DECONST(char *, "/usr/bin/true"), NULL}, + NULL); + if (errno != ENOTCAPABLE) + _exit(3); + _exit(4); + } + waitchild(child, 4); +} + +/* Verify operations on directory path descriptors. */ +ATF_TC_WITHOUT_HEAD(path_directory); +ATF_TC_BODY(path_directory, tc) +{ + struct dirent de; + struct stat sb; + char path[PATH_MAX]; + int fd, pathfd; + + mktdir(path, "path_directory.XXXXXX"); + + pathfd = open(path, O_PATH | O_DIRECTORY); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + /* Should not be possible to list directory entries. */ + ATF_REQUIRE_ERRNO(EBADF, + getdirentries(pathfd, (char *)&de, sizeof(de), NULL) == -1); + + /* It should be possible to create files under pathfd. */ + fd = openat(pathfd, "test", O_RDWR | O_CREAT, 0600); + ATF_REQUIRE_MSG(fd >= 0, FMT_ERR("open")); + ATF_REQUIRE_MSG(fstatat(pathfd, "test", &sb, 0) == 0, + FMT_ERR("fstatat")); + CHECKED_CLOSE(fd); + + /* ... but doing so requires write access. */ + if (geteuid() != 0) { + ATF_REQUIRE_ERRNO(EBADF, fchmod(pathfd, 0500) == -1); + ATF_REQUIRE_MSG(chmod(path, 0500) == 0, FMT_ERR("chmod")); + ATF_REQUIRE_ERRNO(EACCES, + openat(pathfd, "test2", O_RDWR | O_CREAT, 0600) < 0); + } + + /* fchdir(2) is permitted. */ + ATF_REQUIRE_MSG(fchdir(pathfd) == 0, FMT_ERR("fchdir")); + + CHECKED_CLOSE(pathfd); +} + +/* Verify access permission checking for a directory path fd. */ +ATF_TC_WITH_CLEANUP(path_directory_not_root); +ATF_TC_HEAD(path_directory_not_root, tc) +{ + atf_tc_set_md_var(tc, "require.user", "unprivileged"); +} +ATF_TC_BODY(path_directory_not_root, tc) +{ + char path[PATH_MAX]; + int pathfd; + + mktdir(path, "path_directory.XXXXXX"); + + pathfd = open(path, O_PATH | O_DIRECTORY); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + ATF_REQUIRE_ERRNO(EBADF, fchmod(pathfd, 0500) == -1); + ATF_REQUIRE_MSG(chmod(path, 0500) == 0, FMT_ERR("chmod")); + ATF_REQUIRE_ERRNO(EACCES, + openat(pathfd, "test2", O_RDWR | O_CREAT, 0600) < 0); + + CHECKED_CLOSE(pathfd); +} +ATF_TC_CLEANUP(path_directory_not_root, tc) +{ +} + +/* Validate system calls that handle AT_EMPTY_PATH. */ +ATF_TC_WITHOUT_HEAD(path_empty); +ATF_TC_BODY(path_empty, tc) +{ + char path[PATH_MAX]; + struct timespec ts[2]; + struct stat sb; + int pathfd; + + mktfile(path, "path_empty.XXXXXX"); + + pathfd = open(path, O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + /* Various *at operations should work on path fds. */ + ATF_REQUIRE_MSG(faccessat(pathfd, "", F_OK, AT_EMPTY_PATH) == 0, + FMT_ERR("faccessat")); + ATF_REQUIRE_MSG(chflagsat(pathfd, "", UF_NODUMP, AT_EMPTY_PATH) == 0, + FMT_ERR("chflagsat")); + ATF_REQUIRE_MSG(fchmodat(pathfd, "", 0600, AT_EMPTY_PATH) == 0, + FMT_ERR("fchmodat")); + ATF_REQUIRE_MSG(fchownat(pathfd, "", getuid(), getgid(), + AT_EMPTY_PATH) == 0, FMT_ERR("fchownat")); + ATF_REQUIRE_MSG(fstatat(pathfd, "", &sb, AT_EMPTY_PATH) == 0, + FMT_ERR("fstatat")); + ATF_REQUIRE_MSG(sb.st_size == BUFSIZ, + "unexpected size %ju", (uintmax_t)sb.st_size); + memset(ts, 0, sizeof(ts)); + ATF_REQUIRE_MSG(utimensat(pathfd, "", ts, AT_EMPTY_PATH) == 0, + FMT_ERR("utimensat")); + + CHECKED_CLOSE(pathfd); +} + +/* Verify that various operations on a path fd have access checks. */ +ATF_TC_WITH_CLEANUP(path_empty_not_root); +ATF_TC_HEAD(path_empty_not_root, tc) +{ + atf_tc_set_md_var(tc, "require.user", "unprivileged"); +} +ATF_TC_BODY(path_empty_not_root, tc) +{ + int pathfd; + + pathfd = open("/dev/null", O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + ATF_REQUIRE_ERRNO(EPERM, + chflagsat(pathfd, "", UF_NODUMP, AT_EMPTY_PATH) == -1); + ATF_REQUIRE_ERRNO(EPERM, + fchownat(pathfd, "", getuid(), getgid(), AT_EMPTY_PATH) == -1); + ATF_REQUIRE_ERRNO(EPERM, + fchmodat(pathfd, "", 0600, AT_EMPTY_PATH) == -1); + ATF_REQUIRE_ERRNO(EPERM, + linkat(pathfd, "", AT_FDCWD, "test", AT_EMPTY_PATH) == -1); + + CHECKED_CLOSE(pathfd); +} +ATF_TC_CLEANUP(path_empty_not_root, tc) +{ +} + +/* Test linkat(2) with AT_EMPTY_PATH, which requires privileges. */ +ATF_TC_WITH_CLEANUP(path_empty_root); +ATF_TC_HEAD(path_empty_root, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} +ATF_TC_BODY(path_empty_root, tc) +{ + char path[PATH_MAX]; + struct stat sb, sb2; + int pathfd; + + mktfile(path, "path_empty_root.XXXXXX"); + + pathfd = open(path, O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + ATF_REQUIRE_MSG(fstatat(pathfd, "", &sb, AT_EMPTY_PATH) == 0, + FMT_ERR("fstatat")); + + ATF_REQUIRE_MSG(linkat(pathfd, "", AT_FDCWD, "test", AT_EMPTY_PATH) == + 0, FMT_ERR("linkat")); + ATF_REQUIRE_MSG(fstatat(AT_FDCWD, "test", &sb2, 0) == 0, + FMT_ERR("fstatat")); + ATF_REQUIRE_MSG(sb.st_dev == sb2.st_dev, "st_dev mismatch"); + ATF_REQUIRE_MSG(sb.st_ino == sb2.st_ino, "st_ino mismatch"); + + CHECKED_CLOSE(pathfd); + +} +ATF_TC_CLEANUP(path_empty_root, tc) +{ +} + +/* poll(2) never returns an event for path fds, but kevent(2) does. */ +ATF_TC_WITHOUT_HEAD(path_event); +ATF_TC_BODY(path_event, tc) +{ + char buf[BUFSIZ], path[PATH_MAX]; + struct kevent ev; + struct pollfd pollfd; + int kq, pathfd; + + mktfile(path, "path_event.XXXXXX"); + + pathfd = open(path, O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + /* poll(2) should return POLLNVAL. */ + pollfd.fd = pathfd; + pollfd.events = POLLIN; + pollfd.revents = 0; + ATF_REQUIRE_MSG(poll(&pollfd, 1, 0) == 1, FMT_ERR("poll")); + ATF_REQUIRE_MSG(pollfd.revents == POLLNVAL, "unexpected revents %x", + pollfd.revents); + pollfd.events = POLLOUT; + pollfd.revents = 0; + ATF_REQUIRE_MSG(poll(&pollfd, 1, 0) == 1, FMT_ERR("poll")); + ATF_REQUIRE_MSG(pollfd.revents == POLLNVAL, "unexpected revents %x", + pollfd.revents); + + /* Try to get a EVFILT_READ event through a path fd. */ + kq = kqueue(); + ATF_REQUIRE_MSG(kq >= 0, FMT_ERR("kqueue")); + EV_SET(&ev, pathfd, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, 0); + ATF_REQUIRE_MSG(kevent(kq, &ev, 1, NULL, 0, NULL) == 0, + FMT_ERR("kevent")); + ATF_REQUIRE_MSG(kevent(kq, NULL, 0, &ev, 1, NULL) == 1, + FMT_ERR("kevent")); + ATF_REQUIRE_MSG((ev.flags & EV_ERROR) == 0, "EV_ERROR is set"); + ATF_REQUIRE_MSG(ev.data == sizeof(buf), + "data is %jd", (intmax_t)ev.data); + EV_SET(&ev, pathfd, EVFILT_READ, EV_DELETE, 0, 0, 0); + ATF_REQUIRE_MSG(kevent(kq, &ev, 1, NULL, 0, NULL) == 0, + FMT_ERR("kevent")); + + /* Try to get a EVFILT_VNODE/NOTE_LINK event through a path fd. */ + EV_SET(&ev, pathfd, EVFILT_VNODE, EV_ADD | EV_ENABLE, NOTE_LINK, 0, 0); + ATF_REQUIRE_MSG(kevent(kq, &ev, 1, NULL, 0, NULL) == 0, + FMT_ERR("kevent")); + ATF_REQUIRE_MSG(funlinkat(AT_FDCWD, path, pathfd, 0) == 0, + FMT_ERR("funlinkat")); + ATF_REQUIRE_MSG(kevent(kq, NULL, 0, &ev, 1, NULL) == 1, + FMT_ERR("kevent")); + EV_SET(&ev, pathfd, EVFILT_VNODE, EV_DELETE, 0, 0, 0); + ATF_REQUIRE_MSG(kevent(kq, &ev, 1, NULL, 0, NULL) == 0, + FMT_ERR("kevent")); + + CHECKED_CLOSE(kq); + CHECKED_CLOSE(pathfd); +} + +/* Check various fcntl(2) operations on a path desriptor. */ +ATF_TC_WITHOUT_HEAD(path_fcntl); +ATF_TC_BODY(path_fcntl, tc) +{ + char path[PATH_MAX]; + int flags, pathfd, pathfd2; + + mktfile(path, "path_fcntl.XXXXXX"); + + pathfd = open(path, O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + /* O_PATH should appear in the fd flags. */ + flags = fcntl(pathfd, F_GETFL); + ATF_REQUIRE_MSG(flags != -1, FMT_ERR("fcntl")); + ATF_REQUIRE_MSG((flags & O_PATH) != 0, "O_PATH not set"); + + ATF_REQUIRE_ERRNO(EBADF, + fcntl(pathfd, F_SETFL, flags & ~O_PATH)); + ATF_REQUIRE_ERRNO(EBADF, + fcntl(pathfd, F_SETFL, flags | O_APPEND)); + + /* A dup'ed O_PATH fd had better have O_PATH set too. */ + pathfd2 = fcntl(pathfd, F_DUPFD, 0); + ATF_REQUIRE_MSG(pathfd2 >= 0, FMT_ERR("fcntl")); + flags = fcntl(pathfd2, F_GETFL); + ATF_REQUIRE_MSG(flags != -1, FMT_ERR("fcntl")); + ATF_REQUIRE_MSG((flags & O_PATH) != 0, "O_PATH not set"); + CHECKED_CLOSE(pathfd2); + + /* Double check with dup(2). */ + pathfd2 = dup(pathfd); + ATF_REQUIRE_MSG(pathfd2 >= 0, FMT_ERR("dup")); + flags = fcntl(pathfd2, F_GETFL); + ATF_REQUIRE_MSG(flags != -1, FMT_ERR("fcntl")); + ATF_REQUIRE_MSG((flags & O_PATH) != 0, "O_PATH not set"); + CHECKED_CLOSE(pathfd2); + + /* It should be possible to set O_CLOEXEC. */ + ATF_REQUIRE_MSG(fcntl(pathfd, F_SETFD, FD_CLOEXEC) == 0, + FMT_ERR("fcntl")); + ATF_REQUIRE_MSG(fcntl(pathfd, F_GETFD) == FD_CLOEXEC, + FMT_ERR("fcntl")); + + CHECKED_CLOSE(pathfd); +} + +/* Verify that we can execute a file opened with O_PATH. */ +ATF_TC_WITHOUT_HEAD(path_fexecve); +ATF_TC_BODY(path_fexecve, tc) +{ + char path[PATH_MAX]; + pid_t child; + int fd, pathfd; + + child = fork(); + ATF_REQUIRE_MSG(child != -1, FMT_ERR("fork")); + if (child == 0) { + pathfd = open("/usr/bin/true", O_PATH | O_EXEC); + if (pathfd < 0) + _exit(1); + fexecve(pathfd, + (char * const[]){__DECONST(char *, "/usr/bin/true"), NULL}, + NULL); + _exit(2); + } + waitchild(child, 0); + + /* + * Also verify that access permissions are checked when opening with + * O_PATH. + */ + snprintf(path, sizeof(path), "path_fexecve.XXXXXX"); + ATF_REQUIRE_MSG(mktemp(path) == path, FMT_ERR("mktemp")); + + fd = open(path, O_CREAT | O_RDONLY, 0600); + ATF_REQUIRE_MSG(fd >= 0, FMT_ERR("open")); + + pathfd = open(path, O_PATH | O_EXEC); + ATF_REQUIRE_ERRNO(EACCES, pathfd < 0); +} + +/* Files may be unlinked using a path fd. */ +ATF_TC_WITHOUT_HEAD(path_funlinkat); +ATF_TC_BODY(path_funlinkat, tc) +{ + char path[PATH_MAX]; + struct stat sb; + int pathfd; + + mktfile(path, "path_rights.XXXXXX"); + + pathfd = open(path, O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + ATF_REQUIRE_MSG(funlinkat(AT_FDCWD, path, pathfd, 0) == 0, + FMT_ERR("funlinkat")); + ATF_REQUIRE_ERRNO(ENOENT, stat(path, &sb) == -1); + + CHECKED_CLOSE(pathfd); +} + +/* Verify that various I/O operations fail on an O_PATH descriptor. */ +ATF_TC_WITHOUT_HEAD(path_io); +ATF_TC_BODY(path_io, tc) +{ + char path[PATH_MAX], path2[PATH_MAX]; + char buf[BUFSIZ]; + struct iovec iov; + int error, fd, pathfd, sd[2]; + + /* It shouldn't be possible to create new files with O_PATH. */ + snprintf(path, sizeof(path), "path_io.XXXXXX"); + ATF_REQUIRE_MSG(mktemp(path) == path, FMT_ERR("mktemp")); + ATF_REQUIRE_ERRNO(ENOENT, open(path, O_PATH | O_CREAT, 0600) < 0); + + /* Create a non-empty file for use in the rest of the tests. */ + mktfile(path, "path_io.XXXXXX"); + + pathfd = open(path, O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + /* Make sure that basic I/O operations aren't possible. */ + iov.iov_base = path; + iov.iov_len = strlen(path); + ATF_REQUIRE_ERRNO(EBADF, + write(pathfd, iov.iov_base, iov.iov_len) == -1); + ATF_REQUIRE_ERRNO(EBADF, + pwrite(pathfd, iov.iov_base, iov.iov_len, 0) == -1); + ATF_REQUIRE_ERRNO(EBADF, + writev(pathfd, &iov, 1) == -1); + ATF_REQUIRE_ERRNO(EBADF, + pwritev(pathfd, &iov, 1, 0) == -1); + ATF_REQUIRE_ERRNO(EBADF, + read(pathfd, path, 1) == -1); + ATF_REQUIRE_ERRNO(EBADF, + pread(pathfd, path, 1, 0) == -1); + ATF_REQUIRE_ERRNO(EBADF, + readv(pathfd, &iov, 1) == -1); + ATF_REQUIRE_ERRNO(EBADF, + preadv(pathfd, &iov, 1, 0) == -1); + + /* copy_file_range() should not be permitted. */ + mktfile(path2, "path_io.XXXXXX"); + fd = open(path2, O_RDWR); + ATF_REQUIRE_ERRNO(EBADF, + copy_file_range(fd, NULL, pathfd, NULL, sizeof(buf), 0) == -1); + ATF_REQUIRE_ERRNO(EBADF, + copy_file_range(pathfd, NULL, fd, NULL, sizeof(buf), 0) == -1); + CHECKED_CLOSE(fd); + + /* sendfile() should not be permitted. */ + ATF_REQUIRE_MSG(socketpair(PF_LOCAL, SOCK_STREAM, 0, sd) == 0, + FMT_ERR("socketpair")); + ATF_REQUIRE_ERRNO(EBADF, + sendfile(pathfd, sd[0], 0, 0, NULL, NULL, 0)); + CHECKED_CLOSE(sd[0]); + CHECKED_CLOSE(sd[1]); + + /* No seeking. */ + ATF_REQUIRE_ERRNO(ESPIPE, + lseek(pathfd, 0, SEEK_SET) == -1); + + /* No operations on the file extent. */ + ATF_REQUIRE_ERRNO(EINVAL, + ftruncate(pathfd, 0) == -1); + error = posix_fallocate(pathfd, 0, sizeof(buf) * 2); + ATF_REQUIRE_MSG(error == ESPIPE, "posix_fallocate() returned %d", error); + error = posix_fadvise(pathfd, 0, sizeof(buf), POSIX_FADV_NORMAL); + ATF_REQUIRE_MSG(error == ESPIPE, "posix_fadvise() returned %d", error); + + /* mmap() is not allowed. */ + ATF_REQUIRE_ERRNO(ENODEV, + mmap(NULL, PAGE_SIZE, PROT_READ, MAP_SHARED, pathfd, 0) == + MAP_FAILED); + ATF_REQUIRE_ERRNO(ENODEV, + mmap(NULL, PAGE_SIZE, PROT_NONE, MAP_SHARED, pathfd, 0) == + MAP_FAILED); + ATF_REQUIRE_ERRNO(ENODEV, + mmap(NULL, PAGE_SIZE, PROT_READ, MAP_PRIVATE, pathfd, 0) == + MAP_FAILED); + + /* No fsync() or fdatasync(). */ + ATF_REQUIRE_ERRNO(EBADF, fsync(pathfd) == -1); + ATF_REQUIRE_ERRNO(EBADF, fdatasync(pathfd) == -1); + + CHECKED_CLOSE(pathfd); +} + +/* ioctl(2) is not permitted on path fds. */ +ATF_TC_WITHOUT_HEAD(path_ioctl); +ATF_TC_BODY(path_ioctl, tc) +{ + char path[PATH_MAX]; + struct mem_extract me; + int pathfd, val; + + mktfile(path, "path_ioctl.XXXXXX"); + + /* Standard file descriptor ioctls should fail. */ + pathfd = open(path, O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + val = 0; + ATF_REQUIRE_ERRNO(EBADF, ioctl(pathfd, FIONBIO, &val) == -1); + ATF_REQUIRE_ERRNO(EBADF, ioctl(pathfd, FIONREAD, &val) == -1); + ATF_REQUIRE_ERRNO(EBADF, ioctl(pathfd, FIONWRITE, &val) == -1); + ATF_REQUIRE_ERRNO(EBADF, ioctl(pathfd, FIONSPACE, &val) == -1); + + CHECKED_CLOSE(pathfd); + + /* Device ioctls should fail. */ + pathfd = open("/dev/mem", O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + me.me_vaddr = (uintptr_t)&me; + ATF_REQUIRE_ERRNO(EBADF, ioctl(pathfd, MEM_EXTRACT_PADDR, &me) == -1); + + CHECKED_CLOSE(pathfd); +} + +ATF_TC_WITHOUT_HEAD(path_lock); +ATF_TC_BODY(path_lock, tc) +{ + char buf[BUFSIZ], path[PATH_MAX]; + struct flock flk; + int fd, pathfd; + + snprintf(path, sizeof(path), "path_rights.XXXXXX"); + fd = mkostemp(path, O_SHLOCK); + ATF_REQUIRE_MSG(fd >= 0, FMT_ERR("mkostemp")); + memset(buf, 0, sizeof(buf)); + ATF_REQUIRE_MSG(write(fd, buf, sizeof(buf)) == sizeof(buf), + FMT_ERR("write()")); + + /* Verify that O_EXLOCK is ignored when combined with O_PATH. */ + pathfd = open(path, O_PATH | O_EXLOCK); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + CHECKED_CLOSE(fd); + + /* flock(2) is prohibited. */ + ATF_REQUIRE_ERRNO(EOPNOTSUPP, flock(pathfd, LOCK_SH) == -1); + ATF_REQUIRE_ERRNO(EOPNOTSUPP, flock(pathfd, LOCK_EX) == -1); + ATF_REQUIRE_ERRNO(EOPNOTSUPP, flock(pathfd, LOCK_SH | LOCK_NB) == -1); + ATF_REQUIRE_ERRNO(EOPNOTSUPP, flock(pathfd, LOCK_EX | LOCK_NB) == -1); + ATF_REQUIRE_ERRNO(EOPNOTSUPP, flock(pathfd, LOCK_UN) == -1); + + /* fcntl(2) file locks are prohibited. */ + memset(&flk, 0, sizeof(flk)); + flk.l_whence = SEEK_CUR; + ATF_REQUIRE_ERRNO(EBADF, fcntl(pathfd, F_GETLK, &flk) == -1); + flk.l_type = F_RDLCK; + ATF_REQUIRE_ERRNO(EBADF, fcntl(pathfd, F_SETLK, &flk) == -1); + ATF_REQUIRE_ERRNO(EBADF, fcntl(pathfd, F_SETLKW, &flk) == -1); + flk.l_type = F_WRLCK; + ATF_REQUIRE_ERRNO(EBADF, fcntl(pathfd, F_SETLK, &flk) == -1); + ATF_REQUIRE_ERRNO(EBADF, fcntl(pathfd, F_SETLKW, &flk) == -1); + + CHECKED_CLOSE(pathfd); +} + +/* Verify that we can send an O_PATH descriptor over a unix socket. */ +ATF_TC_WITHOUT_HEAD(path_rights); +ATF_TC_BODY(path_rights, tc) +{ + char path[PATH_MAX]; + struct cmsghdr *cmsg; + struct msghdr msg; + struct iovec iov; + int flags, pathfd, pathfd_copy, sd[2]; + char c; + + ATF_REQUIRE_MSG(socketpair(PF_LOCAL, SOCK_STREAM, 0, sd) == 0, + FMT_ERR("socketpair")); + + mktfile(path, "path_rights.XXXXXX"); + + pathfd = open(path, O_PATH); + ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open")); + + /* Package up the O_PATH and send it over the socket pair. */ + cmsg = malloc(CMSG_SPACE(sizeof(pathfd))); + ATF_REQUIRE_MSG(cmsg != NULL, FMT_ERR("malloc")); + + cmsg->cmsg_len = CMSG_LEN(sizeof(pathfd)); + cmsg->cmsg_level = SOL_SOCKET; + cmsg->cmsg_type = SCM_RIGHTS; + *(int *)(void *)CMSG_DATA(cmsg) = pathfd; + + c = 0; + iov.iov_base = &c; + iov.iov_len = 1; + + memset(&msg, 0, sizeof(msg)); + msg.msg_iov = &iov; + msg.msg_iovlen = 1; + msg.msg_control = cmsg; + msg.msg_controllen = CMSG_SPACE(sizeof(pathfd)); + + ATF_REQUIRE_MSG(sendmsg(sd[0], &msg, 0) == sizeof(c), + FMT_ERR("sendmsg")); + + /* Grab the pathfd copy from the other end of the pair. */ + memset(&msg, 0, sizeof(msg)); + msg.msg_iov = &iov; + msg.msg_iovlen = 1; + msg.msg_control = cmsg; + msg.msg_controllen = CMSG_SPACE(sizeof(pathfd)); + + ATF_REQUIRE_MSG(recvmsg(sd[1], &msg, 0) == 1, + FMT_ERR("recvmsg")); + pathfd_copy = *(int *)(void *)CMSG_DATA(cmsg); + ATF_REQUIRE_MSG(pathfd_copy != pathfd, + "pathfd and pathfd_copy are equal"); + + /* Verify that the copy has O_PATH properties. */ + flags = fcntl(pathfd_copy, F_GETFL); + ATF_REQUIRE_MSG(flags != -1, FMT_ERR("fcntl")); + ATF_REQUIRE_MSG((flags & O_PATH) != 0, "O_PATH is not set"); + ATF_REQUIRE_ERRNO(EBADF, + read(pathfd_copy, &c, 1) == -1); + ATF_REQUIRE_ERRNO(EBADF, + write(pathfd_copy, &c, 1) == -1); + + CHECKED_CLOSE(pathfd); + CHECKED_CLOSE(pathfd_copy); + CHECKED_CLOSE(sd[0]); + CHECKED_CLOSE(sd[1]); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, path_access); + ATF_TP_ADD_TC(tp, path_aio); + ATF_TP_ADD_TC(tp, path_capsicum); + ATF_TP_ADD_TC(tp, path_directory); + ATF_TP_ADD_TC(tp, path_directory_not_root); + ATF_TP_ADD_TC(tp, path_empty); + ATF_TP_ADD_TC(tp, path_empty_not_root); + ATF_TP_ADD_TC(tp, path_empty_root); + ATF_TP_ADD_TC(tp, path_event); + ATF_TP_ADD_TC(tp, path_fcntl); + ATF_TP_ADD_TC(tp, path_fexecve); + ATF_TP_ADD_TC(tp, path_funlinkat); + ATF_TP_ADD_TC(tp, path_io); + ATF_TP_ADD_TC(tp, path_ioctl); + ATF_TP_ADD_TC(tp, path_lock); + ATF_TP_ADD_TC(tp, path_rights); + + return (atf_no_error()); +} From owner-dev-commits-src-main@freebsd.org Thu Apr 15 14:04:53 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D14FE5F1A11; Thu, 15 Apr 2021 14:04:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLh1K5cDMz4Qph; Thu, 15 Apr 2021 14:04:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B34AA12D01; Thu, 15 Apr 2021 14:04:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FE4roh016378; Thu, 15 Apr 2021 14:04:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FE4rUX016377; Thu, 15 Apr 2021 14:04:53 GMT (envelope-from git) Date: Thu, 15 Apr 2021 14:04:53 GMT Message-Id: <202104151404.13FE4rUX016377@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Edward Tomasz Napierala Subject: git: 1b11173c00d8 - main - linux: extend the LINUX_O_ constants to make room for O_PATH MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: trasz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1b11173c00d84d4a25cc8aa3c6c69cc15696b0ec Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 14:04:53 -0000 The branch main has been updated by trasz: URL: https://cgit.FreeBSD.org/src/commit/?id=1b11173c00d84d4a25cc8aa3c6c69cc15696b0ec commit 1b11173c00d84d4a25cc8aa3c6c69cc15696b0ec Author: Edward Tomasz Napierala AuthorDate: 2021-04-15 13:38:58 +0000 Commit: Edward Tomasz Napierala CommitDate: 2021-04-15 14:04:44 +0000 linux: extend the LINUX_O_ constants to make room for O_PATH No functional changes. Sponsored By: EPSRC --- sys/compat/linux/linux_file.h | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/sys/compat/linux/linux_file.h b/sys/compat/linux/linux_file.h index 5a11e999ed59..03450b95f25c 100644 --- a/sys/compat/linux/linux_file.h +++ b/sys/compat/linux/linux_file.h @@ -65,25 +65,25 @@ /* * common open/fcntl flags */ -#define LINUX_O_RDONLY 00000000 -#define LINUX_O_WRONLY 00000001 -#define LINUX_O_RDWR 00000002 -#define LINUX_O_ACCMODE 00000003 -#define LINUX_O_CREAT 00000100 -#define LINUX_O_EXCL 00000200 -#define LINUX_O_NOCTTY 00000400 -#define LINUX_O_TRUNC 00001000 -#define LINUX_O_APPEND 00002000 -#define LINUX_O_NONBLOCK 00004000 +#define LINUX_O_RDONLY 000000000 +#define LINUX_O_WRONLY 000000001 +#define LINUX_O_RDWR 000000002 +#define LINUX_O_ACCMODE 000000003 +#define LINUX_O_CREAT 000000100 +#define LINUX_O_EXCL 000000200 +#define LINUX_O_NOCTTY 000000400 +#define LINUX_O_TRUNC 000001000 +#define LINUX_O_APPEND 000002000 +#define LINUX_O_NONBLOCK 000004000 #define LINUX_O_NDELAY LINUX_O_NONBLOCK -#define LINUX_O_SYNC 00010000 -#define LINUX_O_ASYNC 00020000 -#define LINUX_O_DIRECT 00040000 /* Direct disk access hint */ -#define LINUX_O_LARGEFILE 00100000 -#define LINUX_O_DIRECTORY 00200000 /* Must be a directory */ -#define LINUX_O_NOFOLLOW 00400000 /* Do not follow links */ -#define LINUX_O_NOATIME 01000000 -#define LINUX_O_CLOEXEC 02000000 +#define LINUX_O_SYNC 000010000 +#define LINUX_O_ASYNC 000020000 +#define LINUX_O_DIRECT 000040000 /* Direct disk access hint */ +#define LINUX_O_LARGEFILE 000100000 +#define LINUX_O_DIRECTORY 000200000 /* Must be a directory */ +#define LINUX_O_NOFOLLOW 000400000 /* Do not follow links */ +#define LINUX_O_NOATIME 001000000 +#define LINUX_O_CLOEXEC 002000000 #define LINUX_F_DUPFD 0 #define LINUX_F_GETFD 1 From owner-dev-commits-src-main@freebsd.org Thu Apr 15 14:29:30 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7C36A5F253E; Thu, 15 Apr 2021 14:29:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLhYk35C4z4Rty; Thu, 15 Apr 2021 14:29:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5CDE413093; Thu, 15 Apr 2021 14:29:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FETU3H044376; Thu, 15 Apr 2021 14:29:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FETUTV044375; Thu, 15 Apr 2021 14:29:30 GMT (envelope-from git) Date: Thu, 15 Apr 2021 14:29:30 GMT Message-Id: <202104151429.13FETUTV044375@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Vladimir Kondratyev Subject: git: 52489f2a55e6 - main - ng_ubt: Do not clear stall before receiving of HCI command response. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 52489f2a55e625ea35bccc3749ca3adad6ce0c54 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 14:29:30 -0000 The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=52489f2a55e625ea35bccc3749ca3adad6ce0c54 commit 52489f2a55e625ea35bccc3749ca3adad6ce0c54 Author: Vladimir Kondratyev AuthorDate: 2021-04-15 14:25:00 +0000 Commit: Vladimir Kondratyev CommitDate: 2021-04-15 14:25:00 +0000 ng_ubt: Do not clear stall before receiving of HCI command response. Unconditional execution of "clear feature" request at SETUP stage was workaround for probe failures on ng_ubt.ko re-kldloading which is unnecessary now. Reviewed by: hselasky MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D29775 --- sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c index 30a012702c8f..8b93687c6688 100644 --- a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c +++ b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c @@ -825,8 +825,6 @@ ubt_probe_intr_callback(struct usb_xfer *xfer, usb_error_t error) case USB_ST_SETUP: submit_next: - /* Try clear stall first */ - usbd_xfer_set_stall(xfer); usbd_xfer_set_frame_len(xfer, 0, usbd_xfer_max_len(xfer)); usbd_transfer_submit(xfer); break; @@ -835,6 +833,8 @@ submit_next: if (error != USB_ERR_CANCELLED) { printf("ng_ubt: interrupt transfer failed: %s\n", usbd_errstr(error)); + /* Try clear stall first */ + usbd_xfer_set_stall(xfer); goto submit_next; } break; From owner-dev-commits-src-main@freebsd.org Thu Apr 15 14:29:31 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 954795F25D2; Thu, 15 Apr 2021 14:29:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLhYl3WxFz4S0m; Thu, 15 Apr 2021 14:29:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 68C4113114; Thu, 15 Apr 2021 14:29:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FETVI1044402; Thu, 15 Apr 2021 14:29:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FETVMA044401; Thu, 15 Apr 2021 14:29:31 GMT (envelope-from git) Date: Thu, 15 Apr 2021 14:29:31 GMT Message-Id: <202104151429.13FETVMA044401@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Vladimir Kondratyev Subject: git: d605d7294843 - main - ng_ubt: Use DEFINE_CLASS_1 macro for kobj inheritance. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d605d72948431d352455fc22b79a32a56ce00aaf Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 14:29:31 -0000 The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=d605d72948431d352455fc22b79a32a56ce00aaf commit d605d72948431d352455fc22b79a32a56ce00aaf Author: Vladimir Kondratyev AuthorDate: 2021-04-15 14:25:50 +0000 Commit: Vladimir Kondratyev CommitDate: 2021-04-15 14:25:50 +0000 ng_ubt: Use DEFINE_CLASS_1 macro for kobj inheritance. MFC after: 2 weeks --- sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c index c56d2288e77b..377543b73387 100644 --- a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c +++ b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c @@ -145,15 +145,8 @@ static device_method_t ubt_intel_methods[] = DEVMETHOD_END }; -static kobj_class_t ubt_baseclasses[] = { &ubt_driver, NULL }; -static driver_t ubt_intel_driver = -{ - .name = "ubt", - .methods = ubt_intel_methods, - .size = sizeof(struct ubt_softc), - .baseclasses = ubt_baseclasses, -}; - +DEFINE_CLASS_1(ubt, ubt_intel_driver, ubt_intel_methods, + sizeof(struct ubt_softc), ubt_driver); DRIVER_MODULE(ng_ubt_intel, uhub, ubt_intel_driver, ubt_devclass, 0, 0); MODULE_VERSION(ng_ubt_intel, NG_BLUETOOTH_VERSION); MODULE_DEPEND(ng_ubt_intel, netgraph, NG_ABI_VERSION, NG_ABI_VERSION, NG_ABI_VERSION); From owner-dev-commits-src-main@freebsd.org Thu Apr 15 14:29:32 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D98D75F24D5; Thu, 15 Apr 2021 14:29:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLhYm4pBkz4RxD; Thu, 15 Apr 2021 14:29:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8F96412FF0; Thu, 15 Apr 2021 14:29:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FETWu4044423; Thu, 15 Apr 2021 14:29:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FETWWW044422; Thu, 15 Apr 2021 14:29:32 GMT (envelope-from git) Date: Thu, 15 Apr 2021 14:29:32 GMT Message-Id: <202104151429.13FETWWW044422@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Vladimir Kondratyev Subject: git: 788a171c7776 - main - ng_ubt: Block attachment of uninitialized Intel Wireless 7265 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 788a171c77760c2847b6433c5a914a304d0aa184 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 14:29:33 -0000 The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=788a171c77760c2847b6433c5a914a304d0aa184 commit 788a171c77760c2847b6433c5a914a304d0aa184 Author: Vladimir Kondratyev AuthorDate: 2021-04-15 14:26:32 +0000 Commit: Vladimir Kondratyev CommitDate: 2021-04-15 14:26:32 +0000 ng_ubt: Block attachment of uninitialized Intel Wireless 7265 As this controller requires firmware patch downloading to operate. "Intel Wireless 7265" support in iwmbtfw(8) is yet to be done. Tested by: arrowd et al PR: 228787 MFC after: 2 weeks --- sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c | 5 +- sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c | 122 +++++++++++++++++----- sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h | 4 + 3 files changed, 103 insertions(+), 28 deletions(-) diff --git a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c index 8b93687c6688..3e4dc0e80dec 100644 --- a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c +++ b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c @@ -423,7 +423,10 @@ static const STRUCT_USB_HOST_ID ubt_ignore_devs[] = { USB_VPI(0x0489, 0xe03c, 0), USB_DEV_BCD_LTEQ(1) }, { USB_VPI(0x0489, 0xe036, 0), USB_DEV_BCD_LTEQ(1) }, - /* Intel Wireless 8260 and successors are handled in ng_ubt_intel.c */ + /* Intel Wireless controllers are handled in ng_ubt_intel.c */ + { USB_VPI(USB_VENDOR_INTEL2, 0x07dc, 0) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0a2a, 0) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0aa7, 0) }, { USB_VPI(USB_VENDOR_INTEL2, 0x0a2b, 0) }, { USB_VPI(USB_VENDOR_INTEL2, 0x0aaa, 0) }, { USB_VPI(USB_VENDOR_INTEL2, 0x0025, 0) }, diff --git a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c index 377543b73387..978aeb924db6 100644 --- a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c +++ b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c @@ -5,7 +5,7 @@ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2019 Vladimir Kondratyev + * Copyright (c) 2019, 2021 Vladimir Kondratyev * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -58,6 +58,24 @@ #include #include +enum { + UBT_INTEL_DEVICE_7260, + UBT_INTEL_DEVICE_8260, +}; + +struct ubt_intel_version_rp { + uint8_t status; + uint8_t hw_platform; + uint8_t hw_variant; + uint8_t hw_revision; + uint8_t fw_variant; + uint8_t fw_revision; + uint8_t fw_build_num; + uint8_t fw_build_ww; + uint8_t fw_build_yy; + uint8_t fw_patch_num; +} __attribute__ ((packed)); + static device_probe_t ubt_intel_probe; /* @@ -67,44 +85,49 @@ static device_probe_t ubt_intel_probe; static const STRUCT_USB_HOST_ID ubt_intel_devs[] = { + /* Intel Wireless 7260/7265 and successors */ + { USB_VPI(USB_VENDOR_INTEL2, 0x07dc, UBT_INTEL_DEVICE_7260) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0a2a, UBT_INTEL_DEVICE_7260) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0aa7, UBT_INTEL_DEVICE_7260) }, /* Intel Wireless 8260/8265 and successors */ - { USB_VPI(USB_VENDOR_INTEL2, 0x0a2b, 0) }, - { USB_VPI(USB_VENDOR_INTEL2, 0x0aaa, 0) }, - { USB_VPI(USB_VENDOR_INTEL2, 0x0025, 0) }, - { USB_VPI(USB_VENDOR_INTEL2, 0x0026, 0) }, - { USB_VPI(USB_VENDOR_INTEL2, 0x0029, 0) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0a2b, UBT_INTEL_DEVICE_8260) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0aaa, UBT_INTEL_DEVICE_8260) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0025, UBT_INTEL_DEVICE_8260) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0026, UBT_INTEL_DEVICE_8260) }, + { USB_VPI(USB_VENDOR_INTEL2, 0x0029, UBT_INTEL_DEVICE_8260) }, }; /* - * Find if the Intel Wireless 8260/8265 device is in bootloader mode or is - * running operational firmware with checking of 4-th byte "Intel version" - * HCI command response. The value 0x23 identifies the operational firmware. + * Execute generic HCI command and return response in provided buffer. */ -static bool -ubt_intel_check_firmware_state(struct usb_device *udev) +static usb_error_t +ubt_intel_do_hci_request(struct usb_device *udev, uint16_t opcode, + void *resp, uint8_t resp_len) { -#define UBT_INTEL_VER_LEN 13 #define UBT_INTEL_HCICMD_TIMEOUT 2000 /* ms */ struct ubt_hci_event_command_compl *evt; - uint8_t buf[offsetof(struct ubt_hci_event, data) + UBT_INTEL_VER_LEN]; - static struct ubt_hci_cmd cmd = { - .opcode = htole16(NG_HCI_OPCODE(NG_HCI_OGF_VENDOR, 0x05)), - .length = 0, - }; + struct ubt_hci_cmd cmd; usb_error_t error; - bzero(buf, sizeof(buf)); - evt = (struct ubt_hci_event_command_compl *)buf; - evt->header.length = UBT_INTEL_VER_LEN; + memset(&cmd, 0, sizeof(cmd)); + cmd.opcode = htole16(opcode); + evt = malloc(offsetof(struct ubt_hci_event_command_compl, data) + + resp_len, M_TEMP, M_ZERO | M_WAITOK); + evt->header.length = resp_len + UBT_HCI_EVENT_COMPL_HEAD_SIZE; error = ubt_do_hci_request(udev, &cmd, evt, UBT_INTEL_HCICMD_TIMEOUT); if (error != USB_ERR_NORMAL_COMPLETION) - return false; - - return (evt->header.event == NG_HCI_EVENT_COMMAND_COMPL && - evt->header.length == UBT_INTEL_VER_LEN && - evt->data[4] == 0x23); + goto exit; + + if (evt->header.event == NG_HCI_EVENT_COMMAND_COMPL && + evt->header.length == resp_len + UBT_HCI_EVENT_COMPL_HEAD_SIZE) + memcpy(resp, evt->data, resp_len); + else + error = USB_ERR_INVAL; +exit: + free(evt, M_TEMP); + return (error); } /* @@ -115,6 +138,8 @@ static int ubt_intel_probe(device_t dev) { struct usb_attach_arg *uaa = device_get_ivars(dev); + struct ubt_intel_version_rp version; + ng_hci_reset_rp reset; int error; if (uaa->usb_mode != USB_MODE_HOST) @@ -128,8 +153,51 @@ ubt_intel_probe(device_t dev) if (error != 0) return (error); - if (!ubt_intel_check_firmware_state(uaa->device)) - return (ENXIO); + switch (USB_GET_DRIVER_INFO(uaa)) { + case UBT_INTEL_DEVICE_7260: + /* + * Send HCI Reset command to workaround controller bug with the + * first HCI command sent to it returning number of completed + * commands as zero. This will reset the number of completed + * commands and allow further normal command processing. + */ + if (ubt_intel_do_hci_request(uaa->device, + NG_HCI_OPCODE(NG_HCI_OGF_HC_BASEBAND, NG_HCI_OCF_RESET), + &reset, sizeof(reset)) != USB_ERR_NORMAL_COMPLETION) + return (ENXIO); + if (reset.status != 0) + return (ENXIO); + /* + * fw_patch_num indicates the version of patch the device + * currently have. If there is no patch data in the device, + * it is always 0x00 and we need to patch the device again. + */ + if (ubt_intel_do_hci_request(uaa->device, + NG_HCI_OPCODE(NG_HCI_OGF_VENDOR, 0x05), + &version, sizeof(version)) != USB_ERR_NORMAL_COMPLETION) + return (ENXIO); + if (version.fw_patch_num == 0) + return (ENXIO); + break; + + case UBT_INTEL_DEVICE_8260: + /* + * Find if the Intel Wireless 8260/8265 device is in bootloader + * mode or is running operational firmware with checking of + * variant byte of "Intel version" HCI command response. + * The value 0x23 identifies the operational firmware. + */ + if (ubt_intel_do_hci_request(uaa->device, + NG_HCI_OPCODE(NG_HCI_OGF_VENDOR, 0x05), + &version, sizeof(version)) != USB_ERR_NORMAL_COMPLETION) + return (ENXIO); + if (version.fw_variant != 0x23) + return (ENXIO); + break; + + default: + KASSERT(0 == 1, ("Unknown DRIVER_INFO")); + } return (BUS_PROBE_DEFAULT); } diff --git a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h index e93c85569f10..c2bd75c7faf0 100644 --- a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h +++ b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h @@ -102,6 +102,10 @@ struct ubt_hci_event_command_compl { } __attribute__ ((packed)); #define UBT_HCI_EVENT_SIZE(evt) \ ((evt)->header.length + offsetof(struct ubt_hci_event, data)) +#define UBT_HCI_EVENT_COMPL_HEAD_SIZE \ + (offsetof(struct ubt_hci_event_command_compl, data) - \ + offsetof(struct ubt_hci_event_command_compl, numpkt)) + /* USB device softc structure */ struct ubt_softc { From owner-dev-commits-src-main@freebsd.org Thu Apr 15 14:31:09 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C8FB25F2A92; Thu, 15 Apr 2021 14:31:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLhbd56ZNz4SC1; Thu, 15 Apr 2021 14:31:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A266512FFD; Thu, 15 Apr 2021 14:31:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FEV9xr053335; Thu, 15 Apr 2021 14:31:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FEV9Ys053334; Thu, 15 Apr 2021 14:31:09 GMT (envelope-from git) Date: Thu, 15 Apr 2021 14:31:09 GMT Message-Id: <202104151431.13FEV9Ys053334@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Edward Tomasz Napierala Subject: git: 1663120ae452 - main - linux: implement O_PATH MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: trasz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1663120ae452fe3783c74ce40522caf0e2327608 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 14:31:09 -0000 The branch main has been updated by trasz: URL: https://cgit.FreeBSD.org/src/commit/?id=1663120ae452fe3783c74ce40522caf0e2327608 commit 1663120ae452fe3783c74ce40522caf0e2327608 Author: Edward Tomasz Napierala AuthorDate: 2021-04-15 14:24:51 +0000 Commit: Edward Tomasz Napierala CommitDate: 2021-04-15 14:30:59 +0000 linux: implement O_PATH Reviewed By: kib Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D29773 --- sys/compat/linux/linux_file.c | 2 ++ sys/compat/linux/linux_file.h | 1 + 2 files changed, 3 insertions(+) diff --git a/sys/compat/linux/linux_file.c b/sys/compat/linux/linux_file.c index 0c40a14d58f7..438b100d4e21 100644 --- a/sys/compat/linux/linux_file.c +++ b/sys/compat/linux/linux_file.c @@ -162,6 +162,8 @@ linux_common_openflags(int l_flags) bsd_flags |= O_NOFOLLOW; if (l_flags & LINUX_O_DIRECTORY) bsd_flags |= O_DIRECTORY; + if (l_flags & LINUX_O_PATH) + bsd_flags |= O_PATH; /* XXX LINUX_O_NOATIME: unable to be easily implemented. */ return (bsd_flags); } diff --git a/sys/compat/linux/linux_file.h b/sys/compat/linux/linux_file.h index 03450b95f25c..ab137ba6b9c3 100644 --- a/sys/compat/linux/linux_file.h +++ b/sys/compat/linux/linux_file.h @@ -84,6 +84,7 @@ #define LINUX_O_NOFOLLOW 000400000 /* Do not follow links */ #define LINUX_O_NOATIME 001000000 #define LINUX_O_CLOEXEC 002000000 +#define LINUX_O_PATH 010000000 #define LINUX_F_DUPFD 0 #define LINUX_F_GETFD 1 From owner-dev-commits-src-main@freebsd.org Thu Apr 15 15:28:21 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 879D25F3EC3; Thu, 15 Apr 2021 15:28:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLjsd3Rfzz4Vp0; Thu, 15 Apr 2021 15:28:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6914A139E3; Thu, 15 Apr 2021 15:28:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FFSLGC024385; Thu, 15 Apr 2021 15:28:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FFSLxp024384; Thu, 15 Apr 2021 15:28:21 GMT (envelope-from git) Date: Thu, 15 Apr 2021 15:28:21 GMT Message-Id: <202104151528.13FFSLxp024384@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alex Richardson Subject: git: 168234fa67c3 - main - lib/msun: Exclude ignored-pragmas from -Werror MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: arichardson X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 168234fa67c38f898b784b3265dd77ace0b0a2f9 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 15:28:21 -0000 The branch main has been updated by arichardson: URL: https://cgit.FreeBSD.org/src/commit/?id=168234fa67c38f898b784b3265dd77ace0b0a2f9 commit 168234fa67c38f898b784b3265dd77ace0b0a2f9 Author: Alex Richardson AuthorDate: 2021-04-15 15:27:52 +0000 Commit: Alex Richardson CommitDate: 2021-04-15 15:27:52 +0000 lib/msun: Exclude ignored-pragmas from -Werror This avoids build failures due to the clang 12 warning: '#pragma FENV_ACCESS' is not supported on this target - ignored Clang 12 currently emits this warning for all non-x86 architectures. While this can result in incorrect code generation (e.g. on AArch64 some exceptions are not raised as expected), this is a pre-existing issue and we should not fail the build due to this warning. Reviewed By: dim, emaste MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29743 --- lib/msun/Makefile | 6 ++++++ lib/msun/tests/Makefile | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/lib/msun/Makefile b/lib/msun/Makefile index 0a486bb5a086..7107aad56aa7 100644 --- a/lib/msun/Makefile +++ b/lib/msun/Makefile @@ -255,4 +255,10 @@ MLINKS+=trunc.3 truncf.3 trunc.3 truncl.3 HAS_TESTS= SUBDIR.${MK_TESTS}+= tests +.include +.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 120000 +# Silence '#pragma FENV_ACCESS' is not supported on this target - ignored +CWARNFLAGS+= -Wno-error=ignored-pragmas +.endif + .include diff --git a/lib/msun/tests/Makefile b/lib/msun/tests/Makefile index 70f7d2fe5135..d33a1b04888d 100644 --- a/lib/msun/tests/Makefile +++ b/lib/msun/tests/Makefile @@ -100,6 +100,12 @@ CFLAGS+= -DLDBL_PREC=${LDBL_PREC} CFLAGS.fe_round_test+= -D__HAVE_FENV +.include +.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 120000 +# Silence '#pragma FENV_ACCESS' is not supported on this target - ignored +CWARNFLAGS+= -Wno-error=ignored-pragmas +.endif + .include .include From owner-dev-commits-src-main@freebsd.org Thu Apr 15 15:28:22 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D4A865F3C46; Thu, 15 Apr 2021 15:28:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLjsf57Brz4Vcq; Thu, 15 Apr 2021 15:28:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 91AD01385C; Thu, 15 Apr 2021 15:28:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FFSMFS024406; Thu, 15 Apr 2021 15:28:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FFSMEM024405; Thu, 15 Apr 2021 15:28:22 GMT (envelope-from git) Date: Thu, 15 Apr 2021 15:28:22 GMT Message-Id: <202104151528.13FFSMEM024405@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alex Richardson Subject: git: 3f01d8c2fe5d - main - Remove amd64 XFAIL from tests/lib/msun/fma_test:infinities MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: arichardson X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3f01d8c2fe5d31866258c9872f35030d98828e48 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 15:28:23 -0000 The branch main has been updated by arichardson: URL: https://cgit.FreeBSD.org/src/commit/?id=3f01d8c2fe5d31866258c9872f35030d98828e48 commit 3f01d8c2fe5d31866258c9872f35030d98828e48 Author: Alex Richardson AuthorDate: 2021-04-15 15:04:19 +0000 Commit: Alex Richardson CommitDate: 2021-04-15 15:28:08 +0000 Remove amd64 XFAIL from tests/lib/msun/fma_test:infinities This test no longer fails after 3b00222f156dca5700c839d73e36daf479fa640c. PR: 205448 MFC after: 1 week --- lib/msun/tests/fma_test.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/msun/tests/fma_test.c b/lib/msun/tests/fma_test.c index 4e3df40be9c9..2855877c68d0 100644 --- a/lib/msun/tests/fma_test.c +++ b/lib/msun/tests/fma_test.c @@ -484,10 +484,6 @@ ATF_TC_BODY(zeroes, tc) ATF_TC_WITHOUT_HEAD(infinities); ATF_TC_BODY(infinities, tc) { -#if defined(__amd64__) - if (atf_tc_get_config_var_as_bool_wd(tc, "ci", false)) - atf_tc_expect_fail("https://bugs.freebsd.org/205448"); -#endif for (size_t i = 0; i < nitems(rmodes); i++) { printf("rmode = %d\n", rmodes[i]); fesetround(rmodes[i]); From owner-dev-commits-src-main@freebsd.org Thu Apr 15 15:28:24 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 39E0F5F4066; Thu, 15 Apr 2021 15:28:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLjsg6q5wz4Vk1; Thu, 15 Apr 2021 15:28:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AAEBE13C32; Thu, 15 Apr 2021 15:28:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FFSNgo024427; Thu, 15 Apr 2021 15:28:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FFSNlk024426; Thu, 15 Apr 2021 15:28:23 GMT (envelope-from git) Date: Thu, 15 Apr 2021 15:28:23 GMT Message-Id: <202104151528.13FFSNlk024426@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alex Richardson Subject: git: 062293c2c471 - main - Remove XFAIL from tests/lib/msun/lround_test:main MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: arichardson X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 062293c2c471c6affb46f0ba44e7b7ee5b77b591 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 15:28:24 -0000 The branch main has been updated by arichardson: URL: https://cgit.FreeBSD.org/src/commit/?id=062293c2c471c6affb46f0ba44e7b7ee5b77b591 commit 062293c2c471c6affb46f0ba44e7b7ee5b77b591 Author: Alex Richardson AuthorDate: 2021-04-15 15:07:58 +0000 Commit: Alex Richardson CommitDate: 2021-04-15 15:28:09 +0000 Remove XFAIL from tests/lib/msun/lround_test:main This test no longer fails after 3b00222f156dca5700c839d73e36daf479fa640c. PR: 205451 MFC after: 1 week --- lib/msun/tests/lround_test.c | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/msun/tests/lround_test.c b/lib/msun/tests/lround_test.c index b2a046917c71..a6daa5459c7b 100644 --- a/lib/msun/tests/lround_test.c +++ b/lib/msun/tests/lround_test.c @@ -72,7 +72,6 @@ __FBSDID("$FreeBSD$"); ATF_TC_WITHOUT_HEAD(main); ATF_TC_BODY(main, tc) { - atf_tc_expect_fail("https://bugs.freebsd.org/205451"); testall(0.0, 0, 0); testall(0.25, 0, FE_INEXACT); testall(0.5, 1, FE_INEXACT); From owner-dev-commits-src-main@freebsd.org Thu Apr 15 16:52:06 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6148B5F65A9; Thu, 15 Apr 2021 16:52:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLlkG2L2mz4bD0; Thu, 15 Apr 2021 16:52:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4322F1477E; Thu, 15 Apr 2021 16:52:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FGq6JW042875; Thu, 15 Apr 2021 16:52:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FGq6xY042874; Thu, 15 Apr 2021 16:52:06 GMT (envelope-from git) Date: Thu, 15 Apr 2021 16:52:06 GMT Message-Id: <202104151652.13FGq6xY042874@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: 548d8a131d53 - main - e1000: disable hw.em.sbp debug setting MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 548d8a131d536d5f8e0818ff8cff7ffd63dbedfe Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 16:52:06 -0000 The branch main has been updated by kbowling (ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=548d8a131d536d5f8e0818ff8cff7ffd63dbedfe commit 548d8a131d536d5f8e0818ff8cff7ffd63dbedfe Author: Kevin Bowling AuthorDate: 2021-04-15 16:48:41 +0000 Commit: Kevin Bowling CommitDate: 2021-04-15 16:48:41 +0000 e1000: disable hw.em.sbp debug setting This is a debugging tunable that shouldn't have retained this setting after the initial iflib conversion of the driver PR: 248934 Reported by: Franco Fichtner Reviewed by: markj MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D29768 --- sys/dev/e1000/if_em.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index fcf328de9a2e..6f44bdc9ae4c 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -495,7 +495,7 @@ SYSCTL_INT(_hw_em, OID_AUTO, smart_pwr_down, CTLFLAG_RDTUN, &em_smart_pwr_down, 0, "Set to true to leave smart power down enabled on newer adapters"); /* Controls whether promiscuous also shows bad packets */ -static int em_debug_sbp = TRUE; +static int em_debug_sbp = FALSE; SYSCTL_INT(_hw_em, OID_AUTO, sbp, CTLFLAG_RDTUN, &em_debug_sbp, 0, "Show bad packets in promiscuous mode"); From owner-dev-commits-src-main@freebsd.org Thu Apr 15 17:20:27 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C3EBB5F7559; Thu, 15 Apr 2021 17:20:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLmLz5Gpnz4cTZ; Thu, 15 Apr 2021 17:20:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A802F15475; Thu, 15 Apr 2021 17:20:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FHKRLE078747; Thu, 15 Apr 2021 17:20:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FHKRid078746; Thu, 15 Apr 2021 17:20:27 GMT (envelope-from git) Date: Thu, 15 Apr 2021 17:20:27 GMT Message-Id: <202104151720.13FHKRid078746@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: bb1b375fa748 - main - e1000: fix em_mac_min and 82547 packet buffer MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bb1b375fa7487ee5c3843121a0621ac8379c18e6 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 17:20:27 -0000 The branch main has been updated by kbowling (ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=bb1b375fa7487ee5c3843121a0621ac8379c18e6 commit bb1b375fa7487ee5c3843121a0621ac8379c18e6 Author: Kevin Bowling AuthorDate: 2021-04-15 16:58:36 +0000 Commit: Kevin Bowling CommitDate: 2021-04-15 17:19:30 +0000 e1000: fix em_mac_min and 82547 packet buffer The boundary differentiating "lem" vs "em" class devices was wrong after the iflib conversion of lem(4). The Packet Buffer size for 82547 class chips was not set correctly after the iflib conversion of lem(4). These changes restore functionality on an 82547 for the submitter. PR: 236119 Reported by: Jeff Gibbons Reviewed by: markj MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D29766 --- sys/dev/e1000/if_em.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 6f44bdc9ae4c..6f022c80c01c 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -31,7 +31,7 @@ #include #include -#define em_mac_min e1000_82547 +#define em_mac_min e1000_82571 #define igb_mac_min e1000_82575 /********************************************************************* @@ -2469,13 +2469,22 @@ em_reset(if_ctx_t ctx) * the remainder is used for the transmit buffer. */ switch (hw->mac.type) { - /* Total Packet Buffer on these is 48K */ + /* 82547: Total Packet Buffer is 40K */ + case e1000_82547: + case e1000_82547_rev_2: + if (hw->mac.max_frame_size > 8192) + pba = E1000_PBA_22K; /* 22K for Rx, 18K for Tx */ + else + pba = E1000_PBA_30K; /* 30K for Rx, 10K for Tx */ + break; + /* 82571/82572/80003es2lan: Total Packet Buffer is 48K */ case e1000_82571: case e1000_82572: case e1000_80003es2lan: pba = E1000_PBA_32K; /* 32K for Rx, 16K for Tx */ break; - case e1000_82573: /* 82573: Total Packet Buffer is 32K */ + /* 82573: Total Packet Buffer is 32K */ + case e1000_82573: pba = E1000_PBA_12K; /* 12K for Rx, 20K for Tx */ break; case e1000_82574: @@ -2520,6 +2529,7 @@ em_reset(if_ctx_t ctx) pba = E1000_PBA_34K; break; default: + /* Remaining devices assumed to have a Packet Buffer of 64K. */ if (hw->mac.max_frame_size > 8192) pba = E1000_PBA_40K; /* 40K for Rx, 24K for Tx */ else From owner-dev-commits-src-main@freebsd.org Thu Apr 15 18:48:23 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3C0905D28A5; Thu, 15 Apr 2021 18:48:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLpJR0CZJz4jLd; Thu, 15 Apr 2021 18:48:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EE46A1684F; Thu, 15 Apr 2021 18:48:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FImMKp091036; Thu, 15 Apr 2021 18:48:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FImMA5091035; Thu, 15 Apr 2021 18:48:22 GMT (envelope-from git) Date: Thu, 15 Apr 2021 18:48:22 GMT Message-Id: <202104151848.13FImMA5091035@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: 68a46f11eada - main - e1000: Restore VF interface random MAC MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 68a46f11eadab48a1da9e3d3900569a6a1ce142e Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 18:48:23 -0000 The branch main has been updated by kbowling (ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=68a46f11eadab48a1da9e3d3900569a6a1ce142e commit 68a46f11eadab48a1da9e3d3900569a6a1ce142e Author: Kevin Bowling AuthorDate: 2021-04-15 18:45:02 +0000 Commit: Kevin Bowling CommitDate: 2021-04-15 18:45:02 +0000 e1000: Restore VF interface random MAC Restore 525e07418c77 after the iflib conversion of igb(4). This reenables random MAC address generation when attaching to a VF with a zeroed MAC. PR: 253535 Reported by: Balaev PA Reviewed by: markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D29785 --- sys/dev/e1000/if_em.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 6f022c80c01c..79a617b3342f 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -1061,9 +1061,17 @@ em_if_attach_pre(if_ctx_t ctx) } if (!em_is_valid_ether_addr(hw->mac.addr)) { - device_printf(dev, "Invalid MAC address\n"); - error = EIO; - goto err_late; + if (adapter->vf_ifp) { + u8 addr[ETHER_ADDR_LEN]; + arc4rand(&addr, sizeof(addr), 0); + addr[0] &= 0xFE; + addr[0] |= 0x02; + bcopy(addr, hw->mac.addr, sizeof(addr)); + } else { + device_printf(dev, "Invalid MAC address\n"); + error = EIO; + goto err_late; + } } /* Disable ULP support */ @@ -1923,6 +1931,13 @@ em_identify_hardware(if_ctx_t ctx) device_printf(dev, "Setup init failure\n"); return; } + + /* Are we a VF device? */ + if ((adapter->hw.mac.type == e1000_vfadapt) || + (adapter->hw.mac.type == e1000_vfadapt_i350)) + adapter->vf_ifp = 1; + else + adapter->vf_ifp = 0; } static int From owner-dev-commits-src-main@freebsd.org Thu Apr 15 19:32:30 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9FBB55D3EFC; Thu, 15 Apr 2021 19:32:30 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Received: from smarthost1.greenhost.nl (smarthost1.greenhost.nl [195.190.28.88]) (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 4FLqHL3S0Dz4llw; Thu, 15 Apr 2021 19:32:30 +0000 (UTC) (envelope-from ronald-lists@klop.ws) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=klop.ws; s=mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version: Date:Message-ID:From:References:To:Subject:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=jUadlJe6szdS1uwnLrUDO/IXuzjZaYvk+AxH38dizRk=; b=wspaeQxProhRlvRlLt5wxlVp/O cOSoD3iZYLEwTr2EBIU61EIfp807NO5RH1HIP7fsQ5qDTZ7ytw2iEIAabR+BptCqVTT3McIo2YnSc 6wUxduUHTamHuhfH31K+m6wCU434xK906P5fTQrxBCuncVlWv5YkfSS5V6vnMEGiBT/w=; Subject: Re: git: 68a46f11eada - main - e1000: Restore VF interface random MAC To: Kevin Bowling , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202104151848.13FImMA5091035@gitrepo.freebsd.org> From: Ronald Klop Message-ID: <5b50b23a-71cd-5221-c905-ccffe841bc98@klop.ws> Date: Thu, 15 Apr 2021 21:32:27 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Thunderbird/78.9.0 MIME-Version: 1.0 In-Reply-To: <202104151848.13FImMA5091035@gitrepo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Authenticated-As-Hash: 398f5522cb258ce43cb679602f8cfe8b62a256d1 X-Virus-Scanned: by clamav at smarthost1.greenhost.nl X-Spam-Level: --- X-Spam-Score: -3.1 X-Spam-Status: No, score=-3.1 required=5.0 tests=ALL_TRUSTED, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A autolearn=disabled version=3.4.2 X-Scan-Signature: 98cd051f671ee36aeaf0d6c34a549736 X-Rspamd-Queue-Id: 4FLqHL3S0Dz4llw X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 19:32:30 -0000 On 4/15/21 8:48 PM, Kevin Bowling wrote: > The branch main has been updated by kbowling (ports committer): > > URL: https://cgit.FreeBSD.org/src/commit/?id=68a46f11eadab48a1da9e3d3900569a6a1ce142e > > commit 68a46f11eadab48a1da9e3d3900569a6a1ce142e > Author: Kevin Bowling > AuthorDate: 2021-04-15 18:45:02 +0000 > Commit: Kevin Bowling > CommitDate: 2021-04-15 18:45:02 +0000 > > e1000: Restore VF interface random MAC > > Restore 525e07418c77 after the iflib conversion of igb(4). This > reenables random MAC address generation when attaching to a VF with a > zeroed MAC. > > PR: 253535 > Reported by: Balaev PA > Reviewed by: markj > MFC after: 2 weeks > Differential Revision: https://reviews.freebsd.org/D29785 > --- > sys/dev/e1000/if_em.c | 21 ++++++++++++++++++--- > 1 file changed, 18 insertions(+), 3 deletions(-) > > diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c > index 6f022c80c01c..79a617b3342f 100644 > --- a/sys/dev/e1000/if_em.c > +++ b/sys/dev/e1000/if_em.c > @@ -1061,9 +1061,17 @@ em_if_attach_pre(if_ctx_t ctx) > } > > if (!em_is_valid_ether_addr(hw->mac.addr)) { > - device_printf(dev, "Invalid MAC address\n"); > - error = EIO; > - goto err_late; > + if (adapter->vf_ifp) { > + u8 addr[ETHER_ADDR_LEN]; > + arc4rand(&addr, sizeof(addr), 0); > + addr[0] &= 0xFE; > + addr[0] |= 0x02; > + bcopy(addr, hw->mac.addr, sizeof(addr)); > + } else { > + device_printf(dev, "Invalid MAC address\n"); > + error = EIO; > + goto err_late; > + } Just curious. Would ether_gen_addr() be useful here? It is implemented in net/if_ethersubr.c. Regards, Ronald. > } > > /* Disable ULP support */ > @@ -1923,6 +1931,13 @@ em_identify_hardware(if_ctx_t ctx) > device_printf(dev, "Setup init failure\n"); > return; > } > + > + /* Are we a VF device? */ > + if ((adapter->hw.mac.type == e1000_vfadapt) || > + (adapter->hw.mac.type == e1000_vfadapt_i350)) > + adapter->vf_ifp = 1; > + else > + adapter->vf_ifp = 0; > } > > static int > _______________________________________________ > dev-commits-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all > To unsubscribe, send any mail to "dev-commits-src-all-unsubscribe@freebsd.org" > From owner-dev-commits-src-main@freebsd.org Thu Apr 15 19:36:27 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8A5295D48BA; Thu, 15 Apr 2021 19:36:27 +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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLqMv3W92z4m4D; Thu, 15 Apr 2021 19:36:27 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) (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 66925257C7; Thu, 15 Apr 2021 19:36:27 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qt1-f174.google.com with SMTP id d6so816592qtx.13; Thu, 15 Apr 2021 12:36:27 -0700 (PDT) X-Gm-Message-State: AOAM5328XIzwtjnuEmQK1BMc/l+MIdzhKpwIwfWq2mdkI4oEc4tSrOan 5Uj/weWMobx+wsWvsv4cfWYuHJhBvAdeObBnHwo= X-Google-Smtp-Source: ABdhPJyBKMFb2aNeN9VHn/TfLUYQjnbG4uvNdyI3gFDthtw8ZIU1MRj6WcdLXociQqGtXJaXVQ5CxYHKLkAMbVSPKDo= X-Received: by 2002:ac8:a02:: with SMTP id b2mr4566102qti.310.1618515386978; Thu, 15 Apr 2021 12:36:26 -0700 (PDT) MIME-Version: 1.0 References: <202104151848.13FImMA5091035@gitrepo.freebsd.org> <5b50b23a-71cd-5221-c905-ccffe841bc98@klop.ws> In-Reply-To: <5b50b23a-71cd-5221-c905-ccffe841bc98@klop.ws> From: Kyle Evans Date: Thu, 15 Apr 2021 14:36:10 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: git: 68a46f11eada - main - e1000: Restore VF interface random MAC To: Ronald Klop Cc: Kevin Bowling , src-committers , "" , dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 19:36:27 -0000 On Thu, Apr 15, 2021 at 2:32 PM Ronald Klop wrote: > > On 4/15/21 8:48 PM, Kevin Bowling wrote: > > The branch main has been updated by kbowling (ports committer): > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=68a46f11eadab48a1da9e3d3900569a6a1ce142e > > > > commit 68a46f11eadab48a1da9e3d3900569a6a1ce142e > > Author: Kevin Bowling > > AuthorDate: 2021-04-15 18:45:02 +0000 > > Commit: Kevin Bowling > > CommitDate: 2021-04-15 18:45:02 +0000 > > > > e1000: Restore VF interface random MAC > > > > Restore 525e07418c77 after the iflib conversion of igb(4). This > > reenables random MAC address generation when attaching to a VF with a > > zeroed MAC. > > > > PR: 253535 > > Reported by: Balaev PA > > Reviewed by: markj > > MFC after: 2 weeks > > Differential Revision: https://reviews.freebsd.org/D29785 > > --- > > sys/dev/e1000/if_em.c | 21 ++++++++++++++++++--- > > 1 file changed, 18 insertions(+), 3 deletions(-) > > > > diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c > > index 6f022c80c01c..79a617b3342f 100644 > > --- a/sys/dev/e1000/if_em.c > > +++ b/sys/dev/e1000/if_em.c > > @@ -1061,9 +1061,17 @@ em_if_attach_pre(if_ctx_t ctx) > > } > > > > if (!em_is_valid_ether_addr(hw->mac.addr)) { > > - device_printf(dev, "Invalid MAC address\n"); > > - error = EIO; > > - goto err_late; > > + if (adapter->vf_ifp) { > > + u8 addr[ETHER_ADDR_LEN]; > > + arc4rand(&addr, sizeof(addr), 0); > > + addr[0] &= 0xFE; > > + addr[0] |= 0x02; > > + bcopy(addr, hw->mac.addr, sizeof(addr)); > > + } else { > > + device_printf(dev, "Invalid MAC address\n"); > > + error = EIO; > > + goto err_late; > > + } > > > Just curious. Would ether_gen_addr() be useful here? > It is implemented in net/if_ethersubr.c. > I had asked myself the same question, but I suspect these machines may not necessarily have a hostuuid preloaded to avoid collisions from the generated addresses. Thanks, Kyle Evans From owner-dev-commits-src-main@freebsd.org Thu Apr 15 20:06:08 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2E9525D5A3C for ; Thu, 15 Apr 2021 20:06:08 +0000 (UTC) (envelope-from kevin.bowling@kev009.com) Received: from mail-yb1-xb34.google.com (mail-yb1-xb34.google.com [IPv6:2607:f8b0:4864:20::b34]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FLr280dMyz4nL1 for ; Thu, 15 Apr 2021 20:06:07 +0000 (UTC) (envelope-from kevin.bowling@kev009.com) Received: by mail-yb1-xb34.google.com with SMTP id z1so27521573ybf.6 for ; Thu, 15 Apr 2021 13:06:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kev009.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Mv1ig0X1qaa3dOr32Zf5DRJ3I3ZpqYd2V7OsLjdKlhg=; b=CttXb7AvlGZGGRRTIZXRuRJo7euwgL3895oRSeSKt2cAhKB6P+TLLPWqb9wTERB9gG aqTPw+2K8EWCmGclKDTubUQodBIOBSojTJTpPF30SkziOkiD8Btoa+RaEenRbePBU3On JZ7XmWGfs+LsWg5GUc85tNJVRrk5KaIfNhSoU= 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=Mv1ig0X1qaa3dOr32Zf5DRJ3I3ZpqYd2V7OsLjdKlhg=; b=NnFZ+ASA3Ul/NpiGyK4c1RWzgkwnsNaG5R6l02jEDXrqa8zsuZ01ZbBg1neWaFGCgl e4gcGX3qYsUR2+ka72WLYqf5SQNDwwfi9498/bnI/5mBf/r7LrP4mHI8J5pxo9V+vTOt eTxhLckhrErK1xXLQ5jTkL77R9JqWsVch0Qpoqe1CNp7U2FZFwvc5c5ljIX2L1TVkiJp le/cVufGa9pdZa3bdduWbOTZci2xUok1qOxAlbS9IYO4f+MNx9e2rxzQh5zjae2mb6jT QknjEmnL1F5h5xj1NkhCw8f+G6LaWB/rCpDhR6HY+gOqHR9F3811sR5FIuW2et8ZoFWu i0cw== X-Gm-Message-State: AOAM532200SJVxjKrjr2zYc5oZsz5mBBuQWyngxcJv9D5GZWOn0kjGSx f8thopXtLCyhbr856mEDhuqq4uwgokW/Sb3Hq7heHw== X-Google-Smtp-Source: ABdhPJxmVLpV3nI3D1SfI5XmzH/oyrlOp8Ax3DxTnRJTmCv6XSNLP/z5RxKR2kffnCIR6NJdv+/rFriWY03Q9ykDeno= X-Received: by 2002:a25:7705:: with SMTP id s5mr6560361ybc.429.1618517166972; Thu, 15 Apr 2021 13:06:06 -0700 (PDT) MIME-Version: 1.0 References: <202104151848.13FImMA5091035@gitrepo.freebsd.org> <5b50b23a-71cd-5221-c905-ccffe841bc98@klop.ws> In-Reply-To: From: Kevin Bowling Date: Thu, 15 Apr 2021 13:05:54 -0700 Message-ID: Subject: Re: git: 68a46f11eada - main - e1000: Restore VF interface random MAC To: Kyle Evans Cc: Ronald Klop , Kevin Bowling , src-committers , "" , dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 4FLr280dMyz4nL1 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 20:06:08 -0000 I would like to discuss this further, it crossed my mind, but none of the intel drivers currently use it. If this is the right KPI I think a review should be prepared that updates e1000, ixgbe (ixv), ixl (iavf) in one go. Regards, Kevin On Thu, Apr 15, 2021 at 12:36 PM Kyle Evans wrote: > > On Thu, Apr 15, 2021 at 2:32 PM Ronald Klop wrote: > > > > On 4/15/21 8:48 PM, Kevin Bowling wrote: > > > The branch main has been updated by kbowling (ports committer): > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=68a46f11eadab48a1da9e3d3900569a6a1ce142e > > > > > > commit 68a46f11eadab48a1da9e3d3900569a6a1ce142e > > > Author: Kevin Bowling > > > AuthorDate: 2021-04-15 18:45:02 +0000 > > > Commit: Kevin Bowling > > > CommitDate: 2021-04-15 18:45:02 +0000 > > > > > > e1000: Restore VF interface random MAC > > > > > > Restore 525e07418c77 after the iflib conversion of igb(4). This > > > reenables random MAC address generation when attaching to a VF with a > > > zeroed MAC. > > > > > > PR: 253535 > > > Reported by: Balaev PA > > > Reviewed by: markj > > > MFC after: 2 weeks > > > Differential Revision: https://reviews.freebsd.org/D29785 > > > --- > > > sys/dev/e1000/if_em.c | 21 ++++++++++++++++++--- > > > 1 file changed, 18 insertions(+), 3 deletions(-) > > > > > > diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c > > > index 6f022c80c01c..79a617b3342f 100644 > > > --- a/sys/dev/e1000/if_em.c > > > +++ b/sys/dev/e1000/if_em.c > > > @@ -1061,9 +1061,17 @@ em_if_attach_pre(if_ctx_t ctx) > > > } > > > > > > if (!em_is_valid_ether_addr(hw->mac.addr)) { > > > - device_printf(dev, "Invalid MAC address\n"); > > > - error = EIO; > > > - goto err_late; > > > + if (adapter->vf_ifp) { > > > + u8 addr[ETHER_ADDR_LEN]; > > > + arc4rand(&addr, sizeof(addr), 0); > > > + addr[0] &= 0xFE; > > > + addr[0] |= 0x02; > > > + bcopy(addr, hw->mac.addr, sizeof(addr)); > > > + } else { > > > + device_printf(dev, "Invalid MAC address\n"); > > > + error = EIO; > > > + goto err_late; > > > + } > > > > > > Just curious. Would ether_gen_addr() be useful here? > > It is implemented in net/if_ethersubr.c. > > > > I had asked myself the same question, but I suspect these machines may > not necessarily have a hostuuid preloaded to avoid collisions from the > generated addresses. > > Thanks, > > Kyle Evans From owner-dev-commits-src-main@freebsd.org Thu Apr 15 20:12:29 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 918D75D5E0D; Thu, 15 Apr 2021 20:12: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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLr9T3Xrfz4npT; Thu, 15 Apr 2021 20:12:29 +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 6C8C02612D; Thu, 15 Apr 2021 20:12:29 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qk1-f182.google.com with SMTP id o5so26634309qkb.0; Thu, 15 Apr 2021 13:12:29 -0700 (PDT) X-Gm-Message-State: AOAM5324jnKiQyxUYAMpY7A6HeV87BUZ/qk2cWLZ3qyNSqqlFKAYGrk5 C4aWdHkTEcXEbFRTHwuwUWqWXGxv1izSqa1RY/0= X-Google-Smtp-Source: ABdhPJwVP+/0S74h5GR1W3rSNqoxjLr6XPFC9eGhSjmAw5nVuHYs2FjBNAb380D9Gj4V0MieI7hV4Jfn38maLKDWqx4= X-Received: by 2002:a05:620a:b0a:: with SMTP id t10mr5058669qkg.103.1618517549001; Thu, 15 Apr 2021 13:12:29 -0700 (PDT) MIME-Version: 1.0 References: <202104151848.13FImMA5091035@gitrepo.freebsd.org> <5b50b23a-71cd-5221-c905-ccffe841bc98@klop.ws> In-Reply-To: From: Kyle Evans Date: Thu, 15 Apr 2021 15:12:14 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: git: 68a46f11eada - main - e1000: Restore VF interface random MAC To: Kevin Bowling Cc: Ronald Klop , Kevin Bowling , src-committers , "" , dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 20:12:29 -0000 I think it'd be the right choice, but it needs a little work first. e.g., it's not a good fit right now for VMs that don't use loader, for instance, because it relies on the hostuuid actually being somewhat unique or else it generates the same MAC address across different VMs and you end up with conflicts in the broadcast domain. I think there's a good argument to make for having it check if the hostuuid is the default all-0 hostuuid and just generating a random address as this does right now. I might go ahead and prepare such a change and document the KPI in the process. On Thu, Apr 15, 2021 at 3:06 PM Kevin Bowling wrote: > > I would like to discuss this further, it crossed my mind, but none of > the intel drivers currently use it. If this is the right KPI I think > a review should be prepared that updates e1000, ixgbe (ixv), ixl > (iavf) in one go. > > Regards, > Kevin > > On Thu, Apr 15, 2021 at 12:36 PM Kyle Evans wrote: > > > > On Thu, Apr 15, 2021 at 2:32 PM Ronald Klop wrote: > > > > > > On 4/15/21 8:48 PM, Kevin Bowling wrote: > > > > The branch main has been updated by kbowling (ports committer): > > > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=68a46f11eadab48a1da9e3d3900569a6a1ce142e > > > > > > > > commit 68a46f11eadab48a1da9e3d3900569a6a1ce142e > > > > Author: Kevin Bowling > > > > AuthorDate: 2021-04-15 18:45:02 +0000 > > > > Commit: Kevin Bowling > > > > CommitDate: 2021-04-15 18:45:02 +0000 > > > > > > > > e1000: Restore VF interface random MAC > > > > > > > > Restore 525e07418c77 after the iflib conversion of igb(4). This > > > > reenables random MAC address generation when attaching to a VF with a > > > > zeroed MAC. > > > > > > > > PR: 253535 > > > > Reported by: Balaev PA > > > > Reviewed by: markj > > > > MFC after: 2 weeks > > > > Differential Revision: https://reviews.freebsd.org/D29785 > > > > --- > > > > sys/dev/e1000/if_em.c | 21 ++++++++++++++++++--- > > > > 1 file changed, 18 insertions(+), 3 deletions(-) > > > > > > > > diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c > > > > index 6f022c80c01c..79a617b3342f 100644 > > > > --- a/sys/dev/e1000/if_em.c > > > > +++ b/sys/dev/e1000/if_em.c > > > > @@ -1061,9 +1061,17 @@ em_if_attach_pre(if_ctx_t ctx) > > > > } > > > > > > > > if (!em_is_valid_ether_addr(hw->mac.addr)) { > > > > - device_printf(dev, "Invalid MAC address\n"); > > > > - error = EIO; > > > > - goto err_late; > > > > + if (adapter->vf_ifp) { > > > > + u8 addr[ETHER_ADDR_LEN]; > > > > + arc4rand(&addr, sizeof(addr), 0); > > > > + addr[0] &= 0xFE; > > > > + addr[0] |= 0x02; > > > > + bcopy(addr, hw->mac.addr, sizeof(addr)); > > > > + } else { > > > > + device_printf(dev, "Invalid MAC address\n"); > > > > + error = EIO; > > > > + goto err_late; > > > > + } > > > > > > > > > Just curious. Would ether_gen_addr() be useful here? > > > It is implemented in net/if_ethersubr.c. > > > > > > > I had asked myself the same question, but I suspect these machines may > > not necessarily have a hostuuid preloaded to avoid collisions from the > > generated addresses. > > > > Thanks, > > > > Kyle Evans From owner-dev-commits-src-main@freebsd.org Thu Apr 15 20:20:26 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8C4A55D6080 for ; Thu, 15 Apr 2021 20:20:26 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: from mail-qt1-x832.google.com (mail-qt1-x832.google.com [IPv6:2607:f8b0:4864:20::832]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FLrLf3DVWz4nmq for ; Thu, 15 Apr 2021 20:20:26 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: by mail-qt1-x832.google.com with SMTP id y12so19213636qtx.11 for ; Thu, 15 Apr 2021 13:20:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=vstwmu7liHtazxlPIZhkiQVqaJ+UejrHstDe/X11TtE=; b=TPi6NqAH/Tj/r+eo3P7otwAglRr+ky7p42o7pewxQoa2l/D2nMsMSQTt1MCJfIGa2j oGoujjR5UpCRY2s00+KZYzjV8u7F+fTe16bYOKVVu2YifuBsi+yh9pxewnxi+xnnJR3b BoaIkGJzUMuApCvQXcn3CgW/jtQw9vTE8JWubhLlOCoT8l3J/9Z7YPDAfRKcZpkUVPxA 8e0yta+NBgquvmo2qsL/OjOzmaya2jxFNTZkpM2c2mA06f8Y0cG2KMXh2zkKaIWujQ5I fvxfN4JkPu5Ugg8HbPAAEBbPTcJjHrnt4yF20EwAqJ20v/6oc0CBRr2kFl7bcgMaovcc ZALA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=vstwmu7liHtazxlPIZhkiQVqaJ+UejrHstDe/X11TtE=; b=XCLBRogILAemjJTNX0MgVuJ6eYyhj46z0N68bJ+nPc6JTHAFBKZIrGpK/jLw0c0bdb 4YxgP/PBgBwYUrq8x0xiGuWgI7q/rqZRrbmGWent8lTpsTvwgjGizJRlvB3Z/QJ/K329 WwSkuwHPeVShxjvwP3HQrpiFQAS3g7fVJNnBI/dceZLNi4OOuR54UwwJYkflXXgyi6Jl OVo+JJ/DTZY2QVQB8Pu7edvNZgH5H44zySiEtRYKR2LhaS3+Yr/ETw/EMQjprl2xh8Zf kGqKECBngdIbbgrrfNica9czt20lEh4iKJPQX9JlFJCmhotUVO7m/6jdBT0abtHhHaq3 u0Gg== X-Gm-Message-State: AOAM531uJIACTqMx/Q7zbTWgBG3Jyt0fmnjlPDgUnecf+zr4/MEiG/3K kwK8d1nmoXv6IvgqjIrCxHUiuQ== X-Google-Smtp-Source: ABdhPJzTCiUrPe1xrP11UdWRLMgjBEjay4vbmneNPeOqHhHmSceiB+NYUhRqX/zFX0U1AojnN8btCw== X-Received: by 2002:ac8:6f13:: with SMTP id g19mr4695614qtv.268.1618518025438; Thu, 15 Apr 2021 13:20:25 -0700 (PDT) Received: from mutt-hbsd (pool-100-16-222-53.bltmmd.fios.verizon.net. [100.16.222.53]) by smtp.gmail.com with ESMTPSA id l24sm2515230qtp.18.2021.04.15.13.20.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Apr 2021 13:20:24 -0700 (PDT) Date: Thu, 15 Apr 2021 16:20:23 -0400 From: Shawn Webb To: Kyle Evans Cc: Kevin Bowling , Ronald Klop , Kevin Bowling , src-committers , "" , dev-commits-src-main@freebsd.org Subject: Re: git: 68a46f11eada - main - e1000: Restore VF interface random MAC Message-ID: <20210415202023.oms4sih6eina57xu@mutt-hbsd> X-Operating-System: FreeBSD mutt-hbsd 14.0-CURRENT-HBSD FreeBSD 14.0-CURRENT-HBSD X-PGP-Key: https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/blob/master/Shawn_Webb/03A4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc References: <202104151848.13FImMA5091035@gitrepo.freebsd.org> <5b50b23a-71cd-5221-c905-ccffe841bc98@klop.ws> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="76ntzjfnoskhjo4p" Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 4FLrLf3DVWz4nmq X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 20:20:26 -0000 --76ntzjfnoskhjo4p Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Could ether_gen_addr be updated to take into account the zero'd hostuuid and handle appropriately like you mentioned below?=20 On Thu, Apr 15, 2021 at 03:12:14PM -0500, Kyle Evans wrote: > I think it'd be the right choice, but it needs a little work first. > e.g., it's not a good fit right now for VMs that don't use loader, for > instance, because it relies on the hostuuid actually being somewhat > unique or else it generates the same MAC address across different VMs > and you end up with conflicts in the broadcast domain. I think there's > a good argument to make for having it check if the hostuuid is the > default all-0 hostuuid and just generating a random address as this > does right now. I might go ahead and prepare such a change and > document the KPI in the process. >=20 > On Thu, Apr 15, 2021 at 3:06 PM Kevin Bowling = wrote: > > > > I would like to discuss this further, it crossed my mind, but none of > > the intel drivers currently use it. If this is the right KPI I think > > a review should be prepared that updates e1000, ixgbe (ixv), ixl > > (iavf) in one go. > > > > Regards, > > Kevin > > > > On Thu, Apr 15, 2021 at 12:36 PM Kyle Evans wrote: > > > > > > On Thu, Apr 15, 2021 at 2:32 PM Ronald Klop wr= ote: > > > > > > > > On 4/15/21 8:48 PM, Kevin Bowling wrote: > > > > > The branch main has been updated by kbowling (ports committer): > > > > > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D68a46f11eadab48a1d= a9e3d3900569a6a1ce142e > > > > > > > > > > commit 68a46f11eadab48a1da9e3d3900569a6a1ce142e > > > > > Author: Kevin Bowling > > > > > AuthorDate: 2021-04-15 18:45:02 +0000 > > > > > Commit: Kevin Bowling > > > > > CommitDate: 2021-04-15 18:45:02 +0000 > > > > > > > > > > e1000: Restore VF interface random MAC > > > > > > > > > > Restore 525e07418c77 after the iflib conversion of igb(4). T= his > > > > > reenables random MAC address generation when attaching to a = VF with a > > > > > zeroed MAC. > > > > > > > > > > PR: 253535 > > > > > Reported by: Balaev PA > > > > > Reviewed by: markj > > > > > MFC after: 2 weeks > > > > > Differential Revision: https://reviews.freebsd.org/D29785 > > > > > --- > > > > > sys/dev/e1000/if_em.c | 21 ++++++++++++++++++--- > > > > > 1 file changed, 18 insertions(+), 3 deletions(-) > > > > > > > > > > diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c > > > > > index 6f022c80c01c..79a617b3342f 100644 > > > > > --- a/sys/dev/e1000/if_em.c > > > > > +++ b/sys/dev/e1000/if_em.c > > > > > @@ -1061,9 +1061,17 @@ em_if_attach_pre(if_ctx_t ctx) > > > > > } > > > > > > > > > > if (!em_is_valid_ether_addr(hw->mac.addr)) { > > > > > - device_printf(dev, "Invalid MAC address\n"); > > > > > - error =3D EIO; > > > > > - goto err_late; > > > > > + if (adapter->vf_ifp) { > > > > > + u8 addr[ETHER_ADDR_LEN]; > > > > > + arc4rand(&addr, sizeof(addr), 0); > > > > > + addr[0] &=3D 0xFE; > > > > > + addr[0] |=3D 0x02; > > > > > + bcopy(addr, hw->mac.addr, sizeof(addr)); > > > > > + } else { > > > > > + device_printf(dev, "Invalid MAC address\n"); > > > > > + error =3D EIO; > > > > > + goto err_late; > > > > > + } > > > > > > > > > > > > Just curious. Would ether_gen_addr() be useful here? > > > > It is implemented in net/if_ethersubr.c. > > > > > > > > > > I had asked myself the same question, but I suspect these machines may > > > not necessarily have a hostuuid preloaded to avoid collisions from the > > > generated addresses. > > > > > > Thanks, > > > > > > Kyle Evans > _______________________________________________ > dev-commits-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all > To unsubscribe, send any mail to "dev-commits-src-all-unsubscribe@freebsd= =2Eorg" --=20 Shawn Webb Cofounder / Security Engineer HardenedBSD https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A= 4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc --76ntzjfnoskhjo4p Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEA6TL67gupaZ9nzhT/y5nonf44foFAmB4oAQACgkQ/y5nonf4 4fpOuw//eLn9TUkn8GZdpfAd4mWpX7rWBsjV1XuybzynIZF0pzwSOv3VJY4BTMFq KRnVNSd2vjjE55mlTLqQQ3UxH0qEIjK1ZYAHZ5Hv4EJ0CGmtn6MckPlKF6Jd8OK5 YcIAMx/qmmgaDviPAvtaRZiyUkLJB2Kpv/LZ0ClBCUMm4pSQghvhUfIl8gEfeG0K iBrfKQLW/b+llOGsBVAZqe9xBRt2vMJ57n11WvtAJZ+JxaaI7TwQvh/yN7M4syzF 3KfX5hm7Uc0phGDFs8eCobx3Km3kG4U9+NQ+zt7kPbKWcAFjoAJJx1tnIbyvHj+W W2DBjSD1gpY9/BFYDEJxsV0lu89sVcUcwR4VruhWcHVEWM6Vm0VXEpIxvHsnCLcs ot3Lp+xwBpgywjC5KtrgF789okj3s/c4ynhpJ1APitAluSgv75TMmnX5qUiNhcb5 18L+bKAGxG5H/z9NVDO1T6C61gguQWmdBue7usplCt1OOIpIQS4Yo6FeSVcDwOhF TOGeUAMXq5f8nzF1YPBDzUtGXTTMMBY6utjtBO2PSZEkrP6gigrWMtvOEaPYv03k qxA06dS44BtvtjxNJuFbTjuT6bCwpjqAbbM0kRRm4IyKchPNjDdtt3DEbzSrhk8Y RaZwQzZnp7/aDEE3JWNRSFqJJ97ZQvSm41/V/cr/6LkFxlVQ9aA= =mTbI -----END PGP SIGNATURE----- --76ntzjfnoskhjo4p-- From owner-dev-commits-src-main@freebsd.org Thu Apr 15 20:22:55 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7D2BB5D6051; Thu, 15 Apr 2021 20:22:55 +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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLrPW30tgz4pRN; Thu, 15 Apr 2021 20:22:55 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) (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 5A53B26A4A; Thu, 15 Apr 2021 20:22:55 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qk1-f180.google.com with SMTP id 18so9762786qkl.3; Thu, 15 Apr 2021 13:22:55 -0700 (PDT) X-Gm-Message-State: AOAM533mFdvsnrRYrU+ovct8fQEipINiydWyxopefWzKMhf+CRAfDPmm wBAIA+rN5+7K33NzfT3sUaxyrIMTGOysgaB4up4= X-Google-Smtp-Source: ABdhPJx+cZljdfl2UGYNQjp26Lx/l74kanwabPpaW3SD8RH0A/VpE3+pqXcVFvz6OihrAsYkWJttzXezt1tAabh4q10= X-Received: by 2002:a37:6758:: with SMTP id b85mr5653581qkc.430.1618518174990; Thu, 15 Apr 2021 13:22:54 -0700 (PDT) MIME-Version: 1.0 References: <202104151848.13FImMA5091035@gitrepo.freebsd.org> <5b50b23a-71cd-5221-c905-ccffe841bc98@klop.ws> <20210415202023.oms4sih6eina57xu@mutt-hbsd> In-Reply-To: <20210415202023.oms4sih6eina57xu@mutt-hbsd> From: Kyle Evans Date: Thu, 15 Apr 2021 15:22:41 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: git: 68a46f11eada - main - e1000: Restore VF interface random MAC To: Shawn Webb Cc: Kevin Bowling , Ronald Klop , Kevin Bowling , src-committers , "" , dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 20:22:55 -0000 Yes, sorry, this is precisely what I meant. On Thu, Apr 15, 2021 at 3:20 PM Shawn Webb wrote: > > Could ether_gen_addr be updated to take into account the zero'd > hostuuid and handle appropriately like you mentioned below? > > On Thu, Apr 15, 2021 at 03:12:14PM -0500, Kyle Evans wrote: > > I think it'd be the right choice, but it needs a little work first. > > e.g., it's not a good fit right now for VMs that don't use loader, for > > instance, because it relies on the hostuuid actually being somewhat > > unique or else it generates the same MAC address across different VMs > > and you end up with conflicts in the broadcast domain. I think there's > > a good argument to make for having it check if the hostuuid is the > > default all-0 hostuuid and just generating a random address as this > > does right now. I might go ahead and prepare such a change and > > document the KPI in the process. > > > > On Thu, Apr 15, 2021 at 3:06 PM Kevin Bowling wrote: > > > > > > I would like to discuss this further, it crossed my mind, but none of > > > the intel drivers currently use it. If this is the right KPI I think > > > a review should be prepared that updates e1000, ixgbe (ixv), ixl > > > (iavf) in one go. > > > > > > Regards, > > > Kevin > > > > > > On Thu, Apr 15, 2021 at 12:36 PM Kyle Evans wrote: > > > > > > > > On Thu, Apr 15, 2021 at 2:32 PM Ronald Klop wrote: > > > > > > > > > > On 4/15/21 8:48 PM, Kevin Bowling wrote: > > > > > > The branch main has been updated by kbowling (ports committer): > > > > > > > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=68a46f11eadab48a1da9e3d3900569a6a1ce142e > > > > > > > > > > > > commit 68a46f11eadab48a1da9e3d3900569a6a1ce142e > > > > > > Author: Kevin Bowling > > > > > > AuthorDate: 2021-04-15 18:45:02 +0000 > > > > > > Commit: Kevin Bowling > > > > > > CommitDate: 2021-04-15 18:45:02 +0000 > > > > > > > > > > > > e1000: Restore VF interface random MAC > > > > > > > > > > > > Restore 525e07418c77 after the iflib conversion of igb(4). This > > > > > > reenables random MAC address generation when attaching to a VF with a > > > > > > zeroed MAC. > > > > > > > > > > > > PR: 253535 > > > > > > Reported by: Balaev PA > > > > > > Reviewed by: markj > > > > > > MFC after: 2 weeks > > > > > > Differential Revision: https://reviews.freebsd.org/D29785 > > > > > > --- > > > > > > sys/dev/e1000/if_em.c | 21 ++++++++++++++++++--- > > > > > > 1 file changed, 18 insertions(+), 3 deletions(-) > > > > > > > > > > > > diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c > > > > > > index 6f022c80c01c..79a617b3342f 100644 > > > > > > --- a/sys/dev/e1000/if_em.c > > > > > > +++ b/sys/dev/e1000/if_em.c > > > > > > @@ -1061,9 +1061,17 @@ em_if_attach_pre(if_ctx_t ctx) > > > > > > } > > > > > > > > > > > > if (!em_is_valid_ether_addr(hw->mac.addr)) { > > > > > > - device_printf(dev, "Invalid MAC address\n"); > > > > > > - error = EIO; > > > > > > - goto err_late; > > > > > > + if (adapter->vf_ifp) { > > > > > > + u8 addr[ETHER_ADDR_LEN]; > > > > > > + arc4rand(&addr, sizeof(addr), 0); > > > > > > + addr[0] &= 0xFE; > > > > > > + addr[0] |= 0x02; > > > > > > + bcopy(addr, hw->mac.addr, sizeof(addr)); > > > > > > + } else { > > > > > > + device_printf(dev, "Invalid MAC address\n"); > > > > > > + error = EIO; > > > > > > + goto err_late; > > > > > > + } > > > > > > > > > > > > > > > Just curious. Would ether_gen_addr() be useful here? > > > > > It is implemented in net/if_ethersubr.c. > > > > > > > > > > > > > I had asked myself the same question, but I suspect these machines may > > > > not necessarily have a hostuuid preloaded to avoid collisions from the > > > > generated addresses. > > > > > > > > Thanks, > > > > > > > > Kyle Evans > > _______________________________________________ > > dev-commits-src-all@freebsd.org mailing list > > https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all > > To unsubscribe, send any mail to "dev-commits-src-all-unsubscribe@freebsd.org" > > -- > Shawn Webb > Cofounder / Security Engineer > HardenedBSD > > https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc From owner-dev-commits-src-main@freebsd.org Thu Apr 15 20:49:39 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E4D345D710B for ; Thu, 15 Apr 2021 20:49:39 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com [IPv6:2607:f8b0:4864:20::734]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FLs0M5kyNz4qVR for ; Thu, 15 Apr 2021 20:49:39 +0000 (UTC) (envelope-from shawn.webb@hardenedbsd.org) Received: by mail-qk1-x734.google.com with SMTP id h13so8058189qka.2 for ; Thu, 15 Apr 2021 13:49:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=pQzmoYNcNdmutBOITd2TsckSJcuXgDgSTvMpAAf0U3A=; b=iNfqr0XALDOw/xyPB69RlFqhyS8H6I6BbwiBKlLORRqg0Z0AvvDhYCXomYTdmEVu0M 6aTcM8UoBfrN3P9PuQncrJqLiEth3R2hGLdToFCCxOkFpa8kkqYAmJCq3FcvSIrVitnK /OJoJzRhdtXxTNSNwyGpJmj3j/eq3gm+XGPl2kDffTK/3V0uhE+qJdU5Y9LDL2TpxwVS Zk7LLreKSy7nBxEGScZVIdWHIiCST5hDhJGQ9frXw15LHdEDQyxbcrivVgkmRsCFwSXb J4DXApk/9YUN5sobgKU8lhiodAw6Hx/1hBx/V7Vcs5qb8LWwwBHU/0/bDS+79JUwt23N EdkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=pQzmoYNcNdmutBOITd2TsckSJcuXgDgSTvMpAAf0U3A=; b=tsy5VRnP1n1Bynb/DCzOLxr5reVxMtlxANgLochAhvu0pkwLDrogeHpmL3aIBF54gM 41gET4eKhC6Ikvb8kdh2ZeZSFEDCnDquK/n9Y3AwMHzt7B6/mXRTsO25ksGi/rD9lIzY YAUgtj0hifSt8gysasyvJvW9jQMv92DcD2JRLtbja1KTI0ZLna6GICuzhdSX039A10pu Lojva8mt8QX1xi5c5c1/xjwqGFN/xUdfqYVoyozDWj06PHne/blVTn/1tg88L3FZHK4w clPMf9bP1uT0UayYAbvn92nPPjkXsEsU80205x46X6zSXQQ4i+Rg8woi23NinqNUD3M3 EDmA== X-Gm-Message-State: AOAM530AtdG/kInTZN/Tm9vbyNgoZRmnfWFPM7A9qAmZXkNA3VAfXAv1 aqrkKDDFLQh3NJqfg7z/3CmA3zE56HM0kW6z X-Google-Smtp-Source: ABdhPJzTGzxbdvxR35HtsOxMVecWAPZGWdM5/NhkSTipCfIJoTGB66BodCFrlZ+qo4ZFYbJ2cPTU/w== X-Received: by 2002:a37:6182:: with SMTP id v124mr5313052qkb.289.1618519778648; Thu, 15 Apr 2021 13:49:38 -0700 (PDT) Received: from mutt-hbsd (pool-100-16-222-53.bltmmd.fios.verizon.net. [100.16.222.53]) by smtp.gmail.com with ESMTPSA id s20sm2532886qtq.80.2021.04.15.13.49.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Apr 2021 13:49:38 -0700 (PDT) Date: Thu, 15 Apr 2021 16:49:37 -0400 From: Shawn Webb To: Kyle Evans Cc: Kevin Bowling , Ronald Klop , Kevin Bowling , src-committers , "" , dev-commits-src-main@freebsd.org Subject: Re: git: 68a46f11eada - main - e1000: Restore VF interface random MAC Message-ID: <20210415204937.teix2vfqtocehm5b@mutt-hbsd> X-Operating-System: FreeBSD mutt-hbsd 14.0-CURRENT-HBSD FreeBSD 14.0-CURRENT-HBSD X-PGP-Key: https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/blob/master/Shawn_Webb/03A4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc References: <202104151848.13FImMA5091035@gitrepo.freebsd.org> <5b50b23a-71cd-5221-c905-ccffe841bc98@klop.ws> <20210415202023.oms4sih6eina57xu@mutt-hbsd> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="kidiwxwjwjyyewfd" Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 4FLs0M5kyNz4qVR X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 20:49:40 -0000 --kidiwxwjwjyyewfd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Ah. I think I misinterpreted your email. Sorry about that! On Thu, Apr 15, 2021 at 03:22:41PM -0500, Kyle Evans wrote: > Yes, sorry, this is precisely what I meant. >=20 > On Thu, Apr 15, 2021 at 3:20 PM Shawn Webb w= rote: > > > > Could ether_gen_addr be updated to take into account the zero'd > > hostuuid and handle appropriately like you mentioned below? > > > > On Thu, Apr 15, 2021 at 03:12:14PM -0500, Kyle Evans wrote: > > > I think it'd be the right choice, but it needs a little work first. > > > e.g., it's not a good fit right now for VMs that don't use loader, for > > > instance, because it relies on the hostuuid actually being somewhat > > > unique or else it generates the same MAC address across different VMs > > > and you end up with conflicts in the broadcast domain. I think there's > > > a good argument to make for having it check if the hostuuid is the > > > default all-0 hostuuid and just generating a random address as this > > > does right now. I might go ahead and prepare such a change and > > > document the KPI in the process. > > > > > > On Thu, Apr 15, 2021 at 3:06 PM Kevin Bowling wrote: > > > > > > > > I would like to discuss this further, it crossed my mind, but none = of > > > > the intel drivers currently use it. If this is the right KPI I thi= nk > > > > a review should be prepared that updates e1000, ixgbe (ixv), ixl > > > > (iavf) in one go. > > > > > > > > Regards, > > > > Kevin > > > > > > > > On Thu, Apr 15, 2021 at 12:36 PM Kyle Evans wr= ote: > > > > > > > > > > On Thu, Apr 15, 2021 at 2:32 PM Ronald Klop wrote: > > > > > > > > > > > > On 4/15/21 8:48 PM, Kevin Bowling wrote: > > > > > > > The branch main has been updated by kbowling (ports committer= ): > > > > > > > > > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D68a46f11eadab4= 8a1da9e3d3900569a6a1ce142e > > > > > > > > > > > > > > commit 68a46f11eadab48a1da9e3d3900569a6a1ce142e > > > > > > > Author: Kevin Bowling > > > > > > > AuthorDate: 2021-04-15 18:45:02 +0000 > > > > > > > Commit: Kevin Bowling > > > > > > > CommitDate: 2021-04-15 18:45:02 +0000 > > > > > > > > > > > > > > e1000: Restore VF interface random MAC > > > > > > > > > > > > > > Restore 525e07418c77 after the iflib conversion of igb(4= ). This > > > > > > > reenables random MAC address generation when attaching t= o a VF with a > > > > > > > zeroed MAC. > > > > > > > > > > > > > > PR: 253535 > > > > > > > Reported by: Balaev PA > > > > > > > Reviewed by: markj > > > > > > > MFC after: 2 weeks > > > > > > > Differential Revision: https://reviews.freebsd.org/D297= 85 > > > > > > > --- > > > > > > > sys/dev/e1000/if_em.c | 21 ++++++++++++++++++--- > > > > > > > 1 file changed, 18 insertions(+), 3 deletions(-) > > > > > > > > > > > > > > diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c > > > > > > > index 6f022c80c01c..79a617b3342f 100644 > > > > > > > --- a/sys/dev/e1000/if_em.c > > > > > > > +++ b/sys/dev/e1000/if_em.c > > > > > > > @@ -1061,9 +1061,17 @@ em_if_attach_pre(if_ctx_t ctx) > > > > > > > } > > > > > > > > > > > > > > if (!em_is_valid_ether_addr(hw->mac.addr)) { > > > > > > > - device_printf(dev, "Invalid MAC address\n"); > > > > > > > - error =3D EIO; > > > > > > > - goto err_late; > > > > > > > + if (adapter->vf_ifp) { > > > > > > > + u8 addr[ETHER_ADDR_LEN]; > > > > > > > + arc4rand(&addr, sizeof(addr), 0); > > > > > > > + addr[0] &=3D 0xFE; > > > > > > > + addr[0] |=3D 0x02; > > > > > > > + bcopy(addr, hw->mac.addr, sizeof(addr)); > > > > > > > + } else { > > > > > > > + device_printf(dev, "Invalid MAC address= \n"); > > > > > > > + error =3D EIO; > > > > > > > + goto err_late; > > > > > > > + } > > > > > > > > > > > > > > > > > > Just curious. Would ether_gen_addr() be useful here? > > > > > > It is implemented in net/if_ethersubr.c. > > > > > > > > > > > > > > > > I had asked myself the same question, but I suspect these machine= s may > > > > > not necessarily have a hostuuid preloaded to avoid collisions fro= m the > > > > > generated addresses. > > > > > > > > > > Thanks, > > > > > > > > > > Kyle Evans > > > _______________________________________________ > > > dev-commits-src-all@freebsd.org mailing list > > > https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all > > > To unsubscribe, send any mail to "dev-commits-src-all-unsubscribe@fre= ebsd.org" > > > > -- > > Shawn Webb > > Cofounder / Security Engineer > > HardenedBSD > > > > https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb= /03A4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc --=20 Shawn Webb Cofounder / Security Engineer HardenedBSD https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A= 4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc --kidiwxwjwjyyewfd Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEA6TL67gupaZ9nzhT/y5nonf44foFAmB4pt8ACgkQ/y5nonf4 4fqf0w/7BonD+TteToMB58iTqRc5yRD5Pfl/DF0j40yeHwaPm/yATBUPr9JqgE4e HuOo4NYo3xcz4lR/MYAPizPi8Dcy3REuG5EzP5Y6bgXLgGHzkD1QRANBfsqBaIgI gSwBMwiBN60xFf+8KViQqzZ4KSeFvXnkjVHRs+L/R3rKIqc2I6NWwiAUcqVLVB3m kfrx6HoBp3ZIUsbMdx40VwkNmthcL+gAXiUHD4xjx2IGk3uIUMqU3QUnosysvDb4 Z7lpDobuRNiumHkqCTghW4BGC9mYwZv259gqgD7Wy8fbuBerZh/wq5jVpd7pvf78 Akq9RUh5PrnmONzNiq1J+WG3oMdTA2SF1fFZz8Plx8eOK+oIvHJq/sJGY/G+C25a yqirO9dZCauN5S9zSCwYyqoztfYRz3p1wGZN+XiG/I+WI4TTOnUJto+ZnbFAvsrI IAg3JZ3G6JeZbMsj2tHjlNJ6ArCYEJIQJFq3n6ebQsl82+m557aSK3J+Q+jp5hwj 3SbFYLuvrLvuAqVeVvEuw37yobXCF0TfrEmrR+ws3Rbt+HfYzYCopqFJGvIuc5WJ Z03L3ZeETo8kIv3onJrZRHnyGXzi33J7KyNHhedUEq2v59UibCO3EjzEZ/08qKes FGkVf+l08RMMsdWQAWrwnY0wlMM+a/xPwEjSc8yFo0w8PhxgmGQ= =8Lt+ -----END PGP SIGNATURE----- --kidiwxwjwjyyewfd-- From owner-dev-commits-src-main@freebsd.org Thu Apr 15 21:02:53 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 165085D7BBC; Thu, 15 Apr 2021 21:02:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLsHd0BX7z4rTp; Thu, 15 Apr 2021 21:02:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ED5F81890C; Thu, 15 Apr 2021 21:02:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FL2q3j077575; Thu, 15 Apr 2021 21:02:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FL2qDM077574; Thu, 15 Apr 2021 21:02:52 GMT (envelope-from git) Date: Thu, 15 Apr 2021 21:02:52 GMT Message-Id: <202104152102.13FL2qDM077574@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 6b8ef0d428c9 - main - Add batched update support for the fib algo. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6b8ef0d428c93c970c1951a52c72f9e99c9e4279 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 21:02:53 -0000 The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=6b8ef0d428c93c970c1951a52c72f9e99c9e4279 commit 6b8ef0d428c93c970c1951a52c72f9e99c9e4279 Author: Alexander V. Chernikov AuthorDate: 2021-04-09 21:30:10 +0000 Commit: Alexander V. Chernikov CommitDate: 2021-04-14 22:54:11 +0000 Add batched update support for the fib algo. Initial fib algo implementation was build on a very simple set of principles w.r.t updates: 1) algorithm is ether able to apply the change synchronously (DIR24-8) or requires full rebuild (bsearch, lradix). 2) framework falls back to rebuild on every error (memory allocation, nhg limit, other internal algo errors, etc). This changes brings the new "intermediate" concept - batched updates. Algotirhm can indicate that the particular update has to be handled in batched fashion (FLM_BATCH). The framework will write this update and other updates to the temporary buffer instead of pushing them to the algo callback. Depending on the update rate, the framework will batch 50..1024 ms of updates and submit them to a different algo callback. This functionality is handy for the slow-to-rebuild algorithms like DXR. Differential Revision: https://reviews.freebsd.org/D29588 Reviewed by: zec MFC after: 2 weeks --- sys/net/route/fib_algo.c | 135 +++++++++++++++++++++++++++++++++++++++++++++-- sys/net/route/fib_algo.h | 25 ++++++++- 2 files changed, 154 insertions(+), 6 deletions(-) diff --git a/sys/net/route/fib_algo.c b/sys/net/route/fib_algo.c index 622026668764..4803bafdbae1 100644 --- a/sys/net/route/fib_algo.c +++ b/sys/net/route/fib_algo.c @@ -151,6 +151,7 @@ enum fib_callout_action { FDA_NONE, /* No callout scheduled */ FDA_REBUILD, /* Asks to rebuild algo instance */ FDA_EVAL, /* Asks to evaluate if the current algo is still be best */ + FDA_BATCH, /* Asks to submit batch of updates to the algo */ }; struct fib_sync_status { @@ -158,6 +159,7 @@ struct fib_sync_status { uint32_t num_changes; /* number of changes since sync */ uint32_t bucket_changes; /* num changes within the current bucket */ uint64_t bucket_id; /* 50ms bucket # */ + struct fib_change_queue fd_change_queue;/* list of scheduled entries */ }; /* @@ -170,6 +172,7 @@ struct fib_data { uint32_t fd_dead:1; /* Scheduled for deletion */ uint32_t fd_linked:1; /* true if linked */ uint32_t fd_need_rebuild:1; /* true if rebuild scheduled */ + uint32_t fd_batch:1; /* true if batched notification scheduled */ uint8_t fd_family; /* family */ uint32_t fd_fibnum; /* fibnum */ uint32_t fd_failed_rebuilds; /* stat: failed rebuilds */ @@ -383,6 +386,8 @@ print_op_result(enum flm_op_result result) return "success"; case FLM_REBUILD: return "rebuild"; + case FLM_BATCH: + return "batch"; case FLM_ERROR: return "error"; } @@ -508,6 +513,8 @@ schedule_fd_rebuild(struct fib_data *fd, const char *reason) if (!fd->fd_need_rebuild) { fd->fd_need_rebuild = true; + /* Stop batch updates */ + fd->fd_batch = false; /* * Potentially re-schedules pending callout @@ -568,7 +575,7 @@ mark_diverge_time(struct fib_data *fd) * the update gets delayed, up to maximum delay threshold. */ static void -update_rebuild_delay(struct fib_data *fd) +update_rebuild_delay(struct fib_data *fd, enum fib_callout_action action) { uint32_t bucket_id, new_delay = 0; struct timeval tv; @@ -616,7 +623,7 @@ update_rebuild_delay(struct fib_data *fd) add_tv_diff_ms(&new_tv, new_delay); int32_t delay_ms = get_tv_diff_ms(&tv, &new_tv); - schedule_callout(fd, FDA_REBUILD, delay_ms); + schedule_callout(fd, action, delay_ms); } } @@ -626,8 +633,9 @@ update_algo_state(struct fib_data *fd) RIB_WLOCK_ASSERT(fd->fd_rh); - if (fd->fd_need_rebuild) { - update_rebuild_delay(fd); + if (fd->fd_batch || fd->fd_need_rebuild) { + enum fib_callout_action action = fd->fd_need_rebuild ? FDA_REBUILD : FDA_BATCH; + update_rebuild_delay(fd, action); return; } @@ -664,6 +672,77 @@ need_immediate_sync(struct fib_data *fd, struct rib_cmd_info *rc) return (false); } +static bool +apply_rtable_changes(struct fib_data *fd) +{ + enum flm_op_result result; + struct fib_change_queue *q = &fd->fd_ss.fd_change_queue; + + result = fd->fd_flm->flm_change_rib_items_cb(fd->fd_rh, q, fd->fd_algo_data); + + if (result == FLM_SUCCESS) { + for (int i = 0; i < q->count; i++) + if (q->entries[i].nh_old) + fib_unref_nhop(fd, q->entries[i].nh_old); + q->count = 0; + } + fd->fd_batch = false; + + return (result == FLM_SUCCESS); +} + +static bool +fill_change_entry(struct fib_data *fd, struct fib_change_entry *ce, struct rib_cmd_info *rc) +{ + int plen = 0; + + switch (fd->fd_family) { + case AF_INET: + rt_get_inet_prefix_plen(rc->rc_rt, &ce->addr4, &plen, &ce->scopeid); + break; + case AF_INET6: + rt_get_inet6_prefix_plen(rc->rc_rt, &ce->addr6, &plen, &ce->scopeid); + break; + } + + ce->plen = plen; + ce->nh_old = rc->rc_nh_old; + ce->nh_new = rc->rc_nh_new; + if (ce->nh_new != NULL) { + if (fib_ref_nhop(fd, ce->nh_new) == 0) + return (false); + } + + return (true); +} + +static bool +queue_rtable_change(struct fib_data *fd, struct rib_cmd_info *rc) +{ + struct fib_change_queue *q = &fd->fd_ss.fd_change_queue; + + if (q->count >= q->size) { + uint32_t q_size; + + if (q->size == 0) + q_size = 256; /* ~18k memory */ + else + q_size = q->size * 2; + + size_t size = q_size * sizeof(struct fib_change_entry); + void *a = realloc(q->entries, size, M_TEMP, M_NOWAIT | M_ZERO); + if (a == NULL) { + FD_PRINTF(LOG_INFO, fd, "Unable to realloc queue for %u elements", + q_size); + return (false); + } + q->entries = a; + q->size = q_size; + } + + return (fill_change_entry(fd, &q->entries[q->count++], rc)); +} + /* * Rib subscription handler. Checks if the algorithm is ready to * receive updates, handles nexthop refcounting and passes change @@ -695,8 +774,26 @@ handle_rtable_change_cb(struct rib_head *rnh, struct rib_cmd_info *rc, * If algo requested rebuild, stop sending updates by default. * This simplifies nexthop refcount handling logic. */ - if (fd->fd_need_rebuild) + if (fd->fd_need_rebuild) { + if (immediate_sync) + rebuild_fd(fd, "rtable change type enforced sync"); + return; + } + + /* + * Algo requested updates to be delivered in batches. + * Add the current change to the queue and return. + */ + if (fd->fd_batch) { + if (immediate_sync) { + if (!queue_rtable_change(fd, rc) || !apply_rtable_changes(fd)) + rebuild_fd(fd, "batch sync failed"); + } else { + if (!queue_rtable_change(fd, rc)) + schedule_fd_rebuild(fd, "batch queue failed"); + } return; + } /* * Maintain guarantee that every nexthop returned by the dataplane @@ -719,6 +816,23 @@ handle_rtable_change_cb(struct rib_head *rnh, struct rib_cmd_info *rc, if (rc->rc_nh_old != NULL) fib_unref_nhop(fd, rc->rc_nh_old); break; + case FLM_BATCH: + + /* + * Algo asks to batch the changes. + */ + if (queue_rtable_change(fd, rc)) { + if (!immediate_sync) { + fd->fd_batch = true; + mark_diverge_time(fd); + update_rebuild_delay(fd, FDA_BATCH); + break; + } + if (apply_rtable_changes(fd)) + break; + } + FD_PRINTF(LOG_ERR, fd, "batched sync failed, force the rebuild"); + case FLM_REBUILD: /* @@ -982,6 +1096,9 @@ destroy_fd_instance(struct fib_data *fd) if (fd->nh_ref_table != NULL) free(fd->nh_ref_table, M_RTABLE); + if (fd->fd_ss.fd_change_queue.entries != NULL) + free(fd->fd_ss.fd_change_queue.entries, M_TEMP); + fib_unref_algo(fd->fd_flm); free(fd, M_RTABLE); @@ -1182,6 +1299,7 @@ execute_callout_action(struct fib_data *fd) RIB_WLOCK_ASSERT(fd->fd_rh); fd->fd_need_rebuild = false; + fd->fd_batch = false; fd->fd_num_changes = 0; /* First, check if we're still OK to use this algo */ @@ -1190,6 +1308,12 @@ execute_callout_action(struct fib_data *fd) if (flm_new != NULL) action = FDA_REBUILD; + if (action == FDA_BATCH) { + /* Try to sync */ + if (!apply_rtable_changes(fd)) + action = FDA_REBUILD; + } + if (action == FDA_REBUILD) result = rebuild_fd_flm(fd, flm_new != NULL ? flm_new : fd->fd_flm); if (flm_new != NULL) @@ -1201,6 +1325,7 @@ execute_callout_action(struct fib_data *fd) /* * Callout for all scheduled fd-related work. * - Checks if the current algo is still the best algo + * - Synchronises algo instance to the rtable (batch usecase) * - Creates a new instance of an algo for af/fib if desired. */ static void diff --git a/sys/net/route/fib_algo.h b/sys/net/route/fib_algo.h index fe66c7ce53d4..d40e245f857d 100644 --- a/sys/net/route/fib_algo.h +++ b/sys/net/route/fib_algo.h @@ -36,6 +36,7 @@ enum flm_op_result { FLM_SUCCESS, /* No errors, operation successful */ FLM_REBUILD, /* Operation cannot be completed, schedule algorithm rebuild */ FLM_ERROR, /* Operation failed, this algo cannot be used */ + FLM_BATCH, /* Operation cannot be completed, algorithm asks to batch changes */ }; struct rib_rtable_info { @@ -51,6 +52,24 @@ struct flm_lookup_key { }; }; +struct fib_change_entry { + union { + struct in_addr addr4; + struct in6_addr addr6; + }; + uint32_t scopeid; + uint8_t plen; + struct nhop_object *nh_old; + struct nhop_object *nh_new; +}; + +struct fib_change_queue { + uint32_t count; + uint32_t size; + struct fib_change_entry *entries; +}; + + typedef struct nhop_object *flm_lookup_t(void *algo_data, const struct flm_lookup_key key, uint32_t scopeid); typedef enum flm_op_result flm_init_t (uint32_t fibnum, struct fib_data *fd, @@ -60,6 +79,8 @@ typedef enum flm_op_result flm_dump_t(struct rtentry *rt, void *data); typedef enum flm_op_result flm_dump_end_t(void *data, struct fib_dp *dp); typedef enum flm_op_result flm_change_t(struct rib_head *rnh, struct rib_cmd_info *rc, void *data); +typedef enum flm_op_result flm_change_batch_t(struct rib_head *rnh, + struct fib_change_queue *q, void *data); typedef uint8_t flm_get_pref_t(const struct rib_rtable_info *rinfo); struct fib_lookup_module { @@ -69,12 +90,14 @@ struct fib_lookup_module { uint32_t flm_flags; /* flags */ uint8_t flm_index; /* internal algo index */ flm_init_t *flm_init_cb; /* instance init */ - flm_destroy_t *flm_destroy_cb; /* destroy instance */ + flm_destroy_t *flm_destroy_cb; /* destroy instance */ flm_change_t *flm_change_rib_item_cb;/* routing table change hook */ flm_dump_t *flm_dump_rib_item_cb; /* routing table dump cb */ flm_dump_end_t *flm_dump_end_cb; /* end of dump */ flm_lookup_t *flm_lookup; /* lookup function */ flm_get_pref_t *flm_get_pref; /* get algo preference */ + flm_change_batch_t *flm_change_rib_items_cb;/* routing table change hook */ + void *spare[8]; /* Spare callbacks */ TAILQ_ENTRY(fib_lookup_module) entries; }; From owner-dev-commits-src-main@freebsd.org Thu Apr 15 21:15:29 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D2BFE5D8B09; Thu, 15 Apr 2021 21:15:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLsZ95c62z4sf9; Thu, 15 Apr 2021 21:15:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B2DA31872E; Thu, 15 Apr 2021 21:15:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FLFTp8090835; Thu, 15 Apr 2021 21:15:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FLFTO9090834; Thu, 15 Apr 2021 21:15:29 GMT (envelope-from git) Date: Thu, 15 Apr 2021 21:15:29 GMT Message-Id: <202104152115.13FLFTO9090834@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Rick Macklem Subject: git: 34256484aff2 - main - Revert "nfsd: cut the Linux NFSv4.1/4.2 some slack w.r.t. RFC5661" MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 34256484aff285f460a98c089b030228448fe19f Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 21:15:29 -0000 The branch main has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=34256484aff285f460a98c089b030228448fe19f commit 34256484aff285f460a98c089b030228448fe19f Author: Rick Macklem AuthorDate: 2021-04-15 21:08:40 +0000 Commit: Rick Macklem CommitDate: 2021-04-15 21:08:40 +0000 Revert "nfsd: cut the Linux NFSv4.1/4.2 some slack w.r.t. RFC5661" This reverts commit 9edaceca8165e2864267547311daf145bb520270. It turns out that the Linux client intentionally does an NFSv4.1 RPC with only a Sequence operation in it and with "seqid + 1" for the slot. This is used to re-synchronize the slot's seqid and the client expects the NFS4ERR_SEQ_MISORDERED error reply. As such, revert the patch, so that the server remains RFC5661 compliant. --- sys/fs/nfs/nfs_commonsubs.c | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/sys/fs/nfs/nfs_commonsubs.c b/sys/fs/nfs/nfs_commonsubs.c index d7009b1e0ca4..4afa4c2d9ab4 100644 --- a/sys/fs/nfs/nfs_commonsubs.c +++ b/sys/fs/nfs/nfs_commonsubs.c @@ -98,11 +98,6 @@ int nfs_maxcopyrange = 10 * 1024 * 1024; SYSCTL_INT(_vfs_nfs, OID_AUTO, maxcopyrange, CTLFLAG_RW, &nfs_maxcopyrange, 0, "Max size of a Copy so RPC times reasonable"); -static int nfs_allowskip_sessionseq = 1; -SYSCTL_INT(_vfs_nfs, OID_AUTO, linuxseqsesshack, CTLFLAG_RW, - &nfs_allowskip_sessionseq, 0, "Allow client to skip ahead one seq# for" - " session slot"); - /* * This array of structures indicates, for V4: * retfh - which of 3 types of calling args are used @@ -4619,7 +4614,7 @@ nfsmout: * Handle an NFSv4.1 Sequence request for the session. * If reply != NULL, use it to return the cached reply, as required. * The client gets a cached reply via this call for callbacks, however the - * server gets a cached reply via the nfsv4_seqsess_cacherep() call. + * server gets a cached reply via the nfsv4_seqsess_cachereply() call. */ int nfsv4_seqsession(uint32_t seqid, uint32_t slotid, uint32_t highslot, @@ -4653,24 +4648,12 @@ nfsv4_seqsession(uint32_t seqid, uint32_t slotid, uint32_t highslot, } else /* No reply cached, so just do it. */ slots[slotid].nfssl_inprog = 1; - } else if (slots[slotid].nfssl_seq + 1 == seqid || - (slots[slotid].nfssl_seq + 2 == seqid && - nfs_allowskip_sessionseq != 0)) { - /* - * Allowing the seqid to be ahead by 2 is technically - * a violation of RFC5661, but it seems harmless to do - * and avoids returning NFSERR_SEQMISORDERED to a - * slightly broken Linux NFSv4.1/4.2 client. - * If the RPCs are really out of order, one with a - * lower seqid will be subsequently received and that - * one will get a NFSERR_SEQMISORDERED reply. - * Can be disabled by setting vfs.nfs.linuxseqsesshack to 0. - */ + } else if ((slots[slotid].nfssl_seq + 1) == seqid) { if (slots[slotid].nfssl_reply != NULL) m_freem(slots[slotid].nfssl_reply); slots[slotid].nfssl_reply = NULL; slots[slotid].nfssl_inprog = 1; - slots[slotid].nfssl_seq = seqid; + slots[slotid].nfssl_seq++; } else error = NFSERR_SEQMISORDERED; return (error); From owner-dev-commits-src-main@freebsd.org Thu Apr 15 22:27:57 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 899895DABA7; Thu, 15 Apr 2021 22:27:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLv9n3T9Vz4wlf; Thu, 15 Apr 2021 22:27:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6A1B819916; Thu, 15 Apr 2021 22:27:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FMRvCQ084773; Thu, 15 Apr 2021 22:27:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FMRv8L084772; Thu, 15 Apr 2021 22:27:57 GMT (envelope-from git) Date: Thu, 15 Apr 2021 22:27:57 GMT Message-Id: <202104152227.13FMRv8L084772@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: cb8d7c44d6ac - main - tcp_syncache: add net.inet.tcp.syncache.see_other sysctl MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cb8d7c44d6acd4f7f6be7f8b762315260f70d896 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 22:27:57 -0000 The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=cb8d7c44d6acd4f7f6be7f8b762315260f70d896 commit cb8d7c44d6acd4f7f6be7f8b762315260f70d896 Author: Gleb Smirnoff AuthorDate: 2021-03-19 07:22:36 +0000 Commit: Gleb Smirnoff CommitDate: 2021-04-15 22:26:48 +0000 tcp_syncache: add net.inet.tcp.syncache.see_other sysctl A security feature from c06f087ccb12 appeared to be a huge bottleneck under SYN flood. To mitigate that add a sysctl that would make syncache(4) globally visible, ignoring UID/GID, jail(2) and mac(4) checks. When turned on, we won't need to call crhold() on the listening socket credential for every incoming SYN packet. Reviewed by: bz --- share/man/man4/syncache.4 | 29 +++++++++++++++++++++++++++-- sys/netinet/tcp_syncache.c | 10 ++++++++-- sys/netinet/tcp_syncache.h | 1 + 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/share/man/man4/syncache.4 b/share/man/man4/syncache.4 index b212b12cde95..26ed225bcce8 100644 --- a/share/man/man4/syncache.4 +++ b/share/man/man4/syncache.4 @@ -12,7 +12,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 22, 2008 +.Dd April 12, 2021 .Dt SYNCACHE 4 .Os .Sh NAME @@ -39,6 +39,8 @@ MIBs for controlling TCP SYN caching .Nm sysctl Cm net.inet.tcp.syncache.rexmtlimit .It .Nm sysctl Cm net.inet.tcp.syncache.count +.It +.Nm sysctl Cm net.inet.tcp.syncache.see_other .El .Sh DESCRIPTION The @@ -150,6 +152,25 @@ Tunable via Number of entries present in the .Nm (read-only). +.It Va see_other +If set to true value, all +.Nm +entries will be visible via +.Va net.inet.tcp.pcblist +sysctl, or via +.Xr netstat 1 , +ignoring all of +.Xr security 7 +UID/GID, +.Xr jail 2 +and +.Xr mac 4 +checks. +If turned off, the visibility checks are enforced. +However, extra +.Xr ucred 9 +referencing is required on every incoming SYN packet processed. +The default is off. .El .Pp Statistics on the performance of the @@ -192,9 +213,13 @@ Connections created from segment containing ACK. .El .Sh SEE ALSO .Xr netstat 1 , +.Xr jail 2 , +.Xr mac , .Xr tcp 4 , +.Xr security 7, .Xr loader 8 , -.Xr sysctl 8 +.Xr sysctl 8 , +.Xr ucred 9 .Sh HISTORY The existing .Nm diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c index 7c6bad415d7d..4cd8411af8d5 100644 --- a/sys/netinet/tcp_syncache.c +++ b/sys/netinet/tcp_syncache.c @@ -191,6 +191,11 @@ SYSCTL_UINT(_net_inet_tcp_syncache, OID_AUTO, hashsize, CTLFLAG_VNET | CTLFLAG_R &VNET_NAME(tcp_syncache.hashsize), 0, "Size of TCP syncache hashtable"); +SYSCTL_BOOL(_net_inet_tcp_syncache, OID_AUTO, see_other, CTLFLAG_VNET | + CTLFLAG_RW, &VNET_NAME(tcp_syncache.see_other), 0, + "All syncache(4) entries are visible, ignoring UID/GID, jail(2) " + "and mac(4) checks"); + static int sysctl_net_inet_tcp_syncache_rexmtlimit_check(SYSCTL_HANDLER_ARGS) { @@ -1409,7 +1414,7 @@ syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, */ KASSERT(SOLISTENING(so), ("%s: %p not listening", __func__, so)); tp = sototcpcb(so); - cred = crhold(so->so_cred); + cred = V_tcp_syncache.see_other ? NULL : crhold(so->so_cred); #ifdef INET6 if (inc->inc_flags & INC_ISIPV6) { @@ -2498,7 +2503,8 @@ syncache_pcblist(struct sysctl_req *req) sch = &V_tcp_syncache.hashbase[i]; SCH_LOCK(sch); TAILQ_FOREACH(sc, &sch->sch_bucket, sc_hash) { - if (cr_cansee(req->td->td_ucred, sc->sc_cred) != 0) + if (sc->sc_cred != NULL && + cr_cansee(req->td->td_ucred, sc->sc_cred) != 0) continue; if (sc->sc_inc.inc_flags & INC_ISIPV6) xt.xt_inp.inp_vflag = INP_IPV6; diff --git a/sys/netinet/tcp_syncache.h b/sys/netinet/tcp_syncache.h index c56dce55f1c1..03e34a89c112 100644 --- a/sys/netinet/tcp_syncache.h +++ b/sys/netinet/tcp_syncache.h @@ -134,6 +134,7 @@ struct tcp_syncache { time_t pause_until; uint8_t pause_backoff; volatile bool paused; + bool see_other; }; /* Internal use for the syncookie functions. */ From owner-dev-commits-src-main@freebsd.org Thu Apr 15 22:50:20 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A5D9C5DB508; Thu, 15 Apr 2021 22:50:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLvgc4M0Gz4xQ1; Thu, 15 Apr 2021 22:50:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8428A19950; Thu, 15 Apr 2021 22:50:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FMoKgm018686; Thu, 15 Apr 2021 22:50:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FMoKff018679; Thu, 15 Apr 2021 22:50:20 GMT (envelope-from git) Date: Thu, 15 Apr 2021 22:50:20 GMT Message-Id: <202104152250.13FMoKff018679@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 77a84a305e00 - main - syncache.4: fix mandoc in cb8d7c44d6a MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 77a84a305e00382618fcdb8b097293e2d25c97f5 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 22:50:20 -0000 The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=77a84a305e00382618fcdb8b097293e2d25c97f5 commit 77a84a305e00382618fcdb8b097293e2d25c97f5 Author: Gleb Smirnoff AuthorDate: 2021-04-15 22:50:01 +0000 Commit: Gleb Smirnoff CommitDate: 2021-04-15 22:50:01 +0000 syncache.4: fix mandoc in cb8d7c44d6a Noticed by: brueffer --- share/man/man4/syncache.4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/syncache.4 b/share/man/man4/syncache.4 index 26ed225bcce8..87b1bf35b8eb 100644 --- a/share/man/man4/syncache.4 +++ b/share/man/man4/syncache.4 @@ -214,9 +214,9 @@ Connections created from segment containing ACK. .Sh SEE ALSO .Xr netstat 1 , .Xr jail 2 , -.Xr mac , +.Xr mac 4 , .Xr tcp 4 , -.Xr security 7, +.Xr security 7 , .Xr loader 8 , .Xr sysctl 8 , .Xr ucred 9 From owner-dev-commits-src-main@freebsd.org Thu Apr 15 23:01:54 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 171C05DBAB2; Thu, 15 Apr 2021 23:01:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLvwy06hlz4y85; Thu, 15 Apr 2021 23:01:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EB3BB1A0B0; Thu, 15 Apr 2021 23:01:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13FN1rXD037142; Thu, 15 Apr 2021 23:01:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13FN1rJa037141; Thu, 15 Apr 2021 23:01:53 GMT (envelope-from git) Date: Thu, 15 Apr 2021 23:01:53 GMT Message-Id: <202104152301.13FN1rJa037141@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Tai-hwa Liang Subject: git: bdf316e892e9 - main - fwip(4): fixing kernel panic when receiving unicast packet MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: avatar X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bdf316e892e9a7afa70e094135b5d05fbc26e867 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2021 23:01:54 -0000 The branch main has been updated by avatar: URL: https://cgit.FreeBSD.org/src/commit/?id=bdf316e892e9a7afa70e094135b5d05fbc26e867 commit bdf316e892e9a7afa70e094135b5d05fbc26e867 Author: Tai-hwa Liang AuthorDate: 2021-04-15 14:24:14 +0000 Commit: Tai-hwa Liang CommitDate: 2021-04-15 22:56:07 +0000 fwip(4): fixing kernel panic when receiving unicast packet Wrapping fwip_unicast_input() with NET_EPOCH_{ENTER,EXIT} to avoid a NET_EPOCH_ASSERT() in netisr_dispatch(). Reviewed by: hselasky MFC after: 2 weeks --- sys/dev/firewire/if_fwip.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/dev/firewire/if_fwip.c b/sys/dev/firewire/if_fwip.c index 46cd56e30748..e45fd67baea7 100644 --- a/sys/dev/firewire/if_fwip.c +++ b/sys/dev/firewire/if_fwip.c @@ -838,6 +838,7 @@ fwip_unicast_input(struct fw_xfer *xfer) uint64_t address; struct mbuf *m; struct m_tag *mtag; + struct epoch_tracker et; struct ifnet *ifp; struct fwip_softc *fwip; struct fw_pkt *fp; @@ -863,6 +864,7 @@ fwip_unicast_input(struct fw_xfer *xfer) } else { rtcode = FWRCODE_COMPLETE; } + NET_EPOCH_ENTER(et); /* * Pick up a new mbuf and stick it on the back of the receive @@ -876,7 +878,7 @@ fwip_unicast_input(struct fw_xfer *xfer) if (rtcode != FWRCODE_COMPLETE) { m_freem(m); if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); - return; + goto done; } if (bpf_peers_present(ifp->if_bpf)) { @@ -911,6 +913,8 @@ fwip_unicast_input(struct fw_xfer *xfer) m->m_pkthdr.rcvif = ifp; firewire_input(ifp, m, fp->mode.wreqb.src); if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); +done: + NET_EPOCH_EXIT(et); } static devclass_t fwip_devclass; From owner-dev-commits-src-main@freebsd.org Fri Apr 16 01:00:07 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C000C5DF1BE; Fri, 16 Apr 2021 01:00:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FLyYM57C9z53qG; Fri, 16 Apr 2021 01:00:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A306E1B3E3; Fri, 16 Apr 2021 01:00:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13G107XR087097; Fri, 16 Apr 2021 01:00:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13G107r7087094; Fri, 16 Apr 2021 01:00:07 GMT (envelope-from git) Date: Fri, 16 Apr 2021 01:00:07 GMT Message-Id: <202104160100.13G107r7087094@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kyle Evans Subject: git: 77c89fa6f5cd - main - modules: remove stale if_wg reference MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 77c89fa6f5cd39c150524e04df1e7330c835229f Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 01:00:07 -0000 The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=77c89fa6f5cd39c150524e04df1e7330c835229f commit 77c89fa6f5cd39c150524e04df1e7330c835229f Author: Kyle Evans AuthorDate: 2021-04-16 00:59:13 +0000 Commit: Kyle Evans CommitDate: 2021-04-16 00:59:13 +0000 modules: remove stale if_wg reference This variable isn't being used anywhere, remove it. --- sys/modules/Makefile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sys/modules/Makefile b/sys/modules/Makefile index 0195ce5064d2..799cb947491f 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -455,10 +455,6 @@ _sctp= sctp _if_stf= if_stf .endif -.if ${MK_INET_SUPPORT} != "no" || defined(ALL_MODULES) -_if_wg= if_wg -.endif - .if ${MK_INET_SUPPORT} != "no" || defined(ALL_MODULES) _if_me= if_me _ipdivert= ipdivert From owner-dev-commits-src-main@freebsd.org Fri Apr 16 02:42:19 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 308195E17AC; Fri, 16 Apr 2021 02:42:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FM0qH0xPpz58MP; Fri, 16 Apr 2021 02:42:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 13CC01CA79; Fri, 16 Apr 2021 02:42:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13G2gIqD028937; Fri, 16 Apr 2021 02:42:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13G2gIYd028936; Fri, 16 Apr 2021 02:42:18 GMT (envelope-from git) Date: Fri, 16 Apr 2021 02:42:18 GMT Message-Id: <202104160242.13G2gIYd028936@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ryan Moeller Subject: git: 407fb44c920a - main - ifconfig: Reuse media state in ifmedia_getstate MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: freqlabs X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 407fb44c920a580a30dfe7d1add796a7b35a5ac7 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 02:42:19 -0000 The branch main has been updated by freqlabs: URL: https://cgit.FreeBSD.org/src/commit/?id=407fb44c920a580a30dfe7d1add796a7b35a5ac7 commit 407fb44c920a580a30dfe7d1add796a7b35a5ac7 Author: Ryan Moeller AuthorDate: 2021-04-16 02:32:25 +0000 Commit: Ryan Moeller CommitDate: 2021-04-16 02:32:25 +0000 ifconfig: Reuse media state in ifmedia_getstate This restores behavior lost in code cleanup, fixing a regression after 2803fa471e77dc8f227fe00bbf075de7feb10022 where changing media options only applies some of the changes, not all. Reported by: np Reviewed by: donner MFC after: immediately Differential Revision: https://reviews.freebsd.org/D29741 --- sbin/ifconfig/ifmedia.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sbin/ifconfig/ifmedia.c b/sbin/ifconfig/ifmedia.c index 66eb40254889..aacf34a13248 100644 --- a/sbin/ifconfig/ifmedia.c +++ b/sbin/ifconfig/ifmedia.c @@ -159,7 +159,10 @@ free: struct ifmediareq * ifmedia_getstate(void) { - static struct ifmediareq *ifmr; + static struct ifmediareq *ifmr = NULL; + + if (ifmr != NULL) + return (ifmr); if (ifconfig_media_get_mediareq(lifh, name, &ifmr) == -1) errc(1, ifconfig_err_errno(lifh), From owner-dev-commits-src-main@freebsd.org Fri Apr 16 07:24:43 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8DF2D5E77B9; Fri, 16 Apr 2021 07:24:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FM7573Zkqz3NYy; Fri, 16 Apr 2021 07:24:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6DBAE20ACA; Fri, 16 Apr 2021 07:24:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13G7OhbN005576; Fri, 16 Apr 2021 07:24:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13G7Oh8v005575; Fri, 16 Apr 2021 07:24:43 GMT (envelope-from git) Date: Fri, 16 Apr 2021 07:24:43 GMT Message-Id: <202104160724.13G7Oh8v005575@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Andrey V. Elsukov" Subject: git: 9bacbf1ae243 - main - ipfw: do not use sleepable malloc in callout context. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ae X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9bacbf1ae243de43d642c3ac0b7318ae0e5c5235 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 07:24:43 -0000 The branch main has been updated by ae: URL: https://cgit.FreeBSD.org/src/commit/?id=9bacbf1ae243de43d642c3ac0b7318ae0e5c5235 commit 9bacbf1ae243de43d642c3ac0b7318ae0e5c5235 Author: Andrey V. Elsukov AuthorDate: 2021-04-16 07:22:44 +0000 Commit: Andrey V. Elsukov CommitDate: 2021-04-16 07:22:44 +0000 ipfw: do not use sleepable malloc in callout context. Use M_NOWAIT flag when hash growing is called from callout. PR: 255041 Reviewed by: kevans MFC after: 10 days Differential Revision: https://reviews.freebsd.org/D29772 --- sys/netpfil/ipfw/ip_fw_dynamic.c | 68 ++++++++++++++++++++++++++++++---------- 1 file changed, 51 insertions(+), 17 deletions(-) diff --git a/sys/netpfil/ipfw/ip_fw_dynamic.c b/sys/netpfil/ipfw/ip_fw_dynamic.c index 7b5a7f60e495..a76e8b1ac667 100644 --- a/sys/netpfil/ipfw/ip_fw_dynamic.c +++ b/sys/netpfil/ipfw/ip_fw_dynamic.c @@ -2582,7 +2582,7 @@ dyn_send_keepalive_ipv6(struct ip_fw_chain *chain) #endif /* INET6 */ static void -dyn_grow_hashtable(struct ip_fw_chain *chain, uint32_t new) +dyn_grow_hashtable(struct ip_fw_chain *chain, uint32_t new, int flags) { #ifdef INET6 struct dyn_ipv6ck_slist *ipv6, *ipv6_parent; @@ -2600,31 +2600,64 @@ dyn_grow_hashtable(struct ip_fw_chain *chain, uint32_t new) DYN_DEBUG("grow hash size %u -> %u", V_curr_dyn_buckets, new); /* * Allocate and initialize new lists. - * XXXAE: on memory pressure this can disable callout timer. */ bucket_lock = malloc(new * sizeof(struct mtx), M_IPFW, - M_WAITOK | M_ZERO); + flags | M_ZERO); + if (bucket_lock == NULL) + return; + + ipv4 = ipv4_parent = NULL; + ipv4_add = ipv4_del = ipv4_parent_add = ipv4_parent_del = NULL; +#ifdef INET6 + ipv6 = ipv6_parent = NULL; + ipv6_add = ipv6_del = ipv6_parent_add = ipv6_parent_del = NULL; +#endif + ipv4 = malloc(new * sizeof(struct dyn_ipv4ck_slist), M_IPFW, - M_WAITOK | M_ZERO); + flags | M_ZERO); + if (ipv4 == NULL) + goto bad; ipv4_parent = malloc(new * sizeof(struct dyn_ipv4ck_slist), M_IPFW, - M_WAITOK | M_ZERO); - ipv4_add = malloc(new * sizeof(uint32_t), M_IPFW, M_WAITOK | M_ZERO); - ipv4_del = malloc(new * sizeof(uint32_t), M_IPFW, M_WAITOK | M_ZERO); + flags | M_ZERO); + if (ipv4_parent == NULL) + goto bad; + ipv4_add = malloc(new * sizeof(uint32_t), M_IPFW, flags | M_ZERO); + if (ipv4_add == NULL) + goto bad; + ipv4_del = malloc(new * sizeof(uint32_t), M_IPFW, flags | M_ZERO); + if (ipv4_del == NULL) + goto bad; ipv4_parent_add = malloc(new * sizeof(uint32_t), M_IPFW, - M_WAITOK | M_ZERO); + flags | M_ZERO); + if (ipv4_parent_add == NULL) + goto bad; ipv4_parent_del = malloc(new * sizeof(uint32_t), M_IPFW, - M_WAITOK | M_ZERO); + flags | M_ZERO); + if (ipv4_parent_del == NULL) + goto bad; #ifdef INET6 ipv6 = malloc(new * sizeof(struct dyn_ipv6ck_slist), M_IPFW, - M_WAITOK | M_ZERO); + flags | M_ZERO); + if (ipv6 == NULL) + goto bad; ipv6_parent = malloc(new * sizeof(struct dyn_ipv6ck_slist), M_IPFW, - M_WAITOK | M_ZERO); - ipv6_add = malloc(new * sizeof(uint32_t), M_IPFW, M_WAITOK | M_ZERO); - ipv6_del = malloc(new * sizeof(uint32_t), M_IPFW, M_WAITOK | M_ZERO); + flags | M_ZERO); + if (ipv6_parent == NULL) + goto bad; + ipv6_add = malloc(new * sizeof(uint32_t), M_IPFW, flags | M_ZERO); + if (ipv6_add == NULL) + goto bad; + ipv6_del = malloc(new * sizeof(uint32_t), M_IPFW, flags | M_ZERO); + if (ipv6_del == NULL) + goto bad; ipv6_parent_add = malloc(new * sizeof(uint32_t), M_IPFW, - M_WAITOK | M_ZERO); + flags | M_ZERO); + if (ipv6_parent_add == NULL) + goto bad; ipv6_parent_del = malloc(new * sizeof(uint32_t), M_IPFW, - M_WAITOK | M_ZERO); + flags | M_ZERO); + if (ipv6_parent_del == NULL) + goto bad; #endif for (bucket = 0; bucket < new; bucket++) { DYN_BUCKET_LOCK_INIT(bucket_lock, bucket); @@ -2695,6 +2728,7 @@ dyn_grow_hashtable(struct ip_fw_chain *chain, uint32_t new) /* Release old resources */ while (bucket-- != 0) DYN_BUCKET_LOCK_DESTROY(bucket_lock, bucket); +bad: free(bucket_lock, M_IPFW); free(ipv4, M_IPFW); free(ipv4_parent, M_IPFW); @@ -2762,7 +2796,7 @@ dyn_tick(void *vnetx) buckets = 1 << fls(V_dyn_count); if (buckets > V_dyn_buckets_max) buckets = V_dyn_buckets_max; - dyn_grow_hashtable(&V_layer3_chain, buckets); + dyn_grow_hashtable(&V_layer3_chain, buckets, M_NOWAIT); } callout_reset_on(&V_dyn_timeout, hz, dyn_tick, vnetx, 0); @@ -3187,7 +3221,7 @@ ipfw_dyn_init(struct ip_fw_chain *chain) /* Initialize buckets. */ V_curr_dyn_buckets = 0; V_dyn_bucket_lock = NULL; - dyn_grow_hashtable(chain, 256); + dyn_grow_hashtable(chain, 256, M_WAITOK); if (IS_DEFAULT_VNET(curvnet)) dyn_hp_cache = malloc(mp_ncpus * sizeof(void *), M_IPFW, From owner-dev-commits-src-main@freebsd.org Fri Apr 16 07:56:36 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E11D5E84C2; Fri, 16 Apr 2021 07:56:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FM7nw39Hbz3QF6; Fri, 16 Apr 2021 07:56:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 51F4C212A9; Fri, 16 Apr 2021 07:56:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13G7uahx045394; Fri, 16 Apr 2021 07:56:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13G7uaEh045393; Fri, 16 Apr 2021 07:56:36 GMT (envelope-from git) Date: Fri, 16 Apr 2021 07:56:36 GMT Message-Id: <202104160756.13G7uaEh045393@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Edward Tomasz Napierala Subject: git: 4b45c2bb83a1 - main - linux: make fstatat(2) handle AT_EMPTY_PATH MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: trasz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4b45c2bb83a1d7aded0c424d65595cc576760dc7 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 07:56:36 -0000 The branch main has been updated by trasz: URL: https://cgit.FreeBSD.org/src/commit/?id=4b45c2bb83a1d7aded0c424d65595cc576760dc7 commit 4b45c2bb83a1d7aded0c424d65595cc576760dc7 Author: Edward Tomasz Napierala AuthorDate: 2021-04-16 07:52:59 +0000 Commit: Edward Tomasz Napierala CommitDate: 2021-04-16 07:56:19 +0000 linux: make fstatat(2) handle AT_EMPTY_PATH Without it, Qt5 apps from Focal fail to start, being unable to load their plugins. It's also necessary for glibc 2.33, as found in recent Arch snapshots. PR: 254112 Reviewed By: kib Sponsored by: The FreeBSD Foundation, EPSRC Differential Revision: https://reviews.freebsd.org/D28192 --- sys/compat/linux/linux_stats.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sys/compat/linux/linux_stats.c b/sys/compat/linux/linux_stats.c index 01f9cada670b..c88f6f53bdd7 100644 --- a/sys/compat/linux/linux_stats.c +++ b/sys/compat/linux/linux_stats.c @@ -632,10 +632,14 @@ linux_fstatat64(struct thread *td, struct linux_fstatat64_args *args) int error, dfd, flag; struct stat buf; - if (args->flag & ~LINUX_AT_SYMLINK_NOFOLLOW) + if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) { + linux_msg(td, "fstatat64 unsupported flag 0x%x", args->flag); return (EINVAL); + } flag = (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) ? AT_SYMLINK_NOFOLLOW : 0; + flag |= (args->flag & LINUX_AT_EMPTY_PATH) ? + AT_EMPTY_PATH : 0; dfd = (args->dfd == LINUX_AT_FDCWD) ? AT_FDCWD : args->dfd; if (!LUSECONVPATH(td)) { @@ -661,10 +665,15 @@ linux_newfstatat(struct thread *td, struct linux_newfstatat_args *args) int error, dfd, flag; struct stat buf; - if (args->flag & ~LINUX_AT_SYMLINK_NOFOLLOW) + if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) { + linux_msg(td, "fstatat unsupported flag 0x%x", args->flag); return (EINVAL); + } + flag = (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) ? AT_SYMLINK_NOFOLLOW : 0; + flag |= (args->flag & LINUX_AT_EMPTY_PATH) ? + AT_EMPTY_PATH : 0; dfd = (args->dfd == LINUX_AT_FDCWD) ? AT_FDCWD : args->dfd; if (!LUSECONVPATH(td)) { From owner-dev-commits-src-main@freebsd.org Fri Apr 16 15:28:36 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BAD7A5D4FF4; Fri, 16 Apr 2021 15:28:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMKqS4x24z4X70; Fri, 16 Apr 2021 15:28:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9C159270BA; Fri, 16 Apr 2021 15:28:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13GFSavI043033; Fri, 16 Apr 2021 15:28:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13GFSaPV043032; Fri, 16 Apr 2021 15:28:36 GMT (envelope-from git) Date: Fri, 16 Apr 2021 15:28:36 GMT Message-Id: <202104161528.13GFSaPV043032@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Edward Tomasz Napierala Subject: git: e47823b8312b - main - linux: support AT_EMPTY_PATH flag in fchownat(2) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: trasz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e47823b8312b7cb61c5c8cb8e1eb981994e3a0b4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 15:28:36 -0000 The branch main has been updated by trasz: URL: https://cgit.FreeBSD.org/src/commit/?id=e47823b8312b7cb61c5c8cb8e1eb981994e3a0b4 commit e47823b8312b7cb61c5c8cb8e1eb981994e3a0b4 Author: Edward Tomasz Napierala AuthorDate: 2021-04-16 15:26:43 +0000 Commit: Edward Tomasz Napierala CommitDate: 2021-04-16 15:27:20 +0000 linux: support AT_EMPTY_PATH flag in fchownat(2) This fixes rsyslog package installation scripts in Bionic. Reviewed By: kib Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D29108 --- sys/compat/linux/linux_file.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/compat/linux/linux_file.c b/sys/compat/linux/linux_file.c index 438b100d4e21..6b02c2efb88e 100644 --- a/sys/compat/linux/linux_file.c +++ b/sys/compat/linux/linux_file.c @@ -1740,12 +1740,17 @@ linux_fchownat(struct thread *td, struct linux_fchownat_args *args) char *path; int error, dfd, flag; - if (args->flag & ~LINUX_AT_SYMLINK_NOFOLLOW) + if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) { + linux_msg(td, "fchownat unsupported flag 0x%x", args->flag); return (EINVAL); + } - dfd = (args->dfd == LINUX_AT_FDCWD) ? AT_FDCWD : args->dfd; flag = (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) == 0 ? 0 : AT_SYMLINK_NOFOLLOW; + flag |= (args->flag & LINUX_AT_EMPTY_PATH) == 0 ? 0 : + AT_EMPTY_PATH; + + dfd = (args->dfd == LINUX_AT_FDCWD) ? AT_FDCWD : args->dfd; if (!LUSECONVPATH(td)) { return (kern_fchownat(td, dfd, args->filename, UIO_USERSPACE, args->uid, args->gid, flag)); From owner-dev-commits-src-main@freebsd.org Fri Apr 16 19:51:02 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C841E5DD46A; Fri, 16 Apr 2021 19:51:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMRfG5Mv4z4m5k; Fri, 16 Apr 2021 19:51:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AB42F2A99; Fri, 16 Apr 2021 19:51:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13GJp2jw095440; Fri, 16 Apr 2021 19:51:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13GJp2MZ095439; Fri, 16 Apr 2021 19:51:02 GMT (envelope-from git) Date: Fri, 16 Apr 2021 19:51:02 GMT Message-Id: <202104161951.13GJp2MZ095439@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alexander Motin Subject: git: 8434a65ce49b - main - pms(4): Do not return CAM_REQ_CMP on errors. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8434a65ce49bd6bc6779f0e57b0ce0f4bc46f48e Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 19:51:02 -0000 The branch main has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=8434a65ce49bd6bc6779f0e57b0ce0f4bc46f48e commit 8434a65ce49bd6bc6779f0e57b0ce0f4bc46f48e Author: Alexander Motin AuthorDate: 2021-04-16 19:16:09 +0000 Commit: Alexander Motin CommitDate: 2021-04-16 19:50:33 +0000 pms(4): Do not return CAM_REQ_CMP on errors. It is a direct request for data corruptions, one report of which we have received. I am very surprised that only one. MFC after: 1 week Sponsored by: iXsystems, Inc. --- sys/dev/pms/freebsd/driver/ini/src/agtiapi.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/sys/dev/pms/freebsd/driver/ini/src/agtiapi.c b/sys/dev/pms/freebsd/driver/ini/src/agtiapi.c index 69f488c4199b..4ce32d0ce6c0 100644 --- a/sys/dev/pms/freebsd/driver/ini/src/agtiapi.c +++ b/sys/dev/pms/freebsd/driver/ini/src/agtiapi.c @@ -2629,9 +2629,11 @@ static void agtiapi_PrepareSGListCB( void *arg, { AGTIAPI_PRINTK("agtiapi_PrepareSGListCB: error status 0x%x\n", error); bus_dmamap_unload(pmcsc->buffer_dmat, pccb->CCB_dmamap); - bus_dmamap_destroy(pmcsc->buffer_dmat, pccb->CCB_dmamap); agtiapi_FreeCCB(pmcsc, pccb); - ccb->ccb_h.status = CAM_REQ_CMP; + if (error == EFBIG) + ccb->ccb_h.status = CAM_REQ_TOO_BIG; + else + ccb->ccb_h.status = CAM_REQ_CMP_ERR; xpt_done(ccb); return; } @@ -2643,9 +2645,8 @@ static void agtiapi_PrepareSGListCB( void *arg, " AGTIAPI_MAX_DMA_SEGS %d\n", nsegs, AGTIAPI_MAX_DMA_SEGS ); bus_dmamap_unload(pmcsc->buffer_dmat, pccb->CCB_dmamap); - bus_dmamap_destroy(pmcsc->buffer_dmat, pccb->CCB_dmamap); agtiapi_FreeCCB(pmcsc, pccb); - ccb->ccb_h.status = CAM_REQ_CMP; + ccb->ccb_h.status = CAM_REQ_TOO_BIG; xpt_done(ccb); return; } @@ -3689,9 +3690,11 @@ static void agtiapi_PrepareSMPSGListCB( void *arg, AGTIAPI_PRINTK( "agtiapi_PrepareSMPSGListCB: error status 0x%x\n", error ); bus_dmamap_unload( pmcsc->buffer_dmat, pccb->CCB_dmamap ); - bus_dmamap_destroy( pmcsc->buffer_dmat, pccb->CCB_dmamap ); agtiapi_FreeCCB( pmcsc, pccb ); - ccb->ccb_h.status = CAM_REQ_CMP; + if (error == EFBIG) + ccb->ccb_h.status = CAM_REQ_TOO_BIG; + else + ccb->ccb_h.status = CAM_REQ_CMP_ERR; xpt_done( ccb ); return; } @@ -3703,9 +3706,8 @@ static void agtiapi_PrepareSMPSGListCB( void *arg, "AGTIAPI_MAX_DMA_SEGS %d\n", nsegs, AGTIAPI_MAX_DMA_SEGS ); bus_dmamap_unload( pmcsc->buffer_dmat, pccb->CCB_dmamap ); - bus_dmamap_destroy( pmcsc->buffer_dmat, pccb->CCB_dmamap ); agtiapi_FreeCCB( pmcsc, pccb ); - ccb->ccb_h.status = CAM_REQ_CMP; + ccb->ccb_h.status = CAM_REQ_TOO_BIG; xpt_done( ccb ); return; } @@ -4410,7 +4412,7 @@ static int agtiapi_QueueSMP(struct agtiapi_softc *pmcsc, union ccb * ccb) if ((pccb = agtiapi_GetCCB(pmcsc)) == NULL) { AGTIAPI_PRINTK("agtiapi_QueueSMP: GetCCB ERROR\n"); - ccb->ccb_h.status = CAM_REQ_CMP; + ccb->ccb_h.status = CAM_REQ_CMP_ERR; xpt_done(ccb); return tiBusy; } From owner-dev-commits-src-main@freebsd.org Fri Apr 16 19:51:04 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 17CBA5DD88E; Fri, 16 Apr 2021 19:51:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMRfH6ZRRz4m5p; Fri, 16 Apr 2021 19:51:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CE5C625D0; Fri, 16 Apr 2021 19:51:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13GJp3q2095461; Fri, 16 Apr 2021 19:51:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13GJp3SO095460; Fri, 16 Apr 2021 19:51:03 GMT (envelope-from git) Date: Fri, 16 Apr 2021 19:51:03 GMT Message-Id: <202104161951.13GJp3SO095460@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alexander Motin Subject: git: 3e347834200b - main - pms(4): Limit maximum I/O size to 256KB instead of 1MB. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3e347834200b5d91a33384e696793e4ac20a44d4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 19:51:04 -0000 The branch main has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=3e347834200b5d91a33384e696793e4ac20a44d4 commit 3e347834200b5d91a33384e696793e4ac20a44d4 Author: Alexander Motin AuthorDate: 2021-04-16 19:39:01 +0000 Commit: Alexander Motin CommitDate: 2021-04-16 19:50:34 +0000 pms(4): Limit maximum I/O size to 256KB instead of 1MB. There is a weird limit of AGTIAPI_MAX_DMA_SEGS (128) S/G segments per I/O since the initial driver import. I don't know why it was added, can only guess some hardware limitation, but in worst case it means maximum I/O size of 508KB. Respect it to be safe, rounding to 256KB. MFC after: 1 week Sponsored by: iXsystems, Inc. --- sys/dev/pms/freebsd/driver/ini/src/agdef.h | 2 +- sys/dev/pms/freebsd/driver/ini/src/agtiapi.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/pms/freebsd/driver/ini/src/agdef.h b/sys/dev/pms/freebsd/driver/ini/src/agdef.h index 4c2ba2867f5f..b58741a434c7 100644 --- a/sys/dev/pms/freebsd/driver/ini/src/agdef.h +++ b/sys/dev/pms/freebsd/driver/ini/src/agdef.h @@ -62,7 +62,7 @@ EW 09-17-2004 1.0.0 Constant definitions #define AGTIAPI_MAX_DEVICE_7H 256 /*Max devices per channel in 7H */ #define AGTIAPI_MAX_DEVICE_8H 512 /*Max devices per channel in 8H*/ #define AGTIAPI_MAX_CAM_Q_DEPTH 1024 -#define AGTIAPI_NSEGS (btoc(maxphys) + 1) +#define AGTIAPI_NSEGS (MIN(btoc(maxphys), 64) + 1) /* ** Adapter specific defines */ diff --git a/sys/dev/pms/freebsd/driver/ini/src/agtiapi.c b/sys/dev/pms/freebsd/driver/ini/src/agtiapi.c index 4ce32d0ce6c0..a2b20c9e9264 100644 --- a/sys/dev/pms/freebsd/driver/ini/src/agtiapi.c +++ b/sys/dev/pms/freebsd/driver/ini/src/agtiapi.c @@ -1834,7 +1834,7 @@ static void agtiapi_cam_action( struct cam_sim *sim, union ccb * ccb ) cpi->max_target = maxTargets - 1; cpi->max_lun = AGTIAPI_MAX_LUN; /* Max supported I/O size, in bytes. */ - cpi->maxio = ulmin(1024 * 1024, maxphys); + cpi->maxio = ctob(AGTIAPI_NSEGS - 1); cpi->initiator_id = 255; strlcpy(cpi->sim_vid, "FreeBSD", SIM_IDLEN); strlcpy(cpi->hba_vid, "PMC", HBA_IDLEN); From owner-dev-commits-src-main@freebsd.org Fri Apr 16 20:10:36 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D20FF5DDFC7; Fri, 16 Apr 2021 20:10:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMS4r5fB7z4mwm; Fri, 16 Apr 2021 20:10:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B4DAD2AE4; Fri, 16 Apr 2021 20:10:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13GKAaDA022291; Fri, 16 Apr 2021 20:10:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13GKAa3i022290; Fri, 16 Apr 2021 20:10:36 GMT (envelope-from git) Date: Fri, 16 Apr 2021 20:10:36 GMT Message-Id: <202104162010.13GKAa3i022290@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alfredo Dal'Ava Junior" Subject: git: b8bc6b7954e2 - main - opal_console: fix serial console output corruption on powerpc64 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: alfredo X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b8bc6b7954e27edb449503004ef52b8b97585545 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 20:10:36 -0000 The branch main has been updated by alfredo: URL: https://cgit.FreeBSD.org/src/commit/?id=b8bc6b7954e27edb449503004ef52b8b97585545 commit b8bc6b7954e27edb449503004ef52b8b97585545 Author: Alfredo Dal'Ava Junior AuthorDate: 2021-04-16 22:51:15 +0000 Commit: Alfredo Dal'Ava Junior CommitDate: 2021-04-16 23:10:09 +0000 opal_console: fix serial console output corruption on powerpc64 Adds OPAL_CONSOLE_WRITE error handling and implements a call to OPAL_CONSOLE_WRITE_BUFFER_SPACE to verify if there's enough space before writing to console. This fixes serial port output getting corrupted on fast writes, like on "dmesg" output. Tested on Raptor Blackbird running powerpc64 BE kernel Reviewed by: luporl Sponsored by: Eldorado Reserach Institute (eldorado.org.br) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29063 --- sys/powerpc/powernv/opal.h | 1 + sys/powerpc/powernv/opal_console.c | 49 ++++++++++++++++++++++++++++++++------ 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/sys/powerpc/powernv/opal.h b/sys/powerpc/powernv/opal.h index d7a81e33f809..8e39a39b6c9a 100644 --- a/sys/powerpc/powernv/opal.h +++ b/sys/powerpc/powernv/opal.h @@ -56,6 +56,7 @@ int opal_call(uint64_t token, ...); #define OPAL_PCI_CONFIG_WRITE_HALF_WORD 17 #define OPAL_PCI_CONFIG_WRITE_WORD 18 #define OPAL_PCI_EEH_FREEZE_STATUS 23 +#define OPAL_CONSOLE_WRITE_BUFFER_SPACE 25 #define OPAL_PCI_EEH_FREEZE_CLEAR 26 #define OPAL_PCI_PHB_MMIO_ENABLE 27 #define OPAL_PCI_SET_PHB_MEM_WINDOW 28 diff --git a/sys/powerpc/powernv/opal_console.c b/sys/powerpc/powernv/opal_console.c index 7b953d2679fb..8f6c88f81f7c 100644 --- a/sys/powerpc/powernv/opal_console.c +++ b/sys/powerpc/powernv/opal_console.c @@ -171,6 +171,24 @@ uart_opal_real_unmap_outbuffer(uint64_t *len) mtx_unlock_spin(&opalcons_buffer.mtx); } +static int64_t +uart_opal_console_write_buffer_space(int vtermid) +{ + int64_t buffer_space_val = 0; + vm_paddr_t buffer_space_ptr; + + if (pmap_bootstrapped) + buffer_space_ptr = vtophys(&buffer_space_val); + else + buffer_space_ptr = (vm_paddr_t)&buffer_space_val; + + if (opal_call(OPAL_CONSOLE_WRITE_BUFFER_SPACE, vtermid, + buffer_space_ptr) != OPAL_SUCCESS) + return (-1); + + return (be64toh(buffer_space_val)); +} + static int uart_opal_probe_node(struct uart_opal_softc *sc) { @@ -420,12 +438,12 @@ uart_opal_put(struct uart_opal_softc *sc, void *buffer, size_t bufsize) len -= 4; } -#if 0 - if (err != OPAL_SUCCESS) - len = 0; -#endif + if (err == OPAL_SUCCESS) + return (len); + else if (err == OPAL_BUSY_EVENT) + return(0); - return (len); + return (-1); } static int @@ -481,11 +499,28 @@ uart_opal_ttyoutwakeup(struct tty *tp) struct uart_opal_softc *sc; char buffer[8]; int len; + int64_t buffer_space; sc = tty_softc(tp); - while ((len = ttydisc_getc(tp, buffer, sizeof(buffer))) != 0) - uart_opal_put(sc, buffer, len); + while ((len = ttydisc_getc(tp, buffer, sizeof(buffer))) != 0) { + int bytes_written = 0; + while (bytes_written == 0) { + buffer_space = uart_opal_console_write_buffer_space(sc->vtermid); + if (buffer_space == -1) + /* OPAL failure or invalid terminal */ + break; + else if (buffer_space >= len) + bytes_written = uart_opal_put(sc, buffer, len); + + if (bytes_written == 0) + /* OPAL must be busy, poll and retry */ + opal_call(OPAL_POLL_EVENTS, NULL); + else if (bytes_written == -1) + /* OPAL failure or invalid terminal */ + break; + } + } } static void From owner-dev-commits-src-main@freebsd.org Fri Apr 16 21:14:50 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 966A15E0D9F; Fri, 16 Apr 2021 21:14:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMTVy3vB6z4s5x; Fri, 16 Apr 2021 21:14:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7884A3AB3; Fri, 16 Apr 2021 21:14:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13GLEoi2007172; Fri, 16 Apr 2021 21:14:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13GLEokt007171; Fri, 16 Apr 2021 21:14:50 GMT (envelope-from git) Date: Fri, 16 Apr 2021 21:14:50 GMT Message-Id: <202104162114.13GLEokt007171@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: ef29dd1fecaf - main - newbus: style nit MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ef29dd1fecafb526316f292dbd933985e8338a72 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 21:14:50 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=ef29dd1fecafb526316f292dbd933985e8338a72 commit ef29dd1fecafb526316f292dbd933985e8338a72 Author: Warner Losh AuthorDate: 2021-04-16 16:51:20 +0000 Commit: Warner Losh CommitDate: 2021-04-16 21:14:29 +0000 newbus: style nit Sponsored by: Netflix --- sys/sys/bus.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/bus.h b/sys/sys/bus.h index 25fb86d3c42d..11c8086d7107 100644 --- a/sys/sys/bus.h +++ b/sys/sys/bus.h @@ -443,7 +443,7 @@ bus_space_tag_t bus_generic_get_bus_tag(device_t dev, device_t child); int bus_generic_get_domain(device_t dev, device_t child, int *domain); struct resource_list * - bus_generic_get_resource_list (device_t, device_t); + bus_generic_get_resource_list(device_t, device_t); int bus_generic_map_resource(device_t dev, device_t child, int type, struct resource *r, struct resource_map_request *args, From owner-dev-commits-src-main@freebsd.org Fri Apr 16 21:14:51 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DB89E5E0B69; Fri, 16 Apr 2021 21:14:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMTVz5NM4z4rkB; Fri, 16 Apr 2021 21:14:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 968EB3E95; Fri, 16 Apr 2021 21:14:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13GLEpkw007193; Fri, 16 Apr 2021 21:14:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13GLEpFn007192; Fri, 16 Apr 2021 21:14:51 GMT (envelope-from git) Date: Fri, 16 Apr 2021 21:14:51 GMT Message-Id: <202104162114.13GLEpFn007192@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: d4cdb68049b6 - main - Remove extra space at start of file. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d4cdb68049b62165228901d04fb14f7dc05a80d0 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 21:14:52 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=d4cdb68049b62165228901d04fb14f7dc05a80d0 commit d4cdb68049b62165228901d04fb14f7dc05a80d0 Author: Warner Losh AuthorDate: 2021-04-16 18:40:57 +0000 Commit: Warner Losh CommitDate: 2021-04-16 21:14:29 +0000 Remove extra space at start of file. Sponsored by: Netflix --- UPDATING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index 9b9d8145e06a..198ee4ad207f 100644 --- a/UPDATING +++ b/UPDATING @@ -1,4 +1,4 @@ - Updating Information for FreeBSD current users. +Updating Information for FreeBSD current users. This file is maintained and copyrighted by M. Warner Losh . See end of file for further details. For commonly done items, please see the From owner-dev-commits-src-main@freebsd.org Fri Apr 16 22:40:06 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B4E485E3CE2; Fri, 16 Apr 2021 22:40:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMWPL4mQsz3DB8; Fri, 16 Apr 2021 22:40:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 965B84FA8; Fri, 16 Apr 2021 22:40:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13GMe6Pn016802; Fri, 16 Apr 2021 22:40:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13GMe6oK016799; Fri, 16 Apr 2021 22:40:06 GMT (envelope-from git) Date: Fri, 16 Apr 2021 22:40:06 GMT Message-Id: <202104162240.13GMe6oK016799@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 86046cf55f80 - main - tcp_respond(): fix assertion, should have been done in 08d9c920275. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 86046cf55f806c65e7191323e290333d32bacb70 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 22:40:06 -0000 The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=86046cf55f806c65e7191323e290333d32bacb70 commit 86046cf55f806c65e7191323e290333d32bacb70 Author: Gleb Smirnoff AuthorDate: 2021-04-16 22:19:26 +0000 Commit: Gleb Smirnoff CommitDate: 2021-04-16 22:39:51 +0000 tcp_respond(): fix assertion, should have been done in 08d9c920275. --- sys/netinet/tcp_subr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 05af0076b23a..e973555efbcb 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -1612,7 +1612,7 @@ tcp_respond(struct tcpcb *tp, void *ipgen, struct tcphdr *th, struct mbuf *m, * Packet is associated with a socket, so allow the * label of the response to reflect the socket label. */ - INP_WLOCK_ASSERT(inp); + INP_LOCK_ASSERT(inp); mac_inpcb_create_mbuf(inp, m); } else { /* From owner-dev-commits-src-main@freebsd.org Sat Apr 17 01:21:12 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B18D75E854F; Sat, 17 Apr 2021 01:21:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMZzD4Zhnz3MBT; Sat, 17 Apr 2021 01:21:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9012671AA; Sat, 17 Apr 2021 01:21:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13H1LC25033116; Sat, 17 Apr 2021 01:21:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13H1LCNC033115; Sat, 17 Apr 2021 01:21:12 GMT (envelope-from git) Date: Sat, 17 Apr 2021 01:21:12 GMT Message-Id: <202104170121.13H1LCNC033115@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: 21afed4b1d18 - main - ixgbe: Clarify index name in ixgbe_mc_filter_apply MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 21afed4b1d18578aa8c9fa31e9e677971f8b4300 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 01:21:12 -0000 The branch main has been updated by kbowling (ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=21afed4b1d18578aa8c9fa31e9e677971f8b4300 commit 21afed4b1d18578aa8c9fa31e9e677971f8b4300 Author: Kevin Bowling AuthorDate: 2021-04-17 01:17:43 +0000 Commit: Kevin Bowling CommitDate: 2021-04-17 01:20:41 +0000 ixgbe: Clarify index name in ixgbe_mc_filter_apply "It looks like it would be less confusing to rename 'count' to something like 'idx', since that's what it's used for in this function." Reviewed by: erj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29798 --- sys/dev/ixgbe/if_ix.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c index 6e65f6bae55a..77ef118493a2 100644 --- a/sys/dev/ixgbe/if_ix.c +++ b/sys/dev/ixgbe/if_ix.c @@ -3262,15 +3262,15 @@ ixgbe_config_delay_values(struct adapter *adapter) * Called whenever multicast address list is updated. ************************************************************************/ static u_int -ixgbe_mc_filter_apply(void *arg, struct sockaddr_dl *sdl, u_int count) +ixgbe_mc_filter_apply(void *arg, struct sockaddr_dl *sdl, u_int idx) { struct adapter *adapter = arg; struct ixgbe_mc_addr *mta = adapter->mta; - if (count == MAX_NUM_MULTICAST_ADDRESSES) + if (idx == MAX_NUM_MULTICAST_ADDRESSES) return (0); - bcopy(LLADDR(sdl), mta[count].addr, IXGBE_ETH_LENGTH_OF_ADDRESS); - mta[count].vmdq = adapter->pool; + bcopy(LLADDR(sdl), mta[idx].addr, IXGBE_ETH_LENGTH_OF_ADDRESS); + mta[idx].vmdq = adapter->pool; return (1); } /* ixgbe_mc_filter_apply */ From owner-dev-commits-src-main@freebsd.org Sat Apr 17 13:50:26 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3CD085D73B0; Sat, 17 Apr 2021 13:50:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMvbk19Ctz4jJF; Sat, 17 Apr 2021 13:50:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1699C192D9; Sat, 17 Apr 2021 13:50:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HDoPT1025777; Sat, 17 Apr 2021 13:50:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HDoPQL025776; Sat, 17 Apr 2021 13:50:25 GMT (envelope-from git) Date: Sat, 17 Apr 2021 13:50:25 GMT Message-Id: <202104171350.13HDoPQL025776@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Richard Scheffenegger Subject: git: d1de2b05a001 - main - tcp: Rename rfc6675_pipe to sack.revised, and enable by default MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rscheff X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d1de2b05a001d3d80f633f576f4909c2686dda3d Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 13:50:26 -0000 The branch main has been updated by rscheff: URL: https://cgit.FreeBSD.org/src/commit/?id=d1de2b05a001d3d80f633f576f4909c2686dda3d commit d1de2b05a001d3d80f633f576f4909c2686dda3d Author: Richard Scheffenegger AuthorDate: 2021-04-17 12:59:30 +0000 Commit: Richard Scheffenegger CommitDate: 2021-04-17 12:59:45 +0000 tcp: Rename rfc6675_pipe to sack.revised, and enable by default As full support of RFC6675 is in place, deprecating net.inet.tcp.rfc6675_pipe and enabling by default net.inet.tcp.sack.revised. Reviewed By: #transport, kbowling, rrs Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D28702 --- share/man/man4/tcp.4 | 25 ++++++++++++++----------- sys/netinet/cc/cc_cubic.c | 2 +- sys/netinet/cc/cc_htcp.c | 2 +- sys/netinet/cc/cc_newreno.c | 2 +- sys/netinet/tcp_input.c | 11 +++-------- sys/netinet/tcp_sack.c | 12 +++++++++--- sys/netinet/tcp_var.h | 4 ++-- 7 files changed, 31 insertions(+), 27 deletions(-) diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 index d01505e58427..cbb8021226fe 100644 --- a/share/man/man4/tcp.4 +++ b/share/man/man4/tcp.4 @@ -34,7 +34,7 @@ .\" From: @(#)tcp.4 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd April 8, 2021 +.Dd April 17, 2021 .Dt TCP 4 .Os .Sh NAME @@ -558,16 +558,8 @@ Helpful when a misconfigured token bucket traffic policer causes persistent high losses leading to RTO, but reduces PRR effectiveness in more common settings (default is false). .It Va rfc6675_pipe -Calculate the bytes in flight using the algorithm described in RFC 6675, and -is also an improvement when Proportional Rate Reduction is enabled. -Also enables two other mechanisms from RFC6675. -Rescue Retransmission helps timely loss recovery, when the trailing segments -of a transmission are lost, while no additional data is ready to be sent. -In case a partial ACK without a SACK block is received during SACK loss -recovery, the trailing segment is immediately resent, rather than waiting -for a Retransmission timeout. -SACK loss recovery is also engaged, once two segments plus one byte are -SACKed - even if no traditional duplicate ACKs were seen. +Deprecated and superseded by +.Va sack.revised .It Va rfc3042 Enable the Limited Transmit algorithm as described in RFC 3042. It helps avoid timeouts on lossy links and also when the congestion window @@ -584,6 +576,17 @@ Enable support for RFC 2018, TCP Selective Acknowledgment option, which allows the receiver to inform the sender about all successfully arrived segments, allowing the sender to retransmit the missing segments only. +.It Va sack.revised +Enables three updated mechanisms from RFC6675 (default is true). +Calculate the bytes in flight using the algorithm described in RFC 6675, and +is also an improvement when Proportional Rate Reduction is enabled. +Next, Rescue Retransmission helps timely loss recovery, when the trailing segments +of a transmission are lost, while no additional data is ready to be sent. +In case a partial ACK without a SACK block is received during SACK loss +recovery, the trailing segment is immediately resent, rather than waiting +for a Retransmission timeout. +Finally, SACK loss recovery is also engaged, once two segments plus one byte are +SACKed - even if no traditional duplicate ACKs were observed. .It Va sack.maxholes Maximum number of SACK holes per connection. Defaults to 128. diff --git a/sys/netinet/cc/cc_cubic.c b/sys/netinet/cc/cc_cubic.c index 210806c2f4f7..56b87ba4089b 100644 --- a/sys/netinet/cc/cc_cubic.c +++ b/sys/netinet/cc/cc_cubic.c @@ -373,7 +373,7 @@ cubic_post_recovery(struct cc_var *ccv) * * XXXLAS: Find a way to do this without needing curack */ - if (V_tcp_do_rfc6675_pipe) + if (V_tcp_do_newsack) pipe = tcp_compute_pipe(ccv->ccvc.tcp); else pipe = CCV(ccv, snd_max) - ccv->curack; diff --git a/sys/netinet/cc/cc_htcp.c b/sys/netinet/cc/cc_htcp.c index b5739142c9e5..d109f2c4af4a 100644 --- a/sys/netinet/cc/cc_htcp.c +++ b/sys/netinet/cc/cc_htcp.c @@ -366,7 +366,7 @@ htcp_post_recovery(struct cc_var *ccv) * * XXXLAS: Find a way to do this without needing curack */ - if (V_tcp_do_rfc6675_pipe) + if (V_tcp_do_newsack) pipe = tcp_compute_pipe(ccv->ccvc.tcp); else pipe = CCV(ccv, snd_max) - ccv->curack; diff --git a/sys/netinet/cc/cc_newreno.c b/sys/netinet/cc/cc_newreno.c index 84f8b6a5eb1a..daf4e3351ffa 100644 --- a/sys/netinet/cc/cc_newreno.c +++ b/sys/netinet/cc/cc_newreno.c @@ -302,7 +302,7 @@ newreno_post_recovery(struct cc_var *ccv) * * XXXLAS: Find a way to do this without needing curack */ - if (V_tcp_do_rfc6675_pipe) + if (V_tcp_do_newsack) pipe = tcp_compute_pipe(ccv->ccvc.tcp); else pipe = CCV(ccv, snd_max) - ccv->curack; diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index cfb0989a7203..ed184de4a4bf 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -168,11 +168,6 @@ SYSCTL_INT(_net_inet_tcp, OID_AUTO, newcwv, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(tcp_do_newcwv), 0, "Enable New Congestion Window Validation per RFC7661"); -VNET_DEFINE(int, tcp_do_rfc6675_pipe) = 0; -SYSCTL_INT(_net_inet_tcp, OID_AUTO, rfc6675_pipe, CTLFLAG_VNET | CTLFLAG_RW, - &VNET_NAME(tcp_do_rfc6675_pipe), 0, - "Use calculated pipe/in-flight bytes per RFC 6675"); - VNET_DEFINE(int, tcp_do_rfc3042) = 1; SYSCTL_INT(_net_inet_tcp, OID_AUTO, rfc3042, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(tcp_do_rfc3042), 0, @@ -2595,7 +2590,7 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so, * we have less than 1/2 the original window's * worth of data in flight. */ - if (V_tcp_do_rfc6675_pipe) + if (V_tcp_do_newsack) awnd = tcp_compute_pipe(tp); else awnd = (tp->snd_nxt - tp->snd_fack) + @@ -2612,7 +2607,7 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so, goto drop; } else if (tp->t_dupacks == tcprexmtthresh || (tp->t_flags & TF_SACK_PERMIT && - V_tcp_do_rfc6675_pipe && + V_tcp_do_newsack && tp->sackhint.sacked_bytes > (tcprexmtthresh - 1) * maxseg)) { enter_recovery: @@ -3940,7 +3935,7 @@ tcp_do_prr_ack(struct tcpcb *tp, struct tcphdr *th, struct tcpopt *to) * network. */ del_data = tp->sackhint.delivered_data; - if (V_tcp_do_rfc6675_pipe) + if (V_tcp_do_newsack) pipe = tcp_compute_pipe(tp); else pipe = (tp->snd_nxt - tp->snd_fack) + tp->sackhint.sack_bytes_rexmit; diff --git a/sys/netinet/tcp_sack.c b/sys/netinet/tcp_sack.c index f8d983da723b..a28bb40a8332 100644 --- a/sys/netinet/tcp_sack.c +++ b/sys/netinet/tcp_sack.c @@ -130,10 +130,16 @@ VNET_DECLARE(struct uma_zone *, sack_hole_zone); SYSCTL_NODE(_net_inet_tcp, OID_AUTO, sack, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, "TCP SACK"); + VNET_DEFINE(int, tcp_do_sack) = 1; -#define V_tcp_do_sack VNET(tcp_do_sack) SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, enable, CTLFLAG_VNET | CTLFLAG_RW, - &VNET_NAME(tcp_do_sack), 0, "Enable/Disable TCP SACK support"); + &VNET_NAME(tcp_do_sack), 0, + "Enable/Disable TCP SACK support"); + +VNET_DEFINE(int, tcp_do_newsack) = 1; +SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, revised, CTLFLAG_VNET | CTLFLAG_RW, + &VNET_NAME(tcp_do_newsack), 0, + "Use revised SACK loss recovery per RFC 6675"); VNET_DEFINE(int, tcp_sack_maxholes) = 128; SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, maxholes, CTLFLAG_VNET | CTLFLAG_RW, @@ -826,7 +832,7 @@ tcp_sack_partialack(struct tcpcb *tp, struct tcphdr *th) * the trailing packets of a window are lost and no further data * is available for sending. */ - if ((V_tcp_do_rfc6675_pipe) && + if ((V_tcp_do_newsack) && SEQ_LT(th->th_ack, tp->snd_recover) && (tp->snd_recover == tp->snd_max) && TAILQ_EMPTY(&tp->snd_holes) && diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h index 48e4c5c8e89a..4d28cab80d89 100644 --- a/sys/netinet/tcp_var.h +++ b/sys/netinet/tcp_var.h @@ -846,7 +846,7 @@ VNET_DECLARE(int, tcp_tolerate_missing_ts); VNET_DECLARE(int, tcp_do_rfc3042); VNET_DECLARE(int, tcp_do_rfc3390); VNET_DECLARE(int, tcp_do_rfc3465); -VNET_DECLARE(int, tcp_do_rfc6675_pipe); +VNET_DECLARE(int, tcp_do_newsack); VNET_DECLARE(int, tcp_do_sack); VNET_DECLARE(int, tcp_do_tso); VNET_DECLARE(int, tcp_ecn_maxretries); @@ -891,7 +891,7 @@ VNET_DECLARE(struct inpcbinfo, tcbinfo); #define V_tcp_do_rfc3042 VNET(tcp_do_rfc3042) #define V_tcp_do_rfc3390 VNET(tcp_do_rfc3390) #define V_tcp_do_rfc3465 VNET(tcp_do_rfc3465) -#define V_tcp_do_rfc6675_pipe VNET(tcp_do_rfc6675_pipe) +#define V_tcp_do_newsack VNET(tcp_do_newsack) #define V_tcp_do_sack VNET(tcp_do_sack) #define V_tcp_do_tso VNET(tcp_do_tso) #define V_tcp_ecn_maxretries VNET(tcp_ecn_maxretries) From owner-dev-commits-src-main@freebsd.org Sat Apr 17 14:02:54 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B69CF5D7B83; Sat, 17 Apr 2021 14:02:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMvt64mtsz4kK8; Sat, 17 Apr 2021 14:02:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 96D0619773; Sat, 17 Apr 2021 14:02:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HE2sqd044483; Sat, 17 Apr 2021 14:02:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HE2spl044482; Sat, 17 Apr 2021 14:02:54 GMT (envelope-from git) Date: Sat, 17 Apr 2021 14:02:54 GMT Message-Id: <202104171402.13HE2spl044482@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Vincenzo Maffione Subject: git: 13c4641188d4 - main - netmap: make sure rings are disabled during resets MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vmaffione X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 13c4641188d4f012644c39c34499d96a5bbe50af Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 14:02:54 -0000 The branch main has been updated by vmaffione: URL: https://cgit.FreeBSD.org/src/commit/?id=13c4641188d4f012644c39c34499d96a5bbe50af commit 13c4641188d4f012644c39c34499d96a5bbe50af Author: Vincenzo Maffione AuthorDate: 2021-04-17 14:01:20 +0000 Commit: Vincenzo Maffione CommitDate: 2021-04-17 14:02:47 +0000 netmap: make sure rings are disabled during resets Explicitly disable ring synchronization before calling callbacks that may result in a hardware reset. Before this patch we relied on capturing the down/up events which, however, may not be issued by all drivers. --- sys/dev/netmap/netmap.c | 32 ++++++++++++++++++++++++++++++-- sys/dev/netmap/netmap_kern.h | 10 ---------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/sys/dev/netmap/netmap.c b/sys/dev/netmap/netmap.c index 4835c47d2785..13c412f3ba5b 100644 --- a/sys/dev/netmap/netmap.c +++ b/sys/dev/netmap/netmap.c @@ -1002,6 +1002,22 @@ netmap_mem_drop(struct netmap_adapter *na) } } +static void +netmap_update_hostrings_mode(struct netmap_adapter *na) +{ + enum txrx t; + struct netmap_kring *kring; + int i; + + for_rx_tx(t) { + for (i = nma_get_nrings(na, t); + i < netmap_real_rings(na, t); i++) { + kring = NMR(na, t)[i]; + kring->nr_mode = kring->nr_pending_mode; + } + } +} + /* * Undo everything that was done in netmap_do_regif(). In particular, * call nm_register(ifp,0) to stop netmap mode on the interface and @@ -1031,8 +1047,12 @@ netmap_do_unregif(struct netmap_priv_d *priv) } #endif + netmap_update_hostrings_mode(na); + if (na->active_fds <= 0 || nm_kring_pending(priv)) { + netmap_set_all_rings(na, NM_KR_LOCKED); na->nm_register(na, 0); + netmap_set_all_rings(na, 0); } /* delete rings and buffers that are no longer needed */ @@ -2609,10 +2629,17 @@ netmap_do_regif(struct netmap_priv_d *priv, struct netmap_adapter *na, goto err_rel_excl; } + /* make sure we don't call na->nm_register() when only + * host rings are changing mode + */ + netmap_update_hostrings_mode(na); + if (nm_kring_pending(priv)) { /* Some kring is switching mode, tell the adapter to * react on this. */ + netmap_set_all_rings(na, NM_KR_LOCKED); error = na->nm_register(na, 1); + netmap_set_all_rings(na, 0); if (error) goto err_del_if; } @@ -2634,6 +2661,7 @@ err_del_if: netmap_mem_if_delete(na, nifp); err_rel_excl: netmap_krings_put(priv); + netmap_update_hostrings_mode(na); netmap_mem_rings_delete(na); err_del_krings: if (na->active_fds == 0) @@ -2840,6 +2868,8 @@ netmap_ioctl(struct netmap_priv_d *priv, u_long cmd, caddr_t data, &nifp->ni_bufs_head, req->nr_extra_bufs); if (netmap_verbose) nm_prinf("got %d extra buffers", req->nr_extra_bufs); + } else { + nifp->ni_bufs_head = 0; } req->nr_offset = netmap_mem_if_offset(na->nm_mem, nifp); @@ -4473,7 +4503,6 @@ nm_set_native_flags(struct netmap_adapter *na) na->na_flags |= NAF_NETMAP_ON; nm_os_onenter(ifp); - nm_update_hostrings_mode(na); } void @@ -4487,7 +4516,6 @@ nm_clear_native_flags(struct netmap_adapter *na) return; } - nm_update_hostrings_mode(na); nm_os_onexit(ifp); na->na_flags &= ~NAF_NETMAP_ON; diff --git a/sys/dev/netmap/netmap_kern.h b/sys/dev/netmap/netmap_kern.h index cc452657d8d5..5d8957241c21 100644 --- a/sys/dev/netmap/netmap_kern.h +++ b/sys/dev/netmap/netmap_kern.h @@ -1435,16 +1435,6 @@ nm_iszombie(struct netmap_adapter *na) return na == NULL || (na->na_flags & NAF_ZOMBIE); } -static inline void -nm_update_hostrings_mode(struct netmap_adapter *na) -{ - /* Process nr_mode and nr_pending_mode for host rings. */ - na->tx_rings[na->num_tx_rings]->nr_mode = - na->tx_rings[na->num_tx_rings]->nr_pending_mode; - na->rx_rings[na->num_rx_rings]->nr_mode = - na->rx_rings[na->num_rx_rings]->nr_pending_mode; -} - void nm_set_native_flags(struct netmap_adapter *); void nm_clear_native_flags(struct netmap_adapter *); From owner-dev-commits-src-main@freebsd.org Sat Apr 17 14:28:23 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 667925D80B7; Sat, 17 Apr 2021 14:28:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMwRW2P0pz4kpY; Sat, 17 Apr 2021 14:28:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4522E1994F; Sat, 17 Apr 2021 14:28:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HESNND070484; Sat, 17 Apr 2021 14:28:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HESMdv070481; Sat, 17 Apr 2021 14:28:22 GMT (envelope-from git) Date: Sat, 17 Apr 2021 14:28:22 GMT Message-Id: <202104171428.13HESMdv070481@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Cy Schubert Subject: git: b51f459a2098 - main - wpa: Import wpa_supplicant/hostapd commit f91680c15 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b51f459a2098622c31ed54f5c1bf0e03efce403b Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 14:28:23 -0000 The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=b51f459a2098622c31ed54f5c1bf0e03efce403b commit b51f459a2098622c31ed54f5c1bf0e03efce403b Merge: 13c4641188d4 efec8223892b Author: Cy Schubert AuthorDate: 2021-04-17 14:21:12 +0000 Commit: Cy Schubert CommitDate: 2021-04-17 14:21:12 +0000 wpa: Import wpa_supplicant/hostapd commit f91680c15 This is the April update to vendor/wpa committed upstream 2021/04/07. This is MFV efec8223892b3e677acb46eae84ec3534989971f. Suggested by: philip Reviewed by: philip MFC after: 2 months Differential Revision: https://reviews.freebsd.org/D29744 contrib/wpa/.gitignore | 8 + contrib/wpa/Android.mk | 10 + contrib/wpa/build_release | 47 + contrib/wpa/doc/.gitignore | 14 + contrib/wpa/doc/Makefile | 42 + contrib/wpa/doc/code_structure.doxygen | 315 + contrib/wpa/doc/ctrl_iface.doxygen | 1054 ++ contrib/wpa/doc/dbus.doxygen | 2394 +++++ contrib/wpa/doc/directories.doxygen | 90 + contrib/wpa/doc/doxygen.conf | 1547 +++ contrib/wpa/doc/driver_wrapper.doxygen | 180 + contrib/wpa/doc/eap.doxygen | 87 + contrib/wpa/doc/eap_server.doxygen | 56 + contrib/wpa/doc/hostapd.fig | 264 + contrib/wpa/doc/hostapd_ctrl_iface.doxygen | 66 + contrib/wpa/doc/mainpage.doxygen | 95 + contrib/wpa/doc/p2p.doxygen | 471 + contrib/wpa/doc/p2p_arch.dot | 85 + contrib/wpa/doc/p2p_arch2.dot | 85 + contrib/wpa/doc/p2p_sm.dot | 62 + contrib/wpa/doc/porting.doxygen | 209 + contrib/wpa/doc/testing_tools.doxygen | 201 + contrib/wpa/doc/wpa_supplicant.fig | 247 + contrib/wpa/eap_example/.gitignore | 4 + contrib/wpa/eap_example/Makefile | 119 + contrib/wpa/eap_example/README | 42 + contrib/wpa/eap_example/ca.pem | 55 + contrib/wpa/eap_example/dh.conf | 5 + contrib/wpa/eap_example/eap_example.c | 47 + contrib/wpa/eap_example/eap_example_peer.c | 377 + contrib/wpa/eap_example/eap_example_server.c | 300 + contrib/wpa/eap_example/server-key.pem | 15 + contrib/wpa/eap_example/server.key | 16 + contrib/wpa/eap_example/server.pem | 64 + contrib/wpa/hostapd/.gitignore | 5 + contrib/wpa/hostapd/sae_pk_gen.c | 196 + contrib/wpa/hs20/server/.gitignore | 1 + contrib/wpa/hs20/server/Makefile | 42 + contrib/wpa/hs20/server/ca/clean.sh | 13 + contrib/wpa/hs20/server/ca/est-csrattrs.cnf | 17 + contrib/wpa/hs20/server/ca/est-csrattrs.sh | 4 + contrib/wpa/hs20/server/ca/hs20.oid | 7 + contrib/wpa/hs20/server/ca/ocsp-req.sh | 11 + contrib/wpa/hs20/server/ca/ocsp-responder-ica.sh | 3 + contrib/wpa/hs20/server/ca/ocsp-responder.sh | 3 + contrib/wpa/hs20/server/ca/ocsp-update-cache.sh | 11 + contrib/wpa/hs20/server/ca/openssl-root.cnf | 125 + contrib/wpa/hs20/server/ca/openssl.cnf | 200 + contrib/wpa/hs20/server/ca/setup.sh | 209 + contrib/wpa/hs20/server/ca/w1fi_logo.png | Bin 0 -> 7549 bytes contrib/wpa/hs20/server/hs20-osu-server.txt | 262 + contrib/wpa/hs20/server/hs20_spp_server.c | 207 + contrib/wpa/hs20/server/spp_server.c | 2933 +++++ contrib/wpa/hs20/server/spp_server.h | 36 + contrib/wpa/hs20/server/sql-example.txt | 17 + contrib/wpa/hs20/server/sql.txt | 108 + contrib/wpa/hs20/server/www/add-free.php | 50 + contrib/wpa/hs20/server/www/add-mo.php | 56 + contrib/wpa/hs20/server/www/cert-enroll.php | 39 + contrib/wpa/hs20/server/www/config.php | 7 + contrib/wpa/hs20/server/www/est.php | 232 + contrib/wpa/hs20/server/www/free-remediation.php | 19 + contrib/wpa/hs20/server/www/free.php | 23 + contrib/wpa/hs20/server/www/redirect.php | 32 + contrib/wpa/hs20/server/www/remediation-pw.php | 41 + contrib/wpa/hs20/server/www/remediation.php | 55 + contrib/wpa/hs20/server/www/signup.php | 59 + contrib/wpa/hs20/server/www/spp.php | 168 + contrib/wpa/hs20/server/www/terms.php | 87 + contrib/wpa/hs20/server/www/users.php | 377 + contrib/wpa/radius_example/.gitignore | 2 + contrib/wpa/radius_example/Makefile | 28 + contrib/wpa/radius_example/README | 35 + contrib/wpa/radius_example/radius_example.c | 153 + contrib/wpa/src/build.rules | 109 + contrib/wpa/src/common/brcm_vendor.h | 156 + contrib/wpa/src/common/dpp_auth.c | 1977 ++++ contrib/wpa/src/common/dpp_backup.c | 1265 +++ contrib/wpa/src/common/dpp_crypto.c | 3329 ++++++ contrib/wpa/src/common/dpp_i.h | 160 + contrib/wpa/src/common/dpp_pkex.c | 1324 +++ contrib/wpa/src/common/dpp_reconfig.c | 958 ++ contrib/wpa/src/common/dpp_tcp.c | 1794 ++++ contrib/wpa/src/common/ptksa_cache.c | 321 + contrib/wpa/src/common/ptksa_cache.h | 79 + contrib/wpa/src/common/sae_pk.c | 884 ++ contrib/wpa/src/crypto/sha384-tlsprf.c | 71 + contrib/wpa/src/eap_peer/.gitignore | 1 + contrib/wpa/src/objs.mk | 3 + contrib/wpa/src/utils/config.c | 97 + contrib/wpa/src/utils/config.h | 29 + contrib/wpa/src/utils/ext_password_file.c | 136 + contrib/wpa/tests/.gitignore | 3 + contrib/wpa/tests/Makefile | 99 + contrib/wpa/tests/README | 123 + contrib/wpa/tests/cipher-and-key-mgmt-testing.txt | 377 + contrib/wpa/tests/fuzzing/README | 23 + contrib/wpa/tests/fuzzing/ap-mgmt/.gitignore | 1 + contrib/wpa/tests/fuzzing/ap-mgmt/Makefile | 44 + contrib/wpa/tests/fuzzing/ap-mgmt/ap-mgmt.c | 167 + .../tests/fuzzing/ap-mgmt/corpus/multi-sae-ffc.dat | Bin 0 -> 506 bytes .../wpa/tests/fuzzing/ap-mgmt/corpus/multi-sae.dat | Bin 0 -> 346 bytes contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi.dat | Bin 0 -> 246 bytes contrib/wpa/tests/fuzzing/asn1/.gitignore | 1 + contrib/wpa/tests/fuzzing/asn1/Makefile | 23 + contrib/wpa/tests/fuzzing/asn1/asn1.c | 184 + contrib/wpa/tests/fuzzing/asn1/corpus/ca.der | Bin 0 -> 560 bytes .../asn1/corpus/ocsp-multi-server-cache.der | Bin 0 -> 346 bytes contrib/wpa/tests/fuzzing/asn1/corpus/ocsp-req.der | Bin 0 -> 76 bytes contrib/wpa/tests/fuzzing/build-test.sh | 19 + contrib/wpa/tests/fuzzing/dpp-uri/.gitignore | 1 + contrib/wpa/tests/fuzzing/dpp-uri/Makefile | 43 + contrib/wpa/tests/fuzzing/dpp-uri/corpus/1.dat | 1 + contrib/wpa/tests/fuzzing/dpp-uri/corpus/2.dat | 1 + contrib/wpa/tests/fuzzing/dpp-uri/corpus/3.dat | 1 + contrib/wpa/tests/fuzzing/dpp-uri/dpp-uri.c | 51 + contrib/wpa/tests/fuzzing/eap-aka-peer/.gitignore | 1 + contrib/wpa/tests/fuzzing/eap-aka-peer/Makefile | 26 + .../tests/fuzzing/eap-aka-peer/corpus/server.msg | Bin 0 -> 520 bytes .../wpa/tests/fuzzing/eap-aka-peer/eap-aka-peer.c | 131 + .../wpa/tests/fuzzing/eap-mschapv2-peer/.gitignore | 1 + .../wpa/tests/fuzzing/eap-mschapv2-peer/Makefile | 25 + .../fuzzing/eap-mschapv2-peer/corpus/server.msg | Bin 0 -> 304 bytes .../fuzzing/eap-mschapv2-peer/eap-mschapv2-peer.c | 152 + contrib/wpa/tests/fuzzing/eap-sim-peer/.gitignore | 1 + contrib/wpa/tests/fuzzing/eap-sim-peer/Makefile | 26 + .../tests/fuzzing/eap-sim-peer/corpus/server.msg | Bin 0 -> 340 bytes .../wpa/tests/fuzzing/eap-sim-peer/eap-sim-peer.c | 125 + .../wpa/tests/fuzzing/eapol-key-auth/.gitignore | 1 + contrib/wpa/tests/fuzzing/eapol-key-auth/Makefile | 34 + .../tests/fuzzing/eapol-key-auth/corpus/supp.msg | Bin 0 -> 549 bytes .../tests/fuzzing/eapol-key-auth/eapol-key-auth.c | 328 + .../wpa/tests/fuzzing/eapol-key-supp/.gitignore | 1 + contrib/wpa/tests/fuzzing/eapol-key-supp/Makefile | 30 + .../tests/fuzzing/eapol-key-supp/corpus/auth.msg | Bin 0 -> 580 bytes .../tests/fuzzing/eapol-key-supp/eapol-key-supp.c | 331 + contrib/wpa/tests/fuzzing/eapol-supp/.gitignore | 1 + contrib/wpa/tests/fuzzing/eapol-supp/Makefile | 28 + .../fuzzing/eapol-supp/corpus/eap-req-identity.dat | Bin 0 -> 9 bytes .../fuzzing/eapol-supp/corpus/eap-req-sim.dat | Bin 0 -> 24 bytes .../fuzzing/eapol-supp/corpus/eapol-key-m1.dat | Bin 0 -> 99 bytes contrib/wpa/tests/fuzzing/eapol-supp/eapol-supp.c | 198 + contrib/wpa/tests/fuzzing/fuzzer-common.c | 56 + contrib/wpa/tests/fuzzing/fuzzer-common.h | 14 + contrib/wpa/tests/fuzzing/json/.gitignore | 1 + contrib/wpa/tests/fuzzing/json/Makefile | 23 + contrib/wpa/tests/fuzzing/json/corpus/1.json | 1 + contrib/wpa/tests/fuzzing/json/corpus/2.json | 1 + contrib/wpa/tests/fuzzing/json/corpus/3.json | 1 + contrib/wpa/tests/fuzzing/json/json.c | 38 + contrib/wpa/tests/fuzzing/p2p/.gitignore | 1 + contrib/wpa/tests/fuzzing/p2p/Makefile | 23 + .../wpa/tests/fuzzing/p2p/corpus/go-neg-req.dat | Bin 0 -> 155 bytes .../tests/fuzzing/p2p/corpus/invitation-req.dat | Bin 0 -> 123 bytes .../wpa/tests/fuzzing/p2p/corpus/p2ps-pd-req.dat | Bin 0 -> 189 bytes .../wpa/tests/fuzzing/p2p/corpus/proberesp-go.dat | Bin 0 -> 306 bytes contrib/wpa/tests/fuzzing/p2p/corpus/proberesp.dat | Bin 0 -> 209 bytes contrib/wpa/tests/fuzzing/p2p/p2p.c | 178 + contrib/wpa/tests/fuzzing/rules.include | 31 + contrib/wpa/tests/fuzzing/sae/.gitignore | 1 + contrib/wpa/tests/fuzzing/sae/Makefile | 28 + .../sae/corpus/sae-commit-h2e-rejected-groups.dat | Bin 0 -> 102 bytes .../fuzzing/sae/corpus/sae-commit-h2e-token.dat | Bin 0 -> 101 bytes .../tests/fuzzing/sae/corpus/sae-commit-pw-id.dat | Bin 0 -> 101 bytes .../tests/fuzzing/sae/corpus/sae-commit-token.dat | Bin 0 -> 130 bytes .../tests/fuzzing/sae/corpus/sae-commit-valid.dat | Bin 0 -> 98 bytes contrib/wpa/tests/fuzzing/sae/sae.c | 39 + contrib/wpa/tests/fuzzing/tls-client/.gitignore | 1 + contrib/wpa/tests/fuzzing/tls-client/Makefile | 32 + .../wpa/tests/fuzzing/tls-client/corpus/server.msg | Bin 0 -> 1902 bytes contrib/wpa/tests/fuzzing/tls-client/tls-client.c | 154 + contrib/wpa/tests/fuzzing/tls-server/.gitignore | 1 + contrib/wpa/tests/fuzzing/tls-server/Makefile | 32 + .../wpa/tests/fuzzing/tls-server/corpus/client.msg | Bin 0 -> 391 bytes contrib/wpa/tests/fuzzing/tls-server/tls-server.c | 157 + contrib/wpa/tests/fuzzing/wnm/.gitignore | 1 + contrib/wpa/tests/fuzzing/wnm/Makefile | 60 + .../wpa/tests/fuzzing/wnm/corpus/bss-tm-req.dat | Bin 0 -> 31 bytes .../wpa/tests/fuzzing/wnm/corpus/oss-fuzz-0001.dat | Bin 0 -> 64 bytes .../wpa/tests/fuzzing/wnm/corpus/oss-fuzz-0002.dat | Bin 0 -> 104 bytes contrib/wpa/tests/fuzzing/wnm/corpus/wnm-notif.dat | Bin 0 -> 56 bytes contrib/wpa/tests/fuzzing/wnm/wnm.c | 99 + contrib/wpa/tests/fuzzing/x509/.gitignore | 1 + contrib/wpa/tests/fuzzing/x509/Makefile | 27 + contrib/wpa/tests/fuzzing/x509/corpus/ca.der | Bin 0 -> 560 bytes .../wpa/tests/fuzzing/x509/corpus/oss-fuzz-15408 | 1 + contrib/wpa/tests/fuzzing/x509/x509.c | 25 + contrib/wpa/tests/hwsim/.gitignore | 1 + contrib/wpa/tests/hwsim/README | 220 + contrib/wpa/tests/hwsim/auth_serv/as.conf | 27 + contrib/wpa/tests/hwsim/auth_serv/as2.conf | 24 + .../tests/hwsim/auth_serv/ca-and-crl-expired.pem | 90 + contrib/wpa/tests/hwsim/auth_serv/ca-and-crl.pem | 90 + .../wpa/tests/hwsim/auth_serv/ca-incorrect-key.pem | 28 + contrib/wpa/tests/hwsim/auth_serv/ca-incorrect.der | Bin 0 -> 902 bytes contrib/wpa/tests/hwsim/auth_serv/ca-incorrect.pem | 79 + contrib/wpa/tests/hwsim/auth_serv/ca-key.pem | 28 + contrib/wpa/tests/hwsim/auth_serv/ca.der | Bin 0 -> 868 bytes contrib/wpa/tests/hwsim/auth_serv/ca.pem | 79 + contrib/wpa/tests/hwsim/auth_serv/dh.conf | 8 + contrib/wpa/tests/hwsim/auth_serv/dh2.conf | 8 + .../wpa/tests/hwsim/auth_serv/dh_param_3072.pem | 11 + contrib/wpa/tests/hwsim/auth_serv/dsaparam.pem | 14 + contrib/wpa/tests/hwsim/auth_serv/eap_user.conf | 167 + .../wpa/tests/hwsim/auth_serv/eap_user_vlan.conf | 7 + .../wpa/tests/hwsim/auth_serv/ec-ca-openssl.cnf | 111 + contrib/wpa/tests/hwsim/auth_serv/ec-ca.key | 8 + contrib/wpa/tests/hwsim/auth_serv/ec-ca.pem | 13 + contrib/wpa/tests/hwsim/auth_serv/ec-generate.sh | 53 + contrib/wpa/tests/hwsim/auth_serv/ec-server.key | 8 + contrib/wpa/tests/hwsim/auth_serv/ec-server.pem | 53 + contrib/wpa/tests/hwsim/auth_serv/ec-user.key | 8 + contrib/wpa/tests/hwsim/auth_serv/ec-user.pem | 52 + contrib/wpa/tests/hwsim/auth_serv/ec2-ca.key | 9 + contrib/wpa/tests/hwsim/auth_serv/ec2-ca.pem | 15 + contrib/wpa/tests/hwsim/auth_serv/ec2-generate.sh | 67 + contrib/wpa/tests/hwsim/auth_serv/ec2-server.key | 9 + contrib/wpa/tests/hwsim/auth_serv/ec2-server.pem | 58 + .../wpa/tests/hwsim/auth_serv/ec2-user-p256.key | 8 + .../wpa/tests/hwsim/auth_serv/ec2-user-p256.pem | 56 + contrib/wpa/tests/hwsim/auth_serv/ec2-user.key | 9 + contrib/wpa/tests/hwsim/auth_serv/ec2-user.pem | 57 + contrib/wpa/tests/hwsim/auth_serv/hlr_auc_gw.gsm | 17 + .../tests/hwsim/auth_serv/hlr_auc_gw.milenage_db | 16 + .../hwsim/auth_serv/iCA-server/ca-and-root.pem | 160 + .../tests/hwsim/auth_serv/iCA-server/cacert.pem | 81 + .../wpa/tests/hwsim/auth_serv/iCA-server/careq.pem | 16 + .../wpa/tests/hwsim/auth_serv/iCA-server/index.txt | 2 + .../hwsim/auth_serv/iCA-server/index.txt.attr | 1 + .../hwsim/auth_serv/iCA-server/private/cakey.pem | 28 + .../wpa/tests/hwsim/auth_serv/iCA-server/serial | 1 + .../hwsim/auth_serv/iCA-server/server-revoked.key | 28 + .../hwsim/auth_serv/iCA-server/server-revoked.pem | 86 + .../hwsim/auth_serv/iCA-server/server-revoked.req | 16 + .../iCA-server/server-revoked_and_ica.pem | 167 + .../tests/hwsim/auth_serv/iCA-server/server.key | 28 + .../tests/hwsim/auth_serv/iCA-server/server.pem | 86 + .../tests/hwsim/auth_serv/iCA-server/server.req | 16 + .../hwsim/auth_serv/iCA-server/server_and_ica.pem | 167 + .../tests/hwsim/auth_serv/iCA-user/ca-and-root.pem | 160 + .../wpa/tests/hwsim/auth_serv/iCA-user/cacert.pem | 81 + .../wpa/tests/hwsim/auth_serv/iCA-user/careq.pem | 16 + .../wpa/tests/hwsim/auth_serv/iCA-user/index.txt | 1 + .../tests/hwsim/auth_serv/iCA-user/index.txt.attr | 1 + .../hwsim/auth_serv/iCA-user/private/cakey.pem | 28 + contrib/wpa/tests/hwsim/auth_serv/iCA-user/serial | 1 + .../wpa/tests/hwsim/auth_serv/iCA-user/user.key | 28 + .../wpa/tests/hwsim/auth_serv/iCA-user/user.pem | 85 + .../wpa/tests/hwsim/auth_serv/iCA-user/user.req | 16 + .../hwsim/auth_serv/iCA-user/user_and_ica.pem | 166 + contrib/wpa/tests/hwsim/auth_serv/ica-generate.sh | 87 + .../wpa/tests/hwsim/auth_serv/index-revoked.txt | 8 + .../wpa/tests/hwsim/auth_serv/index-unknown.txt | 1 + contrib/wpa/tests/hwsim/auth_serv/index.txt | 8 + .../hwsim/auth_serv/ocsp-multi-server-cache.der | Bin 0 -> 493 bytes contrib/wpa/tests/hwsim/auth_serv/ocsp-req.der | Bin 0 -> 76 bytes .../wpa/tests/hwsim/auth_serv/ocsp-responder.csr | 16 + .../wpa/tests/hwsim/auth_serv/ocsp-responder.key | 28 + .../wpa/tests/hwsim/auth_serv/ocsp-responder.pem | 76 + .../tests/hwsim/auth_serv/ocsp-server-cache.der | Bin 0 -> 490 bytes .../hwsim/auth_serv/ocsp-server-cache.der-invalid | Bin 0 -> 343 bytes contrib/wpa/tests/hwsim/auth_serv/openssl2.cnf | 147 + .../wpa/tests/hwsim/auth_serv/radius_clients.conf | 1 + .../tests/hwsim/auth_serv/radius_clients_ipv6.conf | 1 + .../tests/hwsim/auth_serv/radius_clients_none.conf | 4 + contrib/wpa/tests/hwsim/auth_serv/rootCA/index.txt | 6 + .../tests/hwsim/auth_serv/rootCA/index.txt.attr | 1 + contrib/wpa/tests/hwsim/auth_serv/rootCA/serial | 1 + contrib/wpa/tests/hwsim/auth_serv/rsa3072-ca.key | 40 + contrib/wpa/tests/hwsim/auth_serv/rsa3072-ca.pem | 27 + .../wpa/tests/hwsim/auth_serv/rsa3072-generate.sh | 83 + .../wpa/tests/hwsim/auth_serv/rsa3072-server.key | 40 + .../wpa/tests/hwsim/auth_serv/rsa3072-server.pem | 106 + .../wpa/tests/hwsim/auth_serv/rsa3072-server.req | 22 + .../tests/hwsim/auth_serv/rsa3072-user-rsa2048.key | 28 + .../tests/hwsim/auth_serv/rsa3072-user-rsa2048.pem | 96 + .../tests/hwsim/auth_serv/rsa3072-user-rsa2048.req | 16 + contrib/wpa/tests/hwsim/auth_serv/rsa3072-user.key | 40 + contrib/wpa/tests/hwsim/auth_serv/rsa3072-user.pem | 106 + contrib/wpa/tests/hwsim/auth_serv/rsa3072-user.req | 21 + .../wpa/tests/hwsim/auth_serv/server-certpol.csr | 22 + .../wpa/tests/hwsim/auth_serv/server-certpol.key | 40 + .../wpa/tests/hwsim/auth_serv/server-certpol.pem | 102 + .../wpa/tests/hwsim/auth_serv/server-certpol2.csr | 22 + .../wpa/tests/hwsim/auth_serv/server-certpol2.key | 40 + .../wpa/tests/hwsim/auth_serv/server-certpol2.pem | 102 + .../hwsim/auth_serv/server-eku-client-server.csr | 16 + .../hwsim/auth_serv/server-eku-client-server.key | 28 + .../hwsim/auth_serv/server-eku-client-server.pem | 85 + .../tests/hwsim/auth_serv/server-eku-client.csr | 16 + .../tests/hwsim/auth_serv/server-eku-client.key | 28 + .../tests/hwsim/auth_serv/server-eku-client.pem | 85 + .../wpa/tests/hwsim/auth_serv/server-expired.csr | 16 + .../wpa/tests/hwsim/auth_serv/server-expired.key | 28 + .../wpa/tests/hwsim/auth_serv/server-expired.pem | 85 + .../wpa/tests/hwsim/auth_serv/server-extra.pkcs12 | Bin 0 -> 3418 bytes .../tests/hwsim/auth_serv/server-long-duration.csr | 27 + .../tests/hwsim/auth_serv/server-long-duration.key | 52 + .../tests/hwsim/auth_serv/server-long-duration.pem | 107 + .../tests/hwsim/auth_serv/server-no-dnsname.csr | 16 + .../tests/hwsim/auth_serv/server-no-dnsname.key | 28 + .../tests/hwsim/auth_serv/server-no-dnsname.pem | 85 + contrib/wpa/tests/hwsim/auth_serv/server.csr | 16 + contrib/wpa/tests/hwsim/auth_serv/server.key | 28 + contrib/wpa/tests/hwsim/auth_serv/server.pem | 87 + contrib/wpa/tests/hwsim/auth_serv/server.pkcs12 | Bin 0 -> 2549 bytes .../wpa/tests/hwsim/auth_serv/sha384-server.key | 40 + .../wpa/tests/hwsim/auth_serv/sha384-server.pem | 115 + contrib/wpa/tests/hwsim/auth_serv/sha384-user.key | 38 + contrib/wpa/tests/hwsim/auth_serv/sha384-user.pem | 113 + contrib/wpa/tests/hwsim/auth_serv/sha512-ca.key | 52 + contrib/wpa/tests/hwsim/auth_serv/sha512-ca.pem | 32 + .../wpa/tests/hwsim/auth_serv/sha512-generate.sh | 75 + .../wpa/tests/hwsim/auth_serv/sha512-server.key | 45 + .../wpa/tests/hwsim/auth_serv/sha512-server.pem | 120 + contrib/wpa/tests/hwsim/auth_serv/sha512-user.key | 44 + contrib/wpa/tests/hwsim/auth_serv/sha512-user.pem | 119 + contrib/wpa/tests/hwsim/auth_serv/update.sh | 181 + contrib/wpa/tests/hwsim/auth_serv/user.csr | 16 + contrib/wpa/tests/hwsim/auth_serv/user.key | 28 + contrib/wpa/tests/hwsim/auth_serv/user.key.pkcs8 | 30 + .../tests/hwsim/auth_serv/user.key.pkcs8.pkcs5v15 | 29 + contrib/wpa/tests/hwsim/auth_serv/user.pem | 85 + contrib/wpa/tests/hwsim/auth_serv/user.pkcs12 | Bin 0 -> 2517 bytes contrib/wpa/tests/hwsim/auth_serv/user.rsa-key | 27 + contrib/wpa/tests/hwsim/auth_serv/user2.pkcs12 | Bin 0 -> 3558 bytes contrib/wpa/tests/hwsim/auth_serv/user3.pkcs12 | Bin 0 -> 3524 bytes contrib/wpa/tests/hwsim/build.sh | 83 + contrib/wpa/tests/hwsim/check_kernel.py | 31 + contrib/wpa/tests/hwsim/devdetail.xml | 47 + contrib/wpa/tests/hwsim/devinfo.xml | 7 + contrib/wpa/tests/hwsim/dictionary.radius | 20 + contrib/wpa/tests/hwsim/example-hostapd.config | 116 + contrib/wpa/tests/hwsim/example-setup.txt | 191 + .../wpa/tests/hwsim/example-wpa_supplicant.config | 160 + contrib/wpa/tests/hwsim/fst_module_aux.py | 832 ++ contrib/wpa/tests/hwsim/fst_test_common.py | 97 + contrib/wpa/tests/hwsim/hostapd.py | 882 ++ contrib/wpa/tests/hwsim/hostapd.vlan | 2 + contrib/wpa/tests/hwsim/hostapd.vlan2 | 3 + contrib/wpa/tests/hwsim/hostapd.wlan3.vlan | 2 + contrib/wpa/tests/hwsim/hostapd.wlan4.vlan | 2 + contrib/wpa/tests/hwsim/hostapd.wpa_psk | 5 + contrib/wpa/tests/hwsim/hwsim.py | 114 + contrib/wpa/tests/hwsim/hwsim_utils.py | 246 + contrib/wpa/tests/hwsim/multi-bss-acs.conf | 28 + .../tests/hwsim/multi-bss-iface-per_sta_vif.conf | 42 + contrib/wpa/tests/hwsim/multi-bss-iface.conf | 40 + contrib/wpa/tests/hwsim/multi-bss.conf | 21 + contrib/wpa/tests/hwsim/netlink.py | 237 + contrib/wpa/tests/hwsim/nl80211.py | 357 + contrib/wpa/tests/hwsim/owe-bss-1.conf | 12 + contrib/wpa/tests/hwsim/owe-bss-2.conf | 16 + contrib/wpa/tests/hwsim/p2p0.conf | 3 + contrib/wpa/tests/hwsim/p2p1.conf | 3 + contrib/wpa/tests/hwsim/p2p2.conf | 3 + contrib/wpa/tests/hwsim/p2p_utils.py | 394 + contrib/wpa/tests/hwsim/pps-mo-1.xml | 62 + contrib/wpa/tests/hwsim/radius_das.py | 47 + contrib/wpa/tests/hwsim/remotehost.py | 258 + contrib/wpa/tests/hwsim/rfkill.py | 152 + contrib/wpa/tests/hwsim/run-all.sh | 162 + contrib/wpa/tests/hwsim/run-tests.py | 692 ++ contrib/wpa/tests/hwsim/start.sh | 213 + contrib/wpa/tests/hwsim/stop.sh | 80 + contrib/wpa/tests/hwsim/test_ap_acs.py | 688 ++ contrib/wpa/tests/hwsim/test_ap_ciphers.py | 1200 +++ contrib/wpa/tests/hwsim/test_ap_config.py | 581 + contrib/wpa/tests/hwsim/test_ap_csa.py | 189 + contrib/wpa/tests/hwsim/test_ap_dynamic.py | 586 + contrib/wpa/tests/hwsim/test_ap_eap.py | 7492 +++++++++++++ contrib/wpa/tests/hwsim/test_ap_ft.py | 3461 ++++++ contrib/wpa/tests/hwsim/test_ap_hs20.py | 6496 ++++++++++++ contrib/wpa/tests/hwsim/test_ap_ht.py | 1644 +++ contrib/wpa/tests/hwsim/test_ap_mixed.py | 101 + contrib/wpa/tests/hwsim/test_ap_open.py | 1017 ++ contrib/wpa/tests/hwsim/test_ap_params.py | 972 ++ contrib/wpa/tests/hwsim/test_ap_pmf.py | 1204 +++ contrib/wpa/tests/hwsim/test_ap_psk.py | 3553 +++++++ contrib/wpa/tests/hwsim/test_ap_qosmap.py | 169 + contrib/wpa/tests/hwsim/test_ap_roam.py | 395 + contrib/wpa/tests/hwsim/test_ap_tdls.py | 652 ++ contrib/wpa/tests/hwsim/test_ap_track.py | 437 + contrib/wpa/tests/hwsim/test_ap_vht.py | 1333 +++ contrib/wpa/tests/hwsim/test_ap_vlan.py | 807 ++ contrib/wpa/tests/hwsim/test_ap_wps.py | 10568 +++++++++++++++++++ contrib/wpa/tests/hwsim/test_authsrv.py | 262 + contrib/wpa/tests/hwsim/test_autoscan.py | 81 + contrib/wpa/tests/hwsim/test_bgscan.py | 315 + contrib/wpa/tests/hwsim/test_cert_check.py | 312 + contrib/wpa/tests/hwsim/test_cfg80211.py | 150 + contrib/wpa/tests/hwsim/test_connect_cmd.py | 235 + contrib/wpa/tests/hwsim/test_dbus.py | 6093 +++++++++++ contrib/wpa/tests/hwsim/test_dfs.py | 767 ++ contrib/wpa/tests/hwsim/test_dpp.py | 6874 ++++++++++++ contrib/wpa/tests/hwsim/test_eap.py | 602 ++ contrib/wpa/tests/hwsim/test_eap_proto.py | 10377 ++++++++++++++++++ contrib/wpa/tests/hwsim/test_erp.py | 741 ++ contrib/wpa/tests/hwsim/test_ext_password.py | 112 + contrib/wpa/tests/hwsim/test_fils.py | 2411 +++++ contrib/wpa/tests/hwsim/test_fst_config.py | 553 + contrib/wpa/tests/hwsim/test_fst_module.py | 2825 +++++ contrib/wpa/tests/hwsim/test_gas.py | 2053 ++++ contrib/wpa/tests/hwsim/test_hapd_ctrl.py | 1071 ++ contrib/wpa/tests/hwsim/test_he.py | 1188 +++ contrib/wpa/tests/hwsim/test_hostapd_oom.py | 173 + contrib/wpa/tests/hwsim/test_hs20_filter.py | 205 + contrib/wpa/tests/hwsim/test_hs20_pps_mo.py | 43 + contrib/wpa/tests/hwsim/test_ibss.py | 601 ++ contrib/wpa/tests/hwsim/test_ieee8021x.py | 531 + contrib/wpa/tests/hwsim/test_kernel.py | 128 + contrib/wpa/tests/hwsim/test_macsec.py | 890 ++ contrib/wpa/tests/hwsim/test_mbo.py | 613 ++ contrib/wpa/tests/hwsim/test_module_tests.py | 28 + contrib/wpa/tests/hwsim/test_monitor_interface.py | 94 + contrib/wpa/tests/hwsim/test_mscs.py | 231 + contrib/wpa/tests/hwsim/test_multi_ap.py | 363 + contrib/wpa/tests/hwsim/test_nfc_p2p.py | 848 ++ contrib/wpa/tests/hwsim/test_nfc_wps.py | 709 ++ contrib/wpa/tests/hwsim/test_oce.py | 185 + contrib/wpa/tests/hwsim/test_ocv.py | 1247 +++ contrib/wpa/tests/hwsim/test_offchannel_tx.py | 50 + contrib/wpa/tests/hwsim/test_owe.py | 928 ++ contrib/wpa/tests/hwsim/test_p2p_autogo.py | 936 ++ contrib/wpa/tests/hwsim/test_p2p_channel.py | 1384 +++ contrib/wpa/tests/hwsim/test_p2p_concurrency.py | 286 + contrib/wpa/tests/hwsim/test_p2p_device.py | 552 + contrib/wpa/tests/hwsim/test_p2p_discovery.py | 871 ++ contrib/wpa/tests/hwsim/test_p2p_ext.py | 384 + contrib/wpa/tests/hwsim/test_p2p_grpform.py | 1185 +++ contrib/wpa/tests/hwsim/test_p2p_invitation.py | 195 + contrib/wpa/tests/hwsim/test_p2p_messages.py | 2143 ++++ contrib/wpa/tests/hwsim/test_p2p_persistent.py | 676 ++ contrib/wpa/tests/hwsim/test_p2p_service.py | 586 + contrib/wpa/tests/hwsim/test_p2p_set.py | 128 + contrib/wpa/tests/hwsim/test_p2p_wifi_display.py | 475 + contrib/wpa/tests/hwsim/test_p2ps.py | 1689 +++ contrib/wpa/tests/hwsim/test_pasn.py | 850 ++ contrib/wpa/tests/hwsim/test_pmksa_cache.py | 1267 +++ contrib/wpa/tests/hwsim/test_radio_work.py | 133 + contrib/wpa/tests/hwsim/test_radius.py | 1710 +++ contrib/wpa/tests/hwsim/test_rfkill.py | 242 + contrib/wpa/tests/hwsim/test_rrm.py | 2142 ++++ contrib/wpa/tests/hwsim/test_sae.py | 2722 +++++ contrib/wpa/tests/hwsim/test_sae_pk.py | 462 + contrib/wpa/tests/hwsim/test_scan.py | 2025 ++++ contrib/wpa/tests/hwsim/test_sigma_dut.py | 5264 +++++++++ contrib/wpa/tests/hwsim/test_ssid.py | 127 + contrib/wpa/tests/hwsim/test_sta_dynamic.py | 329 + contrib/wpa/tests/hwsim/test_suite_b.py | 739 ++ contrib/wpa/tests/hwsim/test_tnc.py | 194 + contrib/wpa/tests/hwsim/test_wep.py | 172 + contrib/wpa/tests/hwsim/test_wext.py | 254 + contrib/wpa/tests/hwsim/test_wmediumd.py | 480 + contrib/wpa/tests/hwsim/test_wnm.py | 1984 ++++ contrib/wpa/tests/hwsim/test_wpas_ap.py | 905 ++ contrib/wpa/tests/hwsim/test_wpas_config.py | 656 ++ contrib/wpa/tests/hwsim/test_wpas_ctrl.py | 2159 ++++ contrib/wpa/tests/hwsim/test_wpas_mesh.py | 2534 +++++ contrib/wpa/tests/hwsim/test_wpas_wmm_ac.py | 400 + contrib/wpa/tests/hwsim/tnc/.gitignore | 4 + contrib/wpa/tests/hwsim/tnc/Makefile | 23 + contrib/wpa/tests/hwsim/tnc/hostap2_imc.c | 183 + contrib/wpa/tests/hwsim/tnc/hostap2_imv.c | 203 + contrib/wpa/tests/hwsim/tnc/hostap_imc.c | 72 + contrib/wpa/tests/hwsim/tnc/hostap_imv.c | 66 + contrib/wpa/tests/hwsim/tnc/tnc_config | 4 + contrib/wpa/tests/hwsim/tshark.py | 124 + contrib/wpa/tests/hwsim/utils.py | 314 + contrib/wpa/tests/hwsim/vm/.gitignore | 1 + contrib/wpa/tests/hwsim/vm/README | 80 + contrib/wpa/tests/hwsim/vm/bisect-run.sh | 43 + contrib/wpa/tests/hwsim/vm/build-codecov.sh | 57 + contrib/wpa/tests/hwsim/vm/combine-codecov.sh | 39 + contrib/wpa/tests/hwsim/vm/dbus.conf | 34 + contrib/wpa/tests/hwsim/vm/example-vm-setup.txt | 95 + contrib/wpa/tests/hwsim/vm/inside.sh | 169 + contrib/wpa/tests/hwsim/vm/kernel-config | 175 + contrib/wpa/tests/hwsim/vm/kernel-config.uml | 131 + contrib/wpa/tests/hwsim/vm/parallel-vm.py | 669 ++ contrib/wpa/tests/hwsim/vm/process-codecov.sh | 36 + contrib/wpa/tests/hwsim/vm/uevent.sh | 9 + contrib/wpa/tests/hwsim/vm/vm-run.sh | 202 + contrib/wpa/tests/hwsim/w1fi_logo.png | Bin 0 -> 7549 bytes contrib/wpa/tests/hwsim/wlantest.py | 277 + contrib/wpa/tests/hwsim/wpasupplicant.py | 1649 +++ contrib/wpa/tests/hwsim/wps-ctrl-cred | Bin 0 -> 67 bytes contrib/wpa/tests/hwsim/wps-ctrl-cred2 | Bin 0 -> 59 bytes contrib/wpa/tests/hwsim/wps-mixed-cred | Bin 0 -> 112 bytes contrib/wpa/tests/hwsim/wps-wep-cred | Bin 0 -> 53 bytes contrib/wpa/tests/remote/config.py | 87 + contrib/wpa/tests/remote/hwsim_wrapper.py | 126 + contrib/wpa/tests/remote/monitor.py | 193 + contrib/wpa/tests/remote/run-tests.py | 408 + contrib/wpa/tests/remote/rutils.py | 567 + contrib/wpa/tests/remote/test_devices.py | 124 + contrib/wpa/tests/remote/test_example.py | 141 + contrib/wpa/tests/remote/test_monitor.py | 52 + contrib/wpa/tests/test-aes.c | 624 ++ contrib/wpa/tests/test-base64.c | 42 + contrib/wpa/tests/test-https.c | 225 + contrib/wpa/tests/test-https_server.c | 275 + contrib/wpa/tests/test-list.c | 72 + contrib/wpa/tests/test-md4.c | 93 + contrib/wpa/tests/test-milenage.c | 814 ++ contrib/wpa/tests/test-rc4.c | 250 + contrib/wpa/tests/test-rsa-sig-ver.c | 206 + contrib/wpa/tests/test-sha1.c | 119 + contrib/wpa/tests/test-sha256.c | 119 + contrib/wpa/tests/test-x509v3.c | 62 + contrib/wpa/tests/test_x509v3_nist.sh | 144 + contrib/wpa/tests/test_x509v3_nist2.sh | 177 + contrib/wpa/wlantest/.gitignore | 4 + contrib/wpa/wlantest/Makefile | 87 + contrib/wpa/wlantest/bip.c | 133 + contrib/wpa/wlantest/bss.c | 373 + contrib/wpa/wlantest/ccmp.c | 367 + contrib/wpa/wlantest/ctrl.c | 1471 +++ contrib/wpa/wlantest/gcmp.c | 160 + contrib/wpa/wlantest/inject.c | 341 + contrib/wpa/wlantest/monitor.c | 172 + contrib/wpa/wlantest/process.c | 409 + contrib/wpa/wlantest/readpcap.c | 190 + contrib/wpa/wlantest/rx_data.c | 904 ++ contrib/wpa/wlantest/rx_eapol.c | 1317 +++ contrib/wpa/wlantest/rx_ip.c | 184 + contrib/wpa/wlantest/rx_mgmt.c | 2642 +++++ contrib/wpa/wlantest/rx_tdls.c | 618 ++ contrib/wpa/wlantest/sta.c | 232 + contrib/wpa/wlantest/test_vectors.c | 937 ++ contrib/wpa/wlantest/tkip.c | 428 + contrib/wpa/wlantest/wep.c | 104 + contrib/wpa/wlantest/wired.c | 295 + contrib/wpa/wlantest/wlantest.c | 505 + contrib/wpa/wlantest/wlantest.h | 336 + contrib/wpa/wlantest/wlantest_cli.c | 1865 ++++ contrib/wpa/wlantest/wlantest_ctrl.h | 171 + contrib/wpa/wlantest/writepcap.c | 373 + contrib/wpa/wpa_supplicant/bssid_ignore.c | 221 + contrib/wpa/wpa_supplicant/bssid_ignore.h | 33 + contrib/wpa/wpa_supplicant/examples/dpp-nfc.py | 1186 +++ contrib/wpa/wpa_supplicant/pasn_supplicant.c | 1710 +++ contrib/wpa/wpa_supplicant/robust_av.c | 155 + contrib/wpa/wpa_supplicant/twt.c | 142 + .../wpa_supplicant/wpa_gui-qt4/icons/.gitignore | 2 + contrib/wpa/wpadebug/.gitignore | 4 + contrib/wpa/wpadebug/AndroidManifest.xml | 86 + contrib/wpa/wpadebug/README | 78 + contrib/wpa/wpadebug/build.xml | 17 + contrib/wpa/wpadebug/project.properties | 2 + contrib/wpa/wpadebug/res/layout/cred_edit.xml | 117 + contrib/wpa/wpadebug/res/layout/input_uri.xml | 26 + contrib/wpa/wpadebug/res/layout/main.xml | 160 + contrib/wpa/wpadebug/res/layout/qrcode.xml | 13 + contrib/wpa/wpadebug/res/raw/shell_commands.txt | 2 + contrib/wpa/wpadebug/res/raw/wpa_commands.txt | 9 + .../src/w1/fi/wpadebug/CommandListActivity.java | 130 + .../src/w1/fi/wpadebug/DisplayMessageActivity.java | 49 + .../wpa/wpadebug/src/w1/fi/wpadebug/InputUri.java | 108 + .../wpadebug/src/w1/fi/wpadebug/MainActivity.java | 209 + .../src/w1/fi/wpadebug/QrCodeDisplayActivity.java | 109 + .../src/w1/fi/wpadebug/QrCodeReadActivity.java | 40 + .../src/w1/fi/wpadebug/QrCodeScannerActivity.java | 82 + .../wpadebug/src/w1/fi/wpadebug/WifiReceiver.java | 95 + .../src/w1/fi/wpadebug/WpaCommandListActivity.java | 112 + .../src/w1/fi/wpadebug/WpaCredActivity.java | 263 + .../src/w1/fi/wpadebug/WpaCredEditActivity.java | 55 + .../src/w1/fi/wpadebug/WpaNfcActivity.java | 131 + .../src/w1/fi/wpadebug/WpaWebViewActivity.java | 146 + contrib/wpa/wpaspy/Makefile | 15 + contrib/wpa/wpaspy/setup.py | 22 + contrib/wpa/wpaspy/test.py | 82 + contrib/wpa/wpaspy/wpaspy.c | 245 + contrib/wpa/wpaspy/wpaspy.py | 149 + sys/dev/netmap/netmap.c | 32 +- sys/dev/netmap/netmap_kern.h | 10 + 576 files changed, 200752 insertions(+), 30 deletions(-) diff --cc contrib/wpa/.gitignore index 000000000000,000000000000..b064303ced30 new file mode 100644 --- /dev/null +++ b/contrib/wpa/.gitignore @@@ -1,0 -1,0 +1,8 @@@ ++*.pyc ++*~ ++tests/hwsim/logs ++tests/remote/logs ++wpaspy/build ++**/parallel-vm.log ++tags ++build/ diff --cc contrib/wpa/Android.mk index 000000000000,bd7a4097444b..bd7a4097444b mode 000000,100644..100644 --- a/contrib/wpa/Android.mk +++ b/contrib/wpa/Android.mk diff --cc contrib/wpa/build_release index 000000000000,3aa9bf31963a..3aa9bf31963a mode 000000,100755..100755 --- a/contrib/wpa/build_release +++ b/contrib/wpa/build_release diff --cc contrib/wpa/doc/.gitignore index 000000000000,28c3fe4e99c3..28c3fe4e99c3 mode 000000,100644..100644 --- a/contrib/wpa/doc/.gitignore +++ b/contrib/wpa/doc/.gitignore diff --cc contrib/wpa/doc/Makefile index 000000000000,62af04a74f1f..62af04a74f1f mode 000000,100644..100644 --- a/contrib/wpa/doc/Makefile +++ b/contrib/wpa/doc/Makefile diff --cc contrib/wpa/doc/code_structure.doxygen index 000000000000,454f179753d3..454f179753d3 mode 000000,100644..100644 --- a/contrib/wpa/doc/code_structure.doxygen +++ b/contrib/wpa/doc/code_structure.doxygen diff --cc contrib/wpa/doc/ctrl_iface.doxygen index 000000000000,7dccdc797ef3..7dccdc797ef3 mode 000000,100644..100644 --- a/contrib/wpa/doc/ctrl_iface.doxygen +++ b/contrib/wpa/doc/ctrl_iface.doxygen diff --cc contrib/wpa/doc/dbus.doxygen index 000000000000,8231aac41805..8231aac41805 mode 000000,100644..100644 --- a/contrib/wpa/doc/dbus.doxygen +++ b/contrib/wpa/doc/dbus.doxygen diff --cc contrib/wpa/doc/directories.doxygen index 000000000000,15e5bdae463c..15e5bdae463c mode 000000,100644..100644 --- a/contrib/wpa/doc/directories.doxygen +++ b/contrib/wpa/doc/directories.doxygen diff --cc contrib/wpa/doc/doxygen.conf index 000000000000,3f01173930c4..3f01173930c4 mode 000000,100644..100644 --- a/contrib/wpa/doc/doxygen.conf +++ b/contrib/wpa/doc/doxygen.conf diff --cc contrib/wpa/doc/driver_wrapper.doxygen index 000000000000,66211b3abdfb..66211b3abdfb mode 000000,100644..100644 --- a/contrib/wpa/doc/driver_wrapper.doxygen +++ b/contrib/wpa/doc/driver_wrapper.doxygen diff --cc contrib/wpa/doc/eap.doxygen index 000000000000,472e882004d3..472e882004d3 mode 000000,100644..100644 --- a/contrib/wpa/doc/eap.doxygen +++ b/contrib/wpa/doc/eap.doxygen diff --cc contrib/wpa/doc/eap_server.doxygen index 000000000000,f60ac79b1e01..f60ac79b1e01 mode 000000,100644..100644 --- a/contrib/wpa/doc/eap_server.doxygen +++ b/contrib/wpa/doc/eap_server.doxygen diff --cc contrib/wpa/doc/hostapd.fig index 000000000000,ea4ab3a2894e..ea4ab3a2894e mode 000000,100644..100644 --- a/contrib/wpa/doc/hostapd.fig +++ b/contrib/wpa/doc/hostapd.fig diff --cc contrib/wpa/doc/hostapd_ctrl_iface.doxygen index 000000000000,4d2bac82c43f..4d2bac82c43f mode 000000,100644..100644 --- a/contrib/wpa/doc/hostapd_ctrl_iface.doxygen +++ b/contrib/wpa/doc/hostapd_ctrl_iface.doxygen diff --cc contrib/wpa/doc/mainpage.doxygen index 000000000000,329afea3fa6a..329afea3fa6a mode 000000,100644..100644 --- a/contrib/wpa/doc/mainpage.doxygen +++ b/contrib/wpa/doc/mainpage.doxygen diff --cc contrib/wpa/doc/p2p.doxygen index 000000000000,d4d86e3edfa2..d4d86e3edfa2 mode 000000,100644..100644 --- a/contrib/wpa/doc/p2p.doxygen +++ b/contrib/wpa/doc/p2p.doxygen diff --cc contrib/wpa/doc/p2p_arch.dot index 000000000000,27ae0e2509d4..27ae0e2509d4 mode 000000,100644..100644 --- a/contrib/wpa/doc/p2p_arch.dot +++ b/contrib/wpa/doc/p2p_arch.dot diff --cc contrib/wpa/doc/p2p_arch2.dot index 000000000000,9c7b4b57a17f..9c7b4b57a17f mode 000000,100644..100644 --- a/contrib/wpa/doc/p2p_arch2.dot +++ b/contrib/wpa/doc/p2p_arch2.dot diff --cc contrib/wpa/doc/p2p_sm.dot index 000000000000,640caefcc6ad..640caefcc6ad mode 000000,100644..100644 --- a/contrib/wpa/doc/p2p_sm.dot +++ b/contrib/wpa/doc/p2p_sm.dot diff --cc contrib/wpa/doc/porting.doxygen index 000000000000,b4b78ef0504a..b4b78ef0504a mode 000000,100644..100644 --- a/contrib/wpa/doc/porting.doxygen +++ b/contrib/wpa/doc/porting.doxygen diff --cc contrib/wpa/doc/testing_tools.doxygen index 000000000000,d12652415634..d12652415634 mode 000000,100644..100644 --- a/contrib/wpa/doc/testing_tools.doxygen +++ b/contrib/wpa/doc/testing_tools.doxygen diff --cc contrib/wpa/doc/wpa_supplicant.fig index 000000000000,d2c4306b8e03..d2c4306b8e03 mode 000000,100644..100644 --- a/contrib/wpa/doc/wpa_supplicant.fig +++ b/contrib/wpa/doc/wpa_supplicant.fig diff --cc contrib/wpa/eap_example/.gitignore index 000000000000,4d6d2d1301b2..4d6d2d1301b2 mode 000000,100644..100644 --- a/contrib/wpa/eap_example/.gitignore +++ b/contrib/wpa/eap_example/.gitignore diff --cc contrib/wpa/eap_example/Makefile index 000000000000,691466f03c9a..691466f03c9a mode 000000,100644..100644 --- a/contrib/wpa/eap_example/Makefile +++ b/contrib/wpa/eap_example/Makefile diff --cc contrib/wpa/eap_example/README index 000000000000,0c2921e3be93..0c2921e3be93 mode 000000,100644..100644 --- a/contrib/wpa/eap_example/README +++ b/contrib/wpa/eap_example/README diff --cc contrib/wpa/eap_example/ca.pem index 000000000000,b128893a1e7b..b128893a1e7b mode 000000,100644..100644 --- a/contrib/wpa/eap_example/ca.pem +++ b/contrib/wpa/eap_example/ca.pem diff --cc contrib/wpa/eap_example/dh.conf index 000000000000,7bc83251c592..7bc83251c592 mode 000000,100644..100644 --- a/contrib/wpa/eap_example/dh.conf +++ b/contrib/wpa/eap_example/dh.conf diff --cc contrib/wpa/eap_example/eap_example.c index 000000000000,8a48cd34b030..8a48cd34b030 mode 000000,100644..100644 --- a/contrib/wpa/eap_example/eap_example.c +++ b/contrib/wpa/eap_example/eap_example.c diff --cc contrib/wpa/eap_example/eap_example_peer.c index 000000000000,5fe0cb7fa7f6..5fe0cb7fa7f6 mode 000000,100644..100644 --- a/contrib/wpa/eap_example/eap_example_peer.c +++ b/contrib/wpa/eap_example/eap_example_peer.c diff --cc contrib/wpa/eap_example/eap_example_server.c index 000000000000,3a132bb3466e..3a132bb3466e mode 000000,100644..100644 --- a/contrib/wpa/eap_example/eap_example_server.c +++ b/contrib/wpa/eap_example/eap_example_server.c diff --cc contrib/wpa/eap_example/server-key.pem index 000000000000,0fe2cec47330..0fe2cec47330 mode 000000,100644..100644 --- a/contrib/wpa/eap_example/server-key.pem +++ b/contrib/wpa/eap_example/server-key.pem diff --cc contrib/wpa/eap_example/server.key index 000000000000,1416327bef21..1416327bef21 mode 000000,100644..100644 --- a/contrib/wpa/eap_example/server.key +++ b/contrib/wpa/eap_example/server.key diff --cc contrib/wpa/eap_example/server.pem index 000000000000,93b39b9d5027..93b39b9d5027 mode 000000,100644..100644 --- a/contrib/wpa/eap_example/server.pem +++ b/contrib/wpa/eap_example/server.pem diff --cc contrib/wpa/hostapd/.gitignore index 000000000000,857f3dc4196c..857f3dc4196c mode 000000,100644..100644 --- a/contrib/wpa/hostapd/.gitignore +++ b/contrib/wpa/hostapd/.gitignore diff --cc contrib/wpa/hostapd/sae_pk_gen.c index 000000000000,c31eff75b538..c31eff75b538 mode 000000,100644..100644 --- a/contrib/wpa/hostapd/sae_pk_gen.c +++ b/contrib/wpa/hostapd/sae_pk_gen.c diff --cc contrib/wpa/hs20/server/.gitignore index 000000000000,fecb096c128a..fecb096c128a mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/.gitignore +++ b/contrib/wpa/hs20/server/.gitignore diff --cc contrib/wpa/hs20/server/Makefile index 000000000000,0cab6d6b010a..0cab6d6b010a mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/Makefile +++ b/contrib/wpa/hs20/server/Makefile diff --cc contrib/wpa/hs20/server/ca/clean.sh index 000000000000,c72dcbda45e9..c72dcbda45e9 mode 000000,100755..100755 --- a/contrib/wpa/hs20/server/ca/clean.sh +++ b/contrib/wpa/hs20/server/ca/clean.sh diff --cc contrib/wpa/hs20/server/ca/est-csrattrs.cnf index 000000000000,b50ea00d0b77..b50ea00d0b77 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/ca/est-csrattrs.cnf +++ b/contrib/wpa/hs20/server/ca/est-csrattrs.cnf diff --cc contrib/wpa/hs20/server/ca/est-csrattrs.sh index 000000000000,0b73a0408284..0b73a0408284 mode 000000,100755..100755 --- a/contrib/wpa/hs20/server/ca/est-csrattrs.sh +++ b/contrib/wpa/hs20/server/ca/est-csrattrs.sh diff --cc contrib/wpa/hs20/server/ca/hs20.oid index 000000000000,a829ff29bf44..a829ff29bf44 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/ca/hs20.oid +++ b/contrib/wpa/hs20/server/ca/hs20.oid diff --cc contrib/wpa/hs20/server/ca/ocsp-req.sh index 000000000000,931a20696d02..931a20696d02 mode 000000,100755..100755 --- a/contrib/wpa/hs20/server/ca/ocsp-req.sh +++ b/contrib/wpa/hs20/server/ca/ocsp-req.sh diff --cc contrib/wpa/hs20/server/ca/ocsp-responder-ica.sh index 000000000000,116c6e1c3d01..116c6e1c3d01 mode 000000,100755..100755 --- a/contrib/wpa/hs20/server/ca/ocsp-responder-ica.sh +++ b/contrib/wpa/hs20/server/ca/ocsp-responder-ica.sh diff --cc contrib/wpa/hs20/server/ca/ocsp-responder.sh index 000000000000,620947d01af0..620947d01af0 mode 000000,100755..100755 --- a/contrib/wpa/hs20/server/ca/ocsp-responder.sh +++ b/contrib/wpa/hs20/server/ca/ocsp-responder.sh diff --cc contrib/wpa/hs20/server/ca/ocsp-update-cache.sh index 000000000000,f2b23250cadd..f2b23250cadd mode 000000,100755..100755 --- a/contrib/wpa/hs20/server/ca/ocsp-update-cache.sh +++ b/contrib/wpa/hs20/server/ca/ocsp-update-cache.sh diff --cc contrib/wpa/hs20/server/ca/openssl-root.cnf index 000000000000,5bc50be1dbc9..5bc50be1dbc9 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/ca/openssl-root.cnf +++ b/contrib/wpa/hs20/server/ca/openssl-root.cnf diff --cc contrib/wpa/hs20/server/ca/openssl.cnf index 000000000000,61410138340f..61410138340f mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/ca/openssl.cnf +++ b/contrib/wpa/hs20/server/ca/openssl.cnf diff --cc contrib/wpa/hs20/server/ca/setup.sh index 000000000000,78abcccff455..78abcccff455 mode 000000,100755..100755 --- a/contrib/wpa/hs20/server/ca/setup.sh +++ b/contrib/wpa/hs20/server/ca/setup.sh diff --cc contrib/wpa/hs20/server/ca/w1fi_logo.png index 000000000000,ac7c259fff2e..ac7c259fff2e mode 000000,100644..100644 Binary files differ diff --cc contrib/wpa/hs20/server/hs20-osu-server.txt index 000000000000,22478ad9d2cb..22478ad9d2cb mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/hs20-osu-server.txt +++ b/contrib/wpa/hs20/server/hs20-osu-server.txt diff --cc contrib/wpa/hs20/server/hs20_spp_server.c index 000000000000,347c40a73d6a..347c40a73d6a mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/hs20_spp_server.c +++ b/contrib/wpa/hs20/server/hs20_spp_server.c diff --cc contrib/wpa/hs20/server/spp_server.c index 000000000000,a50e9074f7b4..a50e9074f7b4 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/spp_server.c +++ b/contrib/wpa/hs20/server/spp_server.c diff --cc contrib/wpa/hs20/server/spp_server.h index 000000000000,421974c607b8..421974c607b8 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/spp_server.h +++ b/contrib/wpa/hs20/server/spp_server.h diff --cc contrib/wpa/hs20/server/sql-example.txt index 000000000000,20dcf2f5c688..20dcf2f5c688 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/sql-example.txt +++ b/contrib/wpa/hs20/server/sql-example.txt diff --cc contrib/wpa/hs20/server/sql.txt index 000000000000,2cc6edea4063..2cc6edea4063 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/sql.txt +++ b/contrib/wpa/hs20/server/sql.txt diff --cc contrib/wpa/hs20/server/www/add-free.php index 000000000000,1efc65563274..1efc65563274 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/add-free.php +++ b/contrib/wpa/hs20/server/www/add-free.php diff --cc contrib/wpa/hs20/server/www/add-mo.php index 000000000000,a3b4513531f8..a3b4513531f8 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/add-mo.php +++ b/contrib/wpa/hs20/server/www/add-mo.php diff --cc contrib/wpa/hs20/server/www/cert-enroll.php index 000000000000,f023ca5a5b03..f023ca5a5b03 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/cert-enroll.php +++ b/contrib/wpa/hs20/server/www/cert-enroll.php diff --cc contrib/wpa/hs20/server/www/config.php index 000000000000,4272b102a88c..4272b102a88c mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/config.php +++ b/contrib/wpa/hs20/server/www/config.php diff --cc contrib/wpa/hs20/server/www/est.php index 000000000000,b7fb260d56c4..b7fb260d56c4 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/est.php +++ b/contrib/wpa/hs20/server/www/est.php diff --cc contrib/wpa/hs20/server/www/free-remediation.php index 000000000000,5648b30e8d6b..5648b30e8d6b mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/free-remediation.php +++ b/contrib/wpa/hs20/server/www/free-remediation.php diff --cc contrib/wpa/hs20/server/www/free.php index 000000000000,8195069ed8ff..8195069ed8ff mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/free.php +++ b/contrib/wpa/hs20/server/www/free.php diff --cc contrib/wpa/hs20/server/www/redirect.php index 000000000000,8fc9cd644273..8fc9cd644273 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/redirect.php +++ b/contrib/wpa/hs20/server/www/redirect.php diff --cc contrib/wpa/hs20/server/www/remediation-pw.php index 000000000000,76fdccbdf9f7..76fdccbdf9f7 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/remediation-pw.php +++ b/contrib/wpa/hs20/server/www/remediation-pw.php diff --cc contrib/wpa/hs20/server/www/remediation.php index 000000000000,3628065ac225..3628065ac225 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/remediation.php +++ b/contrib/wpa/hs20/server/www/remediation.php diff --cc contrib/wpa/hs20/server/www/signup.php index 000000000000,80a9d403e8fc..80a9d403e8fc mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/signup.php +++ b/contrib/wpa/hs20/server/www/signup.php diff --cc contrib/wpa/hs20/server/www/spp.php index 000000000000,c56d3d69e0ed..c56d3d69e0ed mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/spp.php +++ b/contrib/wpa/hs20/server/www/spp.php diff --cc contrib/wpa/hs20/server/www/terms.php index 000000000000,acba23ef1ad7..acba23ef1ad7 mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/terms.php +++ b/contrib/wpa/hs20/server/www/terms.php diff --cc contrib/wpa/hs20/server/www/users.php index 000000000000,2bd555275dda..2bd555275dda mode 000000,100644..100644 --- a/contrib/wpa/hs20/server/www/users.php +++ b/contrib/wpa/hs20/server/www/users.php diff --cc contrib/wpa/radius_example/.gitignore index 000000000000,c43e0faab91c..c43e0faab91c mode 000000,100644..100644 --- a/contrib/wpa/radius_example/.gitignore +++ b/contrib/wpa/radius_example/.gitignore diff --cc contrib/wpa/radius_example/Makefile index 000000000000,d58a82c340c6..d58a82c340c6 mode 000000,100644..100644 --- a/contrib/wpa/radius_example/Makefile +++ b/contrib/wpa/radius_example/Makefile diff --cc contrib/wpa/radius_example/README index 000000000000,ec458e3ad7f5..ec458e3ad7f5 mode 000000,100644..100644 --- a/contrib/wpa/radius_example/README +++ b/contrib/wpa/radius_example/README diff --cc contrib/wpa/radius_example/radius_example.c index 000000000000,8b0f47586b05..8b0f47586b05 mode 000000,100644..100644 --- a/contrib/wpa/radius_example/radius_example.c +++ b/contrib/wpa/radius_example/radius_example.c diff --cc contrib/wpa/src/build.rules index 000000000000,acda8847284d..acda8847284d mode 000000,100644..100644 --- a/contrib/wpa/src/build.rules +++ b/contrib/wpa/src/build.rules diff --cc contrib/wpa/src/common/brcm_vendor.h index 000000000000,f163dea73768..f163dea73768 mode 000000,100644..100644 *** 9830 LINES SKIPPED *** From owner-dev-commits-src-main@freebsd.org Sat Apr 17 14:49:52 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C6E555D8E6C; Sat, 17 Apr 2021 14:49:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMwwJ5Knmz4lg8; Sat, 17 Apr 2021 14:49:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A9EED1A39A; Sat, 17 Apr 2021 14:49:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HEnqgA097310; Sat, 17 Apr 2021 14:49:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HEnqEW097309; Sat, 17 Apr 2021 14:49:52 GMT (envelope-from git) Date: Sat, 17 Apr 2021 14:49:52 GMT Message-Id: <202104171449.13HEnqEW097309@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alexander Motin Subject: git: 0f29396e493b - main - mpt(4): Remove incorrect S/G segments limits. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0f29396e493bd87ffa6a63fcb602b12e79d21a1e Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 14:49:52 -0000 The branch main has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=0f29396e493bd87ffa6a63fcb602b12e79d21a1e commit 0f29396e493bd87ffa6a63fcb602b12e79d21a1e Author: Alexander Motin AuthorDate: 2021-04-17 14:41:35 +0000 Commit: Alexander Motin CommitDate: 2021-04-17 14:49:44 +0000 mpt(4): Remove incorrect S/G segments limits. First, two of those four checks are unreachable. Second, I don't believe there should be ">=" instead of ">". Third, bus_dma(9) already returns the same EFBIG if ">". This fixes false I/O errors in worst S/G cases with maxphys >= 2MB. MFC after: 1 week --- sys/dev/mpt/mpt_cam.c | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/sys/dev/mpt/mpt_cam.c b/sys/dev/mpt/mpt_cam.c index 90c84eee2442..64776d673674 100644 --- a/sys/dev/mpt/mpt_cam.c +++ b/sys/dev/mpt/mpt_cam.c @@ -1292,10 +1292,6 @@ mpt_execute_req_a64(void *arg, bus_dma_segment_t *dm_segs, int nseg, int error) hdrp = req->req_vbuf; mpt_off = req->req_vbuf; - if (error == 0 && ((uint32_t)nseg) >= mpt->max_seg_cnt) { - error = EFBIG; - } - if (error == 0) { switch (hdrp->Function) { case MPI_FUNCTION_SCSI_IO_REQUEST: @@ -1315,12 +1311,6 @@ mpt_execute_req_a64(void *arg, bus_dma_segment_t *dm_segs, int nseg, int error) } } - if (error == 0 && ((uint32_t)nseg) >= mpt->max_seg_cnt) { - error = EFBIG; - mpt_prt(mpt, "segment count %d too large (max %u)\n", - nseg, mpt->max_seg_cnt); - } - bad: if (error != 0) { if (error != EFBIG && error != ENOMEM) { @@ -1694,10 +1684,6 @@ mpt_execute_req(void *arg, bus_dma_segment_t *dm_segs, int nseg, int error) hdrp = req->req_vbuf; mpt_off = req->req_vbuf; - if (error == 0 && ((uint32_t)nseg) >= mpt->max_seg_cnt) { - error = EFBIG; - } - if (error == 0) { switch (hdrp->Function) { case MPI_FUNCTION_SCSI_IO_REQUEST: @@ -1716,12 +1702,6 @@ mpt_execute_req(void *arg, bus_dma_segment_t *dm_segs, int nseg, int error) } } - if (error == 0 && ((uint32_t)nseg) >= mpt->max_seg_cnt) { - error = EFBIG; - mpt_prt(mpt, "segment count %d too large (max %u)\n", - nseg, mpt->max_seg_cnt); - } - bad: if (error != 0) { if (error != EFBIG && error != ENOMEM) { From owner-dev-commits-src-main@freebsd.org Sat Apr 17 15:48:16 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2CA785DAA7B; Sat, 17 Apr 2021 15:48:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FMyCh0nJ7z4pDk; Sat, 17 Apr 2021 15:48:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D6BC1AD53; Sat, 17 Apr 2021 15:48:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HFmFHg076944; Sat, 17 Apr 2021 15:48:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HFmD1E076936; Sat, 17 Apr 2021 15:48:13 GMT (envelope-from git) Date: Sat, 17 Apr 2021 15:48:13 GMT Message-Id: <202104171548.13HFmD1E076936@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Cy Schubert Subject: git: 0aad5de37cf5 - main - Revert wpa import. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0aad5de37cf518ab1d6cc7bc5d813c41e64ce9b8 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 15:48:16 -0000 The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=0aad5de37cf518ab1d6cc7bc5d813c41e64ce9b8 commit 0aad5de37cf518ab1d6cc7bc5d813c41e64ce9b8 Author: Cy Schubert AuthorDate: 2021-04-17 15:44:52 +0000 Commit: Cy Schubert CommitDate: 2021-04-17 15:44:52 +0000 Revert wpa import. b51f459a2098622c31ed54f5c1bf0e03efce403b resulted in a mismerge due to having to do a remerge because my tree was over a week out of date. Changes that were made to fix the build were lost in the remerge resulting in build errors that were fixed a week ago. --- contrib/wpa/.gitignore | 8 - contrib/wpa/Android.mk | 10 - contrib/wpa/build_release | 47 - contrib/wpa/doc/.gitignore | 14 - contrib/wpa/doc/Makefile | 42 - contrib/wpa/doc/code_structure.doxygen | 315 - contrib/wpa/doc/ctrl_iface.doxygen | 1054 -- contrib/wpa/doc/dbus.doxygen | 2394 ----- contrib/wpa/doc/directories.doxygen | 90 - contrib/wpa/doc/doxygen.conf | 1547 --- contrib/wpa/doc/driver_wrapper.doxygen | 180 - contrib/wpa/doc/eap.doxygen | 87 - contrib/wpa/doc/eap_server.doxygen | 56 - contrib/wpa/doc/hostapd.fig | 264 - contrib/wpa/doc/hostapd_ctrl_iface.doxygen | 66 - contrib/wpa/doc/mainpage.doxygen | 95 - contrib/wpa/doc/p2p.doxygen | 471 - contrib/wpa/doc/p2p_arch.dot | 85 - contrib/wpa/doc/p2p_arch2.dot | 85 - contrib/wpa/doc/p2p_sm.dot | 62 - contrib/wpa/doc/porting.doxygen | 209 - contrib/wpa/doc/testing_tools.doxygen | 201 - contrib/wpa/doc/wpa_supplicant.fig | 247 - contrib/wpa/eap_example/.gitignore | 4 - contrib/wpa/eap_example/Makefile | 119 - contrib/wpa/eap_example/README | 42 - contrib/wpa/eap_example/ca.pem | 55 - contrib/wpa/eap_example/dh.conf | 5 - contrib/wpa/eap_example/eap_example.c | 47 - contrib/wpa/eap_example/eap_example_peer.c | 377 - contrib/wpa/eap_example/eap_example_server.c | 300 - contrib/wpa/eap_example/server-key.pem | 15 - contrib/wpa/eap_example/server.key | 16 - contrib/wpa/eap_example/server.pem | 64 - contrib/wpa/hostapd/.gitignore | 5 - contrib/wpa/hostapd/sae_pk_gen.c | 196 - contrib/wpa/hs20/server/.gitignore | 1 - contrib/wpa/hs20/server/Makefile | 42 - contrib/wpa/hs20/server/ca/clean.sh | 13 - contrib/wpa/hs20/server/ca/est-csrattrs.cnf | 17 - contrib/wpa/hs20/server/ca/est-csrattrs.sh | 4 - contrib/wpa/hs20/server/ca/hs20.oid | 7 - contrib/wpa/hs20/server/ca/ocsp-req.sh | 11 - contrib/wpa/hs20/server/ca/ocsp-responder-ica.sh | 3 - contrib/wpa/hs20/server/ca/ocsp-responder.sh | 3 - contrib/wpa/hs20/server/ca/ocsp-update-cache.sh | 11 - contrib/wpa/hs20/server/ca/openssl-root.cnf | 125 - contrib/wpa/hs20/server/ca/openssl.cnf | 200 - contrib/wpa/hs20/server/ca/setup.sh | 209 - contrib/wpa/hs20/server/hs20-osu-server.txt | 262 - contrib/wpa/hs20/server/hs20_spp_server.c | 207 - contrib/wpa/hs20/server/spp_server.c | 2933 ----- contrib/wpa/hs20/server/spp_server.h | 36 - contrib/wpa/hs20/server/sql-example.txt | 17 - contrib/wpa/hs20/server/sql.txt | 108 - contrib/wpa/hs20/server/www/add-free.php | 50 - contrib/wpa/hs20/server/www/add-mo.php | 56 - contrib/wpa/hs20/server/www/cert-enroll.php | 39 - contrib/wpa/hs20/server/www/config.php | 7 - contrib/wpa/hs20/server/www/est.php | 232 - contrib/wpa/hs20/server/www/free-remediation.php | 19 - contrib/wpa/hs20/server/www/free.php | 23 - contrib/wpa/hs20/server/www/redirect.php | 32 - contrib/wpa/hs20/server/www/remediation-pw.php | 41 - contrib/wpa/hs20/server/www/remediation.php | 55 - contrib/wpa/hs20/server/www/signup.php | 59 - contrib/wpa/hs20/server/www/spp.php | 168 - contrib/wpa/hs20/server/www/terms.php | 87 - contrib/wpa/hs20/server/www/users.php | 377 - contrib/wpa/radius_example/.gitignore | 2 - contrib/wpa/radius_example/Makefile | 28 - contrib/wpa/radius_example/README | 35 - contrib/wpa/radius_example/radius_example.c | 153 - contrib/wpa/src/build.rules | 109 - contrib/wpa/src/common/brcm_vendor.h | 156 - contrib/wpa/src/common/dpp_auth.c | 1977 ---- contrib/wpa/src/common/dpp_backup.c | 1265 --- contrib/wpa/src/common/dpp_crypto.c | 3329 ------ contrib/wpa/src/common/dpp_i.h | 160 - contrib/wpa/src/common/dpp_pkex.c | 1324 --- contrib/wpa/src/common/dpp_reconfig.c | 958 -- contrib/wpa/src/common/dpp_tcp.c | 1794 ---- contrib/wpa/src/common/ptksa_cache.c | 321 - contrib/wpa/src/common/ptksa_cache.h | 79 - contrib/wpa/src/common/sae_pk.c | 884 -- contrib/wpa/src/crypto/sha384-tlsprf.c | 71 - contrib/wpa/src/eap_peer/.gitignore | 1 - contrib/wpa/src/objs.mk | 3 - contrib/wpa/src/utils/config.c | 97 - contrib/wpa/src/utils/config.h | 29 - contrib/wpa/src/utils/ext_password_file.c | 136 - contrib/wpa/tests/.gitignore | 3 - contrib/wpa/tests/Makefile | 99 - contrib/wpa/tests/README | 123 - contrib/wpa/tests/cipher-and-key-mgmt-testing.txt | 377 - contrib/wpa/tests/fuzzing/README | 23 - contrib/wpa/tests/fuzzing/ap-mgmt/.gitignore | 1 - contrib/wpa/tests/fuzzing/ap-mgmt/Makefile | 44 - contrib/wpa/tests/fuzzing/ap-mgmt/ap-mgmt.c | 167 - contrib/wpa/tests/fuzzing/asn1/.gitignore | 1 - contrib/wpa/tests/fuzzing/asn1/Makefile | 23 - contrib/wpa/tests/fuzzing/asn1/asn1.c | 184 - contrib/wpa/tests/fuzzing/build-test.sh | 19 - contrib/wpa/tests/fuzzing/dpp-uri/.gitignore | 1 - contrib/wpa/tests/fuzzing/dpp-uri/Makefile | 43 - contrib/wpa/tests/fuzzing/dpp-uri/corpus/1.dat | 1 - contrib/wpa/tests/fuzzing/dpp-uri/corpus/2.dat | 1 - contrib/wpa/tests/fuzzing/dpp-uri/corpus/3.dat | 1 - contrib/wpa/tests/fuzzing/dpp-uri/dpp-uri.c | 51 - contrib/wpa/tests/fuzzing/eap-aka-peer/.gitignore | 1 - contrib/wpa/tests/fuzzing/eap-aka-peer/Makefile | 26 - .../wpa/tests/fuzzing/eap-aka-peer/eap-aka-peer.c | 131 - .../wpa/tests/fuzzing/eap-mschapv2-peer/.gitignore | 1 - .../wpa/tests/fuzzing/eap-mschapv2-peer/Makefile | 25 - .../fuzzing/eap-mschapv2-peer/eap-mschapv2-peer.c | 152 - contrib/wpa/tests/fuzzing/eap-sim-peer/.gitignore | 1 - contrib/wpa/tests/fuzzing/eap-sim-peer/Makefile | 26 - .../wpa/tests/fuzzing/eap-sim-peer/eap-sim-peer.c | 125 - .../wpa/tests/fuzzing/eapol-key-auth/.gitignore | 1 - contrib/wpa/tests/fuzzing/eapol-key-auth/Makefile | 34 - .../tests/fuzzing/eapol-key-auth/eapol-key-auth.c | 328 - .../wpa/tests/fuzzing/eapol-key-supp/.gitignore | 1 - contrib/wpa/tests/fuzzing/eapol-key-supp/Makefile | 30 - .../tests/fuzzing/eapol-key-supp/eapol-key-supp.c | 331 - contrib/wpa/tests/fuzzing/eapol-supp/.gitignore | 1 - contrib/wpa/tests/fuzzing/eapol-supp/Makefile | 28 - contrib/wpa/tests/fuzzing/eapol-supp/eapol-supp.c | 198 - contrib/wpa/tests/fuzzing/fuzzer-common.c | 56 - contrib/wpa/tests/fuzzing/fuzzer-common.h | 14 - contrib/wpa/tests/fuzzing/json/.gitignore | 1 - contrib/wpa/tests/fuzzing/json/Makefile | 23 - contrib/wpa/tests/fuzzing/json/corpus/1.json | 1 - contrib/wpa/tests/fuzzing/json/corpus/2.json | 1 - contrib/wpa/tests/fuzzing/json/corpus/3.json | 1 - contrib/wpa/tests/fuzzing/json/json.c | 38 - contrib/wpa/tests/fuzzing/p2p/.gitignore | 1 - contrib/wpa/tests/fuzzing/p2p/Makefile | 23 - contrib/wpa/tests/fuzzing/p2p/p2p.c | 178 - contrib/wpa/tests/fuzzing/rules.include | 31 - contrib/wpa/tests/fuzzing/sae/.gitignore | 1 - contrib/wpa/tests/fuzzing/sae/Makefile | 28 - contrib/wpa/tests/fuzzing/sae/sae.c | 39 - contrib/wpa/tests/fuzzing/tls-client/.gitignore | 1 - contrib/wpa/tests/fuzzing/tls-client/Makefile | 32 - contrib/wpa/tests/fuzzing/tls-client/tls-client.c | 154 - contrib/wpa/tests/fuzzing/tls-server/.gitignore | 1 - contrib/wpa/tests/fuzzing/tls-server/Makefile | 32 - contrib/wpa/tests/fuzzing/tls-server/tls-server.c | 157 - contrib/wpa/tests/fuzzing/wnm/.gitignore | 1 - contrib/wpa/tests/fuzzing/wnm/Makefile | 60 - contrib/wpa/tests/fuzzing/wnm/wnm.c | 99 - contrib/wpa/tests/fuzzing/x509/.gitignore | 1 - contrib/wpa/tests/fuzzing/x509/Makefile | 27 - .../wpa/tests/fuzzing/x509/corpus/oss-fuzz-15408 | 1 - contrib/wpa/tests/fuzzing/x509/x509.c | 25 - contrib/wpa/tests/hwsim/.gitignore | 1 - contrib/wpa/tests/hwsim/README | 220 - contrib/wpa/tests/hwsim/auth_serv/as.conf | 27 - contrib/wpa/tests/hwsim/auth_serv/as2.conf | 24 - .../tests/hwsim/auth_serv/ca-and-crl-expired.pem | 90 - contrib/wpa/tests/hwsim/auth_serv/ca-and-crl.pem | 90 - .../wpa/tests/hwsim/auth_serv/ca-incorrect-key.pem | 28 - contrib/wpa/tests/hwsim/auth_serv/ca-incorrect.pem | 79 - contrib/wpa/tests/hwsim/auth_serv/ca-key.pem | 28 - contrib/wpa/tests/hwsim/auth_serv/ca.pem | 79 - contrib/wpa/tests/hwsim/auth_serv/dh.conf | 8 - contrib/wpa/tests/hwsim/auth_serv/dh2.conf | 8 - .../wpa/tests/hwsim/auth_serv/dh_param_3072.pem | 11 - contrib/wpa/tests/hwsim/auth_serv/dsaparam.pem | 14 - contrib/wpa/tests/hwsim/auth_serv/eap_user.conf | 167 - .../wpa/tests/hwsim/auth_serv/eap_user_vlan.conf | 7 - .../wpa/tests/hwsim/auth_serv/ec-ca-openssl.cnf | 111 - contrib/wpa/tests/hwsim/auth_serv/ec-ca.key | 8 - contrib/wpa/tests/hwsim/auth_serv/ec-ca.pem | 13 - contrib/wpa/tests/hwsim/auth_serv/ec-generate.sh | 53 - contrib/wpa/tests/hwsim/auth_serv/ec-server.key | 8 - contrib/wpa/tests/hwsim/auth_serv/ec-server.pem | 53 - contrib/wpa/tests/hwsim/auth_serv/ec-user.key | 8 - contrib/wpa/tests/hwsim/auth_serv/ec-user.pem | 52 - contrib/wpa/tests/hwsim/auth_serv/ec2-ca.key | 9 - contrib/wpa/tests/hwsim/auth_serv/ec2-ca.pem | 15 - contrib/wpa/tests/hwsim/auth_serv/ec2-generate.sh | 67 - contrib/wpa/tests/hwsim/auth_serv/ec2-server.key | 9 - contrib/wpa/tests/hwsim/auth_serv/ec2-server.pem | 58 - .../wpa/tests/hwsim/auth_serv/ec2-user-p256.key | 8 - .../wpa/tests/hwsim/auth_serv/ec2-user-p256.pem | 56 - contrib/wpa/tests/hwsim/auth_serv/ec2-user.key | 9 - contrib/wpa/tests/hwsim/auth_serv/ec2-user.pem | 57 - contrib/wpa/tests/hwsim/auth_serv/hlr_auc_gw.gsm | 17 - .../tests/hwsim/auth_serv/hlr_auc_gw.milenage_db | 16 - .../hwsim/auth_serv/iCA-server/ca-and-root.pem | 160 - .../tests/hwsim/auth_serv/iCA-server/cacert.pem | 81 - .../wpa/tests/hwsim/auth_serv/iCA-server/careq.pem | 16 - .../wpa/tests/hwsim/auth_serv/iCA-server/index.txt | 2 - .../hwsim/auth_serv/iCA-server/index.txt.attr | 1 - .../hwsim/auth_serv/iCA-server/private/cakey.pem | 28 - .../wpa/tests/hwsim/auth_serv/iCA-server/serial | 1 - .../hwsim/auth_serv/iCA-server/server-revoked.key | 28 - .../hwsim/auth_serv/iCA-server/server-revoked.pem | 86 - .../hwsim/auth_serv/iCA-server/server-revoked.req | 16 - .../iCA-server/server-revoked_and_ica.pem | 167 - .../tests/hwsim/auth_serv/iCA-server/server.key | 28 - .../tests/hwsim/auth_serv/iCA-server/server.pem | 86 - .../tests/hwsim/auth_serv/iCA-server/server.req | 16 - .../hwsim/auth_serv/iCA-server/server_and_ica.pem | 167 - .../tests/hwsim/auth_serv/iCA-user/ca-and-root.pem | 160 - .../wpa/tests/hwsim/auth_serv/iCA-user/cacert.pem | 81 - .../wpa/tests/hwsim/auth_serv/iCA-user/careq.pem | 16 - .../wpa/tests/hwsim/auth_serv/iCA-user/index.txt | 1 - .../tests/hwsim/auth_serv/iCA-user/index.txt.attr | 1 - .../hwsim/auth_serv/iCA-user/private/cakey.pem | 28 - contrib/wpa/tests/hwsim/auth_serv/iCA-user/serial | 1 - .../wpa/tests/hwsim/auth_serv/iCA-user/user.key | 28 - .../wpa/tests/hwsim/auth_serv/iCA-user/user.pem | 85 - .../wpa/tests/hwsim/auth_serv/iCA-user/user.req | 16 - .../hwsim/auth_serv/iCA-user/user_and_ica.pem | 166 - contrib/wpa/tests/hwsim/auth_serv/ica-generate.sh | 87 - .../wpa/tests/hwsim/auth_serv/index-revoked.txt | 8 - .../wpa/tests/hwsim/auth_serv/index-unknown.txt | 1 - contrib/wpa/tests/hwsim/auth_serv/index.txt | 8 - .../wpa/tests/hwsim/auth_serv/ocsp-responder.csr | 16 - .../wpa/tests/hwsim/auth_serv/ocsp-responder.key | 28 - .../wpa/tests/hwsim/auth_serv/ocsp-responder.pem | 76 - contrib/wpa/tests/hwsim/auth_serv/openssl2.cnf | 147 - .../wpa/tests/hwsim/auth_serv/radius_clients.conf | 1 - .../tests/hwsim/auth_serv/radius_clients_ipv6.conf | 1 - .../tests/hwsim/auth_serv/radius_clients_none.conf | 4 - contrib/wpa/tests/hwsim/auth_serv/rootCA/index.txt | 6 - .../tests/hwsim/auth_serv/rootCA/index.txt.attr | 1 - contrib/wpa/tests/hwsim/auth_serv/rootCA/serial | 1 - contrib/wpa/tests/hwsim/auth_serv/rsa3072-ca.key | 40 - contrib/wpa/tests/hwsim/auth_serv/rsa3072-ca.pem | 27 - .../wpa/tests/hwsim/auth_serv/rsa3072-generate.sh | 83 - .../wpa/tests/hwsim/auth_serv/rsa3072-server.key | 40 - .../wpa/tests/hwsim/auth_serv/rsa3072-server.pem | 106 - .../wpa/tests/hwsim/auth_serv/rsa3072-server.req | 22 - .../tests/hwsim/auth_serv/rsa3072-user-rsa2048.key | 28 - .../tests/hwsim/auth_serv/rsa3072-user-rsa2048.pem | 96 - .../tests/hwsim/auth_serv/rsa3072-user-rsa2048.req | 16 - contrib/wpa/tests/hwsim/auth_serv/rsa3072-user.key | 40 - contrib/wpa/tests/hwsim/auth_serv/rsa3072-user.pem | 106 - contrib/wpa/tests/hwsim/auth_serv/rsa3072-user.req | 21 - .../wpa/tests/hwsim/auth_serv/server-certpol.csr | 22 - .../wpa/tests/hwsim/auth_serv/server-certpol.key | 40 - .../wpa/tests/hwsim/auth_serv/server-certpol.pem | 102 - .../wpa/tests/hwsim/auth_serv/server-certpol2.csr | 22 - .../wpa/tests/hwsim/auth_serv/server-certpol2.key | 40 - .../wpa/tests/hwsim/auth_serv/server-certpol2.pem | 102 - .../hwsim/auth_serv/server-eku-client-server.csr | 16 - .../hwsim/auth_serv/server-eku-client-server.key | 28 - .../hwsim/auth_serv/server-eku-client-server.pem | 85 - .../tests/hwsim/auth_serv/server-eku-client.csr | 16 - .../tests/hwsim/auth_serv/server-eku-client.key | 28 - .../tests/hwsim/auth_serv/server-eku-client.pem | 85 - .../wpa/tests/hwsim/auth_serv/server-expired.csr | 16 - .../wpa/tests/hwsim/auth_serv/server-expired.key | 28 - .../wpa/tests/hwsim/auth_serv/server-expired.pem | 85 - .../tests/hwsim/auth_serv/server-long-duration.csr | 27 - .../tests/hwsim/auth_serv/server-long-duration.key | 52 - .../tests/hwsim/auth_serv/server-long-duration.pem | 107 - .../tests/hwsim/auth_serv/server-no-dnsname.csr | 16 - .../tests/hwsim/auth_serv/server-no-dnsname.key | 28 - .../tests/hwsim/auth_serv/server-no-dnsname.pem | 85 - contrib/wpa/tests/hwsim/auth_serv/server.csr | 16 - contrib/wpa/tests/hwsim/auth_serv/server.key | 28 - contrib/wpa/tests/hwsim/auth_serv/server.pem | 87 - .../wpa/tests/hwsim/auth_serv/sha384-server.key | 40 - .../wpa/tests/hwsim/auth_serv/sha384-server.pem | 115 - contrib/wpa/tests/hwsim/auth_serv/sha384-user.key | 38 - contrib/wpa/tests/hwsim/auth_serv/sha384-user.pem | 113 - contrib/wpa/tests/hwsim/auth_serv/sha512-ca.key | 52 - contrib/wpa/tests/hwsim/auth_serv/sha512-ca.pem | 32 - .../wpa/tests/hwsim/auth_serv/sha512-generate.sh | 75 - .../wpa/tests/hwsim/auth_serv/sha512-server.key | 45 - .../wpa/tests/hwsim/auth_serv/sha512-server.pem | 120 - contrib/wpa/tests/hwsim/auth_serv/sha512-user.key | 44 - contrib/wpa/tests/hwsim/auth_serv/sha512-user.pem | 119 - contrib/wpa/tests/hwsim/auth_serv/update.sh | 181 - contrib/wpa/tests/hwsim/auth_serv/user.csr | 16 - contrib/wpa/tests/hwsim/auth_serv/user.key | 28 - contrib/wpa/tests/hwsim/auth_serv/user.key.pkcs8 | 30 - .../tests/hwsim/auth_serv/user.key.pkcs8.pkcs5v15 | 29 - contrib/wpa/tests/hwsim/auth_serv/user.pem | 85 - contrib/wpa/tests/hwsim/auth_serv/user.rsa-key | 27 - contrib/wpa/tests/hwsim/build.sh | 83 - contrib/wpa/tests/hwsim/check_kernel.py | 31 - contrib/wpa/tests/hwsim/devdetail.xml | 47 - contrib/wpa/tests/hwsim/devinfo.xml | 7 - contrib/wpa/tests/hwsim/dictionary.radius | 20 - contrib/wpa/tests/hwsim/example-hostapd.config | 116 - contrib/wpa/tests/hwsim/example-setup.txt | 191 - .../wpa/tests/hwsim/example-wpa_supplicant.config | 160 - contrib/wpa/tests/hwsim/fst_module_aux.py | 832 -- contrib/wpa/tests/hwsim/fst_test_common.py | 97 - contrib/wpa/tests/hwsim/hostapd.py | 882 -- contrib/wpa/tests/hwsim/hostapd.vlan | 2 - contrib/wpa/tests/hwsim/hostapd.vlan2 | 3 - contrib/wpa/tests/hwsim/hostapd.wlan3.vlan | 2 - contrib/wpa/tests/hwsim/hostapd.wlan4.vlan | 2 - contrib/wpa/tests/hwsim/hostapd.wpa_psk | 5 - contrib/wpa/tests/hwsim/hwsim.py | 114 - contrib/wpa/tests/hwsim/hwsim_utils.py | 246 - contrib/wpa/tests/hwsim/multi-bss-acs.conf | 28 - .../tests/hwsim/multi-bss-iface-per_sta_vif.conf | 42 - contrib/wpa/tests/hwsim/multi-bss-iface.conf | 40 - contrib/wpa/tests/hwsim/multi-bss.conf | 21 - contrib/wpa/tests/hwsim/netlink.py | 237 - contrib/wpa/tests/hwsim/nl80211.py | 357 - contrib/wpa/tests/hwsim/owe-bss-1.conf | 12 - contrib/wpa/tests/hwsim/owe-bss-2.conf | 16 - contrib/wpa/tests/hwsim/p2p0.conf | 3 - contrib/wpa/tests/hwsim/p2p1.conf | 3 - contrib/wpa/tests/hwsim/p2p2.conf | 3 - contrib/wpa/tests/hwsim/p2p_utils.py | 394 - contrib/wpa/tests/hwsim/pps-mo-1.xml | 62 - contrib/wpa/tests/hwsim/radius_das.py | 47 - contrib/wpa/tests/hwsim/remotehost.py | 258 - contrib/wpa/tests/hwsim/rfkill.py | 152 - contrib/wpa/tests/hwsim/run-all.sh | 162 - contrib/wpa/tests/hwsim/run-tests.py | 692 -- contrib/wpa/tests/hwsim/start.sh | 213 - contrib/wpa/tests/hwsim/stop.sh | 80 - contrib/wpa/tests/hwsim/test_ap_acs.py | 688 -- contrib/wpa/tests/hwsim/test_ap_ciphers.py | 1200 --- contrib/wpa/tests/hwsim/test_ap_config.py | 581 - contrib/wpa/tests/hwsim/test_ap_csa.py | 189 - contrib/wpa/tests/hwsim/test_ap_dynamic.py | 586 - contrib/wpa/tests/hwsim/test_ap_eap.py | 7492 ------------- contrib/wpa/tests/hwsim/test_ap_ft.py | 3461 ------ contrib/wpa/tests/hwsim/test_ap_hs20.py | 6496 ------------ contrib/wpa/tests/hwsim/test_ap_ht.py | 1644 --- contrib/wpa/tests/hwsim/test_ap_mixed.py | 101 - contrib/wpa/tests/hwsim/test_ap_open.py | 1017 -- contrib/wpa/tests/hwsim/test_ap_params.py | 972 -- contrib/wpa/tests/hwsim/test_ap_pmf.py | 1204 --- contrib/wpa/tests/hwsim/test_ap_psk.py | 3553 ------- contrib/wpa/tests/hwsim/test_ap_qosmap.py | 169 - contrib/wpa/tests/hwsim/test_ap_roam.py | 395 - contrib/wpa/tests/hwsim/test_ap_tdls.py | 652 -- contrib/wpa/tests/hwsim/test_ap_track.py | 437 - contrib/wpa/tests/hwsim/test_ap_vht.py | 1333 --- contrib/wpa/tests/hwsim/test_ap_vlan.py | 807 -- contrib/wpa/tests/hwsim/test_ap_wps.py | 10568 ------------------- contrib/wpa/tests/hwsim/test_authsrv.py | 262 - contrib/wpa/tests/hwsim/test_autoscan.py | 81 - contrib/wpa/tests/hwsim/test_bgscan.py | 315 - contrib/wpa/tests/hwsim/test_cert_check.py | 312 - contrib/wpa/tests/hwsim/test_cfg80211.py | 150 - contrib/wpa/tests/hwsim/test_connect_cmd.py | 235 - contrib/wpa/tests/hwsim/test_dbus.py | 6093 ----------- contrib/wpa/tests/hwsim/test_dfs.py | 767 -- contrib/wpa/tests/hwsim/test_dpp.py | 6874 ------------ contrib/wpa/tests/hwsim/test_eap.py | 602 -- contrib/wpa/tests/hwsim/test_eap_proto.py | 10377 ------------------ contrib/wpa/tests/hwsim/test_erp.py | 741 -- contrib/wpa/tests/hwsim/test_ext_password.py | 112 - contrib/wpa/tests/hwsim/test_fils.py | 2411 ----- contrib/wpa/tests/hwsim/test_fst_config.py | 553 - contrib/wpa/tests/hwsim/test_fst_module.py | 2825 ----- contrib/wpa/tests/hwsim/test_gas.py | 2053 ---- contrib/wpa/tests/hwsim/test_hapd_ctrl.py | 1071 -- contrib/wpa/tests/hwsim/test_he.py | 1188 --- contrib/wpa/tests/hwsim/test_hostapd_oom.py | 173 - contrib/wpa/tests/hwsim/test_hs20_filter.py | 205 - contrib/wpa/tests/hwsim/test_hs20_pps_mo.py | 43 - contrib/wpa/tests/hwsim/test_ibss.py | 601 -- contrib/wpa/tests/hwsim/test_ieee8021x.py | 531 - contrib/wpa/tests/hwsim/test_kernel.py | 128 - contrib/wpa/tests/hwsim/test_macsec.py | 890 -- contrib/wpa/tests/hwsim/test_mbo.py | 613 -- contrib/wpa/tests/hwsim/test_module_tests.py | 28 - contrib/wpa/tests/hwsim/test_monitor_interface.py | 94 - contrib/wpa/tests/hwsim/test_mscs.py | 231 - contrib/wpa/tests/hwsim/test_multi_ap.py | 363 - contrib/wpa/tests/hwsim/test_nfc_p2p.py | 848 -- contrib/wpa/tests/hwsim/test_nfc_wps.py | 709 -- contrib/wpa/tests/hwsim/test_oce.py | 185 - contrib/wpa/tests/hwsim/test_ocv.py | 1247 --- contrib/wpa/tests/hwsim/test_offchannel_tx.py | 50 - contrib/wpa/tests/hwsim/test_owe.py | 928 -- contrib/wpa/tests/hwsim/test_p2p_autogo.py | 936 -- contrib/wpa/tests/hwsim/test_p2p_channel.py | 1384 --- contrib/wpa/tests/hwsim/test_p2p_concurrency.py | 286 - contrib/wpa/tests/hwsim/test_p2p_device.py | 552 - contrib/wpa/tests/hwsim/test_p2p_discovery.py | 871 -- contrib/wpa/tests/hwsim/test_p2p_ext.py | 384 - contrib/wpa/tests/hwsim/test_p2p_grpform.py | 1185 --- contrib/wpa/tests/hwsim/test_p2p_invitation.py | 195 - contrib/wpa/tests/hwsim/test_p2p_messages.py | 2143 ---- contrib/wpa/tests/hwsim/test_p2p_persistent.py | 676 -- contrib/wpa/tests/hwsim/test_p2p_service.py | 586 - contrib/wpa/tests/hwsim/test_p2p_set.py | 128 - contrib/wpa/tests/hwsim/test_p2p_wifi_display.py | 475 - contrib/wpa/tests/hwsim/test_p2ps.py | 1689 --- contrib/wpa/tests/hwsim/test_pasn.py | 850 -- contrib/wpa/tests/hwsim/test_pmksa_cache.py | 1267 --- contrib/wpa/tests/hwsim/test_radio_work.py | 133 - contrib/wpa/tests/hwsim/test_radius.py | 1710 --- contrib/wpa/tests/hwsim/test_rfkill.py | 242 - contrib/wpa/tests/hwsim/test_rrm.py | 2142 ---- contrib/wpa/tests/hwsim/test_sae.py | 2722 ----- contrib/wpa/tests/hwsim/test_sae_pk.py | 462 - contrib/wpa/tests/hwsim/test_scan.py | 2025 ---- contrib/wpa/tests/hwsim/test_sigma_dut.py | 5264 --------- contrib/wpa/tests/hwsim/test_ssid.py | 127 - contrib/wpa/tests/hwsim/test_sta_dynamic.py | 329 - contrib/wpa/tests/hwsim/test_suite_b.py | 739 -- contrib/wpa/tests/hwsim/test_tnc.py | 194 - contrib/wpa/tests/hwsim/test_wep.py | 172 - contrib/wpa/tests/hwsim/test_wext.py | 254 - contrib/wpa/tests/hwsim/test_wmediumd.py | 480 - contrib/wpa/tests/hwsim/test_wnm.py | 1984 ---- contrib/wpa/tests/hwsim/test_wpas_ap.py | 905 -- contrib/wpa/tests/hwsim/test_wpas_config.py | 656 -- contrib/wpa/tests/hwsim/test_wpas_ctrl.py | 2159 ---- contrib/wpa/tests/hwsim/test_wpas_mesh.py | 2534 ----- contrib/wpa/tests/hwsim/test_wpas_wmm_ac.py | 400 - contrib/wpa/tests/hwsim/tnc/.gitignore | 4 - contrib/wpa/tests/hwsim/tnc/Makefile | 23 - contrib/wpa/tests/hwsim/tnc/hostap2_imc.c | 183 - contrib/wpa/tests/hwsim/tnc/hostap2_imv.c | 203 - contrib/wpa/tests/hwsim/tnc/hostap_imc.c | 72 - contrib/wpa/tests/hwsim/tnc/hostap_imv.c | 66 - contrib/wpa/tests/hwsim/tnc/tnc_config | 4 - contrib/wpa/tests/hwsim/tshark.py | 124 - contrib/wpa/tests/hwsim/utils.py | 314 - contrib/wpa/tests/hwsim/vm/.gitignore | 1 - contrib/wpa/tests/hwsim/vm/README | 80 - contrib/wpa/tests/hwsim/vm/bisect-run.sh | 43 - contrib/wpa/tests/hwsim/vm/build-codecov.sh | 57 - contrib/wpa/tests/hwsim/vm/combine-codecov.sh | 39 - contrib/wpa/tests/hwsim/vm/dbus.conf | 34 - contrib/wpa/tests/hwsim/vm/example-vm-setup.txt | 95 - contrib/wpa/tests/hwsim/vm/inside.sh | 169 - contrib/wpa/tests/hwsim/vm/kernel-config | 175 - contrib/wpa/tests/hwsim/vm/kernel-config.uml | 131 - contrib/wpa/tests/hwsim/vm/parallel-vm.py | 669 -- contrib/wpa/tests/hwsim/vm/process-codecov.sh | 36 - contrib/wpa/tests/hwsim/vm/uevent.sh | 9 - contrib/wpa/tests/hwsim/vm/vm-run.sh | 202 - contrib/wpa/tests/hwsim/wlantest.py | 277 - contrib/wpa/tests/hwsim/wpasupplicant.py | 1649 --- contrib/wpa/tests/remote/config.py | 87 - contrib/wpa/tests/remote/hwsim_wrapper.py | 126 - contrib/wpa/tests/remote/monitor.py | 193 - contrib/wpa/tests/remote/run-tests.py | 408 - contrib/wpa/tests/remote/rutils.py | 567 - contrib/wpa/tests/remote/test_devices.py | 124 - contrib/wpa/tests/remote/test_example.py | 141 - contrib/wpa/tests/remote/test_monitor.py | 52 - contrib/wpa/tests/test-aes.c | 624 -- contrib/wpa/tests/test-base64.c | 42 - contrib/wpa/tests/test-https.c | 225 - contrib/wpa/tests/test-https_server.c | 275 - contrib/wpa/tests/test-list.c | 72 - contrib/wpa/tests/test-md4.c | 93 - contrib/wpa/tests/test-milenage.c | 814 -- contrib/wpa/tests/test-rc4.c | 250 - contrib/wpa/tests/test-rsa-sig-ver.c | 206 - contrib/wpa/tests/test-sha1.c | 119 - contrib/wpa/tests/test-sha256.c | 119 - contrib/wpa/tests/test-x509v3.c | 62 - contrib/wpa/tests/test_x509v3_nist.sh | 144 - contrib/wpa/tests/test_x509v3_nist2.sh | 177 - contrib/wpa/wlantest/.gitignore | 4 - contrib/wpa/wlantest/Makefile | 87 - contrib/wpa/wlantest/bip.c | 133 - contrib/wpa/wlantest/bss.c | 373 - contrib/wpa/wlantest/ccmp.c | 367 - contrib/wpa/wlantest/ctrl.c | 1471 --- contrib/wpa/wlantest/gcmp.c | 160 - contrib/wpa/wlantest/inject.c | 341 - contrib/wpa/wlantest/monitor.c | 172 - contrib/wpa/wlantest/process.c | 409 - contrib/wpa/wlantest/readpcap.c | 190 - contrib/wpa/wlantest/rx_data.c | 904 -- contrib/wpa/wlantest/rx_eapol.c | 1317 --- contrib/wpa/wlantest/rx_ip.c | 184 - contrib/wpa/wlantest/rx_mgmt.c | 2642 ----- contrib/wpa/wlantest/rx_tdls.c | 618 -- contrib/wpa/wlantest/sta.c | 232 - contrib/wpa/wlantest/test_vectors.c | 937 -- contrib/wpa/wlantest/tkip.c | 428 - contrib/wpa/wlantest/wep.c | 104 - contrib/wpa/wlantest/wired.c | 295 - contrib/wpa/wlantest/wlantest.c | 505 - contrib/wpa/wlantest/wlantest.h | 336 - contrib/wpa/wlantest/wlantest_cli.c | 1865 ---- contrib/wpa/wlantest/wlantest_ctrl.h | 171 - contrib/wpa/wlantest/writepcap.c | 373 - contrib/wpa/wpa_supplicant/bssid_ignore.c | 221 - contrib/wpa/wpa_supplicant/bssid_ignore.h | 33 - contrib/wpa/wpa_supplicant/examples/dpp-nfc.py | 1186 --- contrib/wpa/wpa_supplicant/pasn_supplicant.c | 1710 --- contrib/wpa/wpa_supplicant/robust_av.c | 155 - contrib/wpa/wpa_supplicant/twt.c | 142 - .../wpa_supplicant/wpa_gui-qt4/icons/.gitignore | 2 - contrib/wpa/wpadebug/.gitignore | 4 - contrib/wpa/wpadebug/AndroidManifest.xml | 86 - contrib/wpa/wpadebug/README | 78 - contrib/wpa/wpadebug/build.xml | 17 - contrib/wpa/wpadebug/project.properties | 2 - contrib/wpa/wpadebug/res/layout/cred_edit.xml | 117 - contrib/wpa/wpadebug/res/layout/input_uri.xml | 26 - contrib/wpa/wpadebug/res/layout/main.xml | 160 - contrib/wpa/wpadebug/res/layout/qrcode.xml | 13 - contrib/wpa/wpadebug/res/raw/shell_commands.txt | 2 - contrib/wpa/wpadebug/res/raw/wpa_commands.txt | 9 - .../src/w1/fi/wpadebug/CommandListActivity.java | 130 - .../src/w1/fi/wpadebug/DisplayMessageActivity.java | 49 - .../wpa/wpadebug/src/w1/fi/wpadebug/InputUri.java | 108 - .../wpadebug/src/w1/fi/wpadebug/MainActivity.java | 209 - .../src/w1/fi/wpadebug/QrCodeDisplayActivity.java | 109 - .../src/w1/fi/wpadebug/QrCodeReadActivity.java | 40 - .../src/w1/fi/wpadebug/QrCodeScannerActivity.java | 82 - .../wpadebug/src/w1/fi/wpadebug/WifiReceiver.java | 95 - .../src/w1/fi/wpadebug/WpaCommandListActivity.java | 112 - .../src/w1/fi/wpadebug/WpaCredActivity.java | 263 - .../src/w1/fi/wpadebug/WpaCredEditActivity.java | 55 - .../src/w1/fi/wpadebug/WpaNfcActivity.java | 131 - .../src/w1/fi/wpadebug/WpaWebViewActivity.java | 146 - contrib/wpa/wpaspy/Makefile | 15 - contrib/wpa/wpaspy/setup.py | 22 - contrib/wpa/wpaspy/test.py | 82 - contrib/wpa/wpaspy/wpaspy.c | 245 - contrib/wpa/wpaspy/wpaspy.py | 149 - usr.sbin/wpa/Makefile.inc | 1 - usr.sbin/wpa/hostapd/Makefile | 2 + usr.sbin/wpa/hostapd_cli/Makefile | 3 +- usr.sbin/wpa/wpa_cli/Makefile | 9 +- usr.sbin/wpa/wpa_passphrase/Makefile | 3 +- usr.sbin/wpa/wpa_priv/Makefile | 1 + usr.sbin/wpa/wpa_supplicant/Makefile | 13 +- 533 files changed, 24 insertions(+), 200748 deletions(-) diff --git a/contrib/wpa/.gitignore b/contrib/wpa/.gitignore index b064303ced30..e69de29bb2d1 100644 --- a/contrib/wpa/.gitignore +++ b/contrib/wpa/.gitignore @@ -1,8 +0,0 @@ -*.pyc -*~ -tests/hwsim/logs -tests/remote/logs -wpaspy/build -**/parallel-vm.log -tags -build/ diff --git a/contrib/wpa/Android.mk b/contrib/wpa/Android.mk index bd7a4097444b..e69de29bb2d1 100644 --- a/contrib/wpa/Android.mk +++ b/contrib/wpa/Android.mk @@ -1,10 +0,0 @@ -LOCAL_PATH:= $(call my-dir) - -ifneq ($(filter VER_0_8_X VER_2_1_DEVEL,$(WPA_SUPPLICANT_VERSION)),) -# The order of the 2 Android.mks does matter! -# TODO: Clean up the Android.mks, reset all the temporary variables at the -# end of each Android.mk, so that one Android.mk doesn't depend on variables -# set up in the other Android.mk. -include $(LOCAL_PATH)/hostapd/Android.mk \ - $(LOCAL_PATH)/wpa_supplicant/Android.mk -endif diff --git a/contrib/wpa/build_release b/contrib/wpa/build_release index 3aa9bf31963a..e69de29bb2d1 100755 --- a/contrib/wpa/build_release +++ b/contrib/wpa/build_release @@ -1,47 +0,0 @@ -#!/bin/sh - -set -e - -if [ -z "$1" ]; then - echo "build_release " - exit 1 -fi - -TMP=tmp.build_release -RELDIR=`pwd`/Release -VER=$1 -NOW=`date +%Y-%m-%d` - -echo "Version: $VER - $NOW" - -DATEw=`head -n 3 wpa_supplicant/ChangeLog | tail -n 1 | sed "s/ .*//"` -DATEh=`head -n 3 hostapd/ChangeLog | tail -n 1 | sed "s/ .*//"` - -if [ "$DATEw" != "$NOW" -o "$DATEh" != "$NOW" ]; then - echo "NOTE! Date mismatch in ChangeLog: wpa_supplicant $DATEw hostapd $DATEh != $NOW" -fi - -if [ -r $TMP ]; then - echo "Temporary directory '$TMP' exists. Remove it before running this." - exit 1 -fi - -mkdir $TMP -mkdir -p $RELDIR - -git archive --format=tar --prefix=wpa-$VER/ HEAD \ - README COPYING CONTRIBUTIONS src wpa_supplicant hostapd hs20 | - gzip > $RELDIR/wpa-$VER.tar.gz -git archive --format=tar --prefix=hostapd-$VER/ HEAD \ - README COPYING CONTRIBUTIONS src hostapd | - gzip > $RELDIR/hostapd-$VER.tar.gz -git archive --format=tar --prefix=wpa_supplicant-$VER/ HEAD \ - README COPYING CONTRIBUTIONS src wpa_supplicant hs20/client | - tar --directory=$TMP -xf - - -cd $TMP -make -C wpa_supplicant-$VER/wpa_supplicant/doc/docbook man -rm -f wpa_supplicant-$VER/wpa_supplicant/doc/docbook/manpage.{links,refs} -tar czf $RELDIR/wpa_supplicant-$VER.tar.gz wpa_supplicant-$VER -cd .. -rm -r $TMP diff --git a/contrib/wpa/doc/.gitignore b/contrib/wpa/doc/.gitignore index 28c3fe4e99c3..e69de29bb2d1 100644 --- a/contrib/wpa/doc/.gitignore +++ b/contrib/wpa/doc/.gitignore @@ -1,14 +0,0 @@ -doxygen.warnings -hostapd.eps -hostapd.png -html -latex -p2p_arch.eps -p2p_arch.png -p2p_arch2.eps -p2p_arch2.png -p2p_sm.eps -p2p_sm.png -wpa_supplicant.eps -wpa_supplicant.png -wpa_supplicant-devel.pdf diff --git a/contrib/wpa/doc/Makefile b/contrib/wpa/doc/Makefile index 62af04a74f1f..e69de29bb2d1 100644 --- a/contrib/wpa/doc/Makefile +++ b/contrib/wpa/doc/Makefile @@ -1,42 +0,0 @@ -all: docs - -%.eps: %.fig - fig2dev -L eps $*.fig $*.eps - -%.png: %.fig - fig2dev -L png -m 3 $*.fig | pngtopnm | pnmscale 0.4 | pnmtopng \ - > $*.png - -%.png: %.dot - dot $*.dot -Tpng -o $*.png - -%.eps: %.dot - dot $*.dot -Tps -o $*.eps - -_wpa_supplicant.png: wpa_supplicant.png - cp $< $@ - -_wpa_supplicant.eps: wpa_supplicant.eps - cp $< $@ - -docs-pics: wpa_supplicant.png wpa_supplicant.eps hostapd.png hostapd.eps p2p_sm.png p2p_sm.eps p2p_arch.png p2p_arch.eps p2p_arch2.png p2p_arch2.eps _wpa_supplicant.png _wpa_supplicant.eps - -docs: docs-pics - (cd ..; doxygen doc/doxygen.conf; cd doc) - $(MAKE) -C latex - cp latex/refman.pdf wpa_supplicant-devel.pdf - -html: docs-pics - (cd ..; doxygen doc/doxygen.conf; cd doc) - -clean: - rm -f *~ - rm -f wpa_supplicant.eps wpa_supplicant.png - rm -f _wpa_supplicant.png _wpa_supplicant.eps - rm -f hostapd.eps hostapd.png - rm -f p2p_sm.eps p2p_sm.png - rm -f p2p_arch.eps p2p_arch.png - rm -f p2p_arch2.eps p2p_arch2.png - rm -f doxygen.warnings - rm -rf html latex - rm -f wpa_supplicant-devel.pdf diff --git a/contrib/wpa/doc/code_structure.doxygen b/contrib/wpa/doc/code_structure.doxygen index 454f179753d3..e69de29bb2d1 100644 --- a/contrib/wpa/doc/code_structure.doxygen +++ b/contrib/wpa/doc/code_structure.doxygen @@ -1,315 +0,0 @@ -/** -\page code_structure Structure of the source code - -[ \ref _wpa_supplicant_core "wpa_supplicant core functionality" | -\ref generic_helper_func "Generic helper functions" | -\ref crypto_func "Cryptographic functions" | -\ref tls_func "TLS library" | -\ref configuration "Configuration" | -\ref ctrl_iface "Control interface" | -\ref wpa_code "WPA supplicant" | -\ref eap_peer "EAP peer" | -\ref eapol_supp "EAPOL supplicant" | -\ref win_port "Windows port" | -\ref test_programs "Test programs" ] - -wpa_supplicant implementation is divided into number of independent -modules. Core code includes functionality for controlling the network -selection, association, and configuration. Independent modules include -WPA code (key handshake, PMKSA caching, pre-authentication), EAPOL -state machine, and EAP state machine and methods. In addition, there -are number of separate files for generic helper functions. - -Both WPA and EAPOL/EAP state machines can be used separately in other -programs than wpa_supplicant. As an example, the included test -programs eapol_test and preauth_test are using these modules. - -\ref driver_wrapper "Driver interface API" is defined in \ref driver.h and -all hardware/driver dependent functionality is implemented in -driver_*.c. - - -\section _wpa_supplicant_core wpa_supplicant core functionality - -\ref wpa_supplicant.c - Program initialization, main control loop - -\ref wpa_supplicant/main.c - main() for UNIX-like operating systems and MinGW (Windows); this - uses command line arguments to configure wpa_supplicant - -\ref events.c - Driver event processing; \ref wpa_supplicant_event() and related functions - -\ref wpa_supplicant_i.h - Internal definitions for wpa_supplicant core; should not be - included into independent modules - - -\section generic_helper_func Generic helper functions - -wpa_supplicant uses generic helper functions some of which are shared -with with hostapd. The following C files are currently used: - -\ref eloop.c and \ref eloop.h - Event loop (select() loop with registerable timeouts, socket read - callbacks, and signal callbacks) - -\ref common.c and \ref common.h - Common helper functions - -\ref defs.h - Definitions shared by multiple files - -\ref l2_packet.h, \ref l2_packet_linux.c, and \ref l2_packet_pcap.c - Layer 2 (link) access wrapper (includes native Linux implementation - and wrappers for libdnet/libpcap). A new l2_packet implementation - may need to be added when porting to new operating systems that are - not supported by libdnet/libpcap. Makefile can be used to select which - l2_packet implementation is included. \ref l2_packet_linux.c uses Linux - packet sockets and \ref l2_packet_pcap.c has a more portable version using - libpcap and libdnet. - -\ref pcsc_funcs.c and \ref pcsc_funcs.h - Wrapper for PC/SC lite SIM and smart card readers - -\ref priv_netlink.h - Private version of netlink definitions from Linux kernel header files; - this could be replaced with C library header file once suitable - version becomes commonly available - -\ref version.h - Version number definitions - - -\section crypto_func Cryptographic functions - -\ref md5.c and \ref md5.h - MD5 (replaced with a crypto library if TLS support is included) - HMAC-MD5 (keyed checksum for message authenticity validation) - -\ref rc4.c and \ref rc4.h - RC4 (broadcast/default key encryption) - -\ref sha1.c and \ref sha1.h - SHA-1 (replaced with a crypto library if TLS support is included) - HMAC-SHA-1 (keyed checksum for message authenticity validation) - PRF-SHA-1 (pseudorandom (key/nonce generation) function) - PBKDF2-SHA-1 (ASCII passphrase to shared secret) - T-PRF (for EAP-FAST) - TLS-PRF (RFC 2246) - -\ref sha256.c and \ref sha256.h - SHA-256 (replaced with a crypto library if TLS support is included) - -\ref aes-wrap.c, \ref aes_wrap.h, \ref aes.c - AES (replaced with a crypto library if TLS support is included), - AES Key Wrap Algorithm with 128-bit KEK, RFC3394 (broadcast/default - key encryption), - One-Key CBC MAC (OMAC1) hash with AES-128, - AES-128 CTR mode encryption, - AES-128 EAX mode encryption/decryption, - AES-128 CBC - -\ref crypto.h - Definition of crypto library wrapper - -\ref crypto_openssl.c - Wrapper functions for libcrypto (OpenSSL) - -\ref crypto_internal.c - Wrapper functions for internal crypto implementation - -\ref crypto_gnutls.c - Wrapper functions for libgcrypt (used by GnuTLS) - -\ref ms_funcs.c and \ref ms_funcs.h - Helper functions for MSCHAPV2 and LEAP - -\ref tls.h - Definition of TLS library wrapper - -\ref tls_none.c - Dummy implementation of TLS library wrapper for cases where TLS - functionality is not included. - -\ref tls_openssl.c - TLS library wrapper for openssl - -\ref tls_internal.c - TLS library for internal TLS implementation - -\ref tls_gnutls.c - TLS library wrapper for GnuTLS - - -\section tls_func TLS library - -\ref asn1.c and \ref asn1.h - ASN.1 DER parsing - -\ref bignum.c and \ref bignum.h - Big number math - -\ref rsa.c and \ref rsa.h - RSA - -\ref x509v3.c and \ref x509v3.h - X.509v3 certificate parsing and processing - -\ref tlsv1_client.c, \ref tlsv1_client.h - TLSv1 client (RFC 2246) - -\ref tlsv1_client_i.h - Internal structures for TLSv1 client - -\ref tlsv1_client_read.c - TLSv1 client: read handshake messages - -\ref tlsv1_client_write.c - TLSv1 client: write handshake messages - -\ref tlsv1_common.c and \ref tlsv1_common.h - Common TLSv1 routines and definitions - -\ref tlsv1_cred.c and \ref tlsv1_cred.h - TLSv1 credentials - -\ref tlsv1_record.c and \ref tlsv1_record.h - TLSv1 record protocol - - -\section configuration Configuration - -\ref config_ssid.h - Definition of per network configuration items - -\ref config.h - Definition of the wpa_supplicant configuration - -\ref config.c - Configuration parser and common functions - -\ref wpa_supplicant/config_file.c - Configuration backend for text files (e.g., wpa_supplicant.conf) - -\ref config_winreg.c - Configuration backend for Windows registry - - -\section ctrl_iface Control interface - -wpa_supplicant has a \ref ctrl_iface_page "control interface" -that can be used to get status -information and manage operations from external programs. An example -command line interface (wpa_cli) and GUI (wpa_gui) for this interface -are included in the wpa_supplicant distribution. - -\ref wpa_supplicant/ctrl_iface.c and \ref wpa_supplicant/ctrl_iface.h - wpa_supplicant-side of the control interface - -\ref ctrl_iface_unix.c - UNIX domain sockets -based control interface backend - -\ref ctrl_iface_udp.c - UDP sockets -based control interface backend - -\ref ctrl_iface_named_pipe.c - Windows named pipes -based control interface backend - -\ref wpa_ctrl.c and \ref wpa_ctrl.h - Library functions for external programs to provide access to the - wpa_supplicant control interface - -\ref wpa_cli.c - Example program for using wpa_supplicant control interface - - -\section wpa_code WPA supplicant - -\ref wpa.c and \ref wpa.h - WPA state machine and 4-Way/Group Key Handshake processing - -\ref preauth.c and \ref preauth.h - PMKSA caching and pre-authentication (RSN/WPA2) - -\ref wpa_i.h - Internal definitions for WPA code; not to be included to other modules. - -\section eap_peer EAP peer - -\ref eap_peer_module "EAP peer implementation" is a separate module that -can be used by other programs than just wpa_supplicant. - -\ref eap.c and \ref eap.h - EAP state machine and method interface - -\ref eap_defs.h - Common EAP definitions - -\ref eap_i.h - Internal definitions for EAP state machine and EAP methods; not to be - included in other modules - -\ref eap_sim_common.c and \ref eap_sim_common.h - Common code for EAP-SIM and EAP-AKA - -\ref eap_tls_common.c and \ref eap_tls_common.h - Common code for EAP-PEAP, EAP-TTLS, and EAP-FAST - -\ref eap_ttls.c and \ref eap_ttls.h - EAP-TTLS - -\ref eap_pax.c, \ref eap_pax_common.h, \ref eap_pax_common.c - EAP-PAX - -\ref eap_psk.c, \ref eap_psk_common.h, \ref eap_psk_common.c - EAP-PSK (note: this is not needed for WPA-PSK) - -\ref eap_sake.c, \ref eap_sake_common.h, \ref eap_sake_common.c - EAP-SAKE - -\ref eap_gpsk.c, \ref eap_gpsk_common.h, \ref eap_gpsk_common.c - EAP-GPSK - -\ref eap_aka.c, \ref eap_fast.c, \ref eap_gtc.c, \ref eap_leap.c, -\ref eap_md5.c, \ref eap_mschapv2.c, \ref eap_otp.c, \ref eap_peap.c, -\ref eap_sim.c, \ref eap_tls.c - Other EAP method implementations - - -\section eapol_supp EAPOL supplicant - -\ref eapol_supp_sm.c and \ref eapol_supp_sm.h - EAPOL supplicant state machine and IEEE 802.1X processing *** 203093 LINES SKIPPED *** From owner-dev-commits-src-main@freebsd.org Sat Apr 17 17:50:20 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D01C05DE579; Sat, 17 Apr 2021 17:50:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FN0wX5Wkpz4vbw; Sat, 17 Apr 2021 17:50:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A63411C91D; Sat, 17 Apr 2021 17:50:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HHoKVD043598; Sat, 17 Apr 2021 17:50:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HHoKIB043592; Sat, 17 Apr 2021 17:50:20 GMT (envelope-from git) Date: Sat, 17 Apr 2021 17:50:20 GMT Message-Id: <202104171750.13HHoKIB043592@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Cy Schubert Subject: git: 8c6732ac7775 - main - usr.sbin/wpa: complete the revert of wpa import MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8c6732ac77753cf1dde28e2b3a39303bd5847c34 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 17:50:20 -0000 The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=8c6732ac77753cf1dde28e2b3a39303bd5847c34 commit 8c6732ac77753cf1dde28e2b3a39303bd5847c34 Author: Cy Schubert AuthorDate: 2021-04-17 17:48:35 +0000 Commit: Cy Schubert CommitDate: 2021-04-17 17:48:35 +0000 usr.sbin/wpa: complete the revert of wpa import This completes the revert of b51f459a2098622c31ed54f5c1bf0e03efce403b. --- usr.sbin/wpa/Makefile.inc | 1 + usr.sbin/wpa/hostapd/Makefile | 2 -- usr.sbin/wpa/hostapd_cli/Makefile | 3 +-- usr.sbin/wpa/wpa_cli/Makefile | 9 ++------- usr.sbin/wpa/wpa_passphrase/Makefile | 3 +-- usr.sbin/wpa/wpa_priv/Makefile | 1 - usr.sbin/wpa/wpa_supplicant/Makefile | 13 +++---------- 7 files changed, 8 insertions(+), 24 deletions(-) diff --git a/usr.sbin/wpa/Makefile.inc b/usr.sbin/wpa/Makefile.inc index b19ae26b22d4..0a69ca08166b 100644 --- a/usr.sbin/wpa/Makefile.inc +++ b/usr.sbin/wpa/Makefile.inc @@ -18,6 +18,7 @@ HOSTAPD_DISTDIR?= ${WPA_DISTDIR}/hostapd ${WPA_DISTDIR}/src/radius \ ${WPA_DISTDIR}/src/rsn_supp \ ${WPA_DISTDIR}/src/tls \ + ${WPA_DISTDIR}/src/utils \ ${WPA_DISTDIR}/src/wps CFLAGS+=-I${.CURDIR} diff --git a/usr.sbin/wpa/hostapd/Makefile b/usr.sbin/wpa/hostapd/Makefile index bd32f8db052e..579694046989 100644 --- a/usr.sbin/wpa/hostapd/Makefile +++ b/usr.sbin/wpa/hostapd/Makefile @@ -8,7 +8,6 @@ ${WPA_DISTDIR}/src/eap_server \ ${WPA_DISTDIR}/src/eap_peer \ ${WPA_DISTDIR}/src/drivers \ - ${WPA_DISTDIR}/src/utils \ ${WPA_DISTDIR}/wpa_supplicant PACKAGE= hostapd @@ -25,7 +24,6 @@ SRCS= accounting.c \ chap.c \ common.c \ config_file.c \ - crc32.c \ ctrl_iface.c \ ctrl_iface_ap.c \ ctrl_iface_common.c \ diff --git a/usr.sbin/wpa/hostapd_cli/Makefile b/usr.sbin/wpa/hostapd_cli/Makefile index e2a9438e1de2..eda50e222d2e 100644 --- a/usr.sbin/wpa/hostapd_cli/Makefile +++ b/usr.sbin/wpa/hostapd_cli/Makefile @@ -2,8 +2,7 @@ .include "../Makefile.inc" -.PATH.c:${HOSTAPD_DISTDIR} \ - ${WPA_DISTDIR}/src/utils +.PATH.c:${HOSTAPD_DISTDIR} PACKAGE= hostapd PROG= hostapd_cli diff --git a/usr.sbin/wpa/wpa_cli/Makefile b/usr.sbin/wpa/wpa_cli/Makefile index bf7a496db3a8..504b0883f52f 100644 --- a/usr.sbin/wpa/wpa_cli/Makefile +++ b/usr.sbin/wpa/wpa_cli/Makefile @@ -7,12 +7,11 @@ .PATH.c:${WPA_SUPPLICANT_DISTDIR} \ ${WPA_DISTDIR}/wpa_supplicant \ ${WPA_DISTDIR}/src/eap_peer \ - ${WPA_DISTDIR}/src/utils \ ${WPA_DISTDIR}/src/drivers PACKAGE= wpa PROG= wpa_cli -SRCS= base64.c bitfield.c bss.c bssid_ignore.c cli.c common.c config.c \ +SRCS= base64.c bitfield.c blacklist.c bss.c cli.c common.c config.c \ config_file.c \ ctrl_iface.c ctrl_iface_common.c ctrl_iface_unix.c \ drivers.c driver_common.c \ @@ -20,7 +19,7 @@ SRCS= base64.c bitfield.c bss.c bssid_ignore.c cli.c common.c config.c \ edit.c eloop.c events.c hw_features_common.c \ ieee802_11_common.c l2_packet_freebsd.c notify.c \ op_classes.c \ - os_unix.c robust_av.c rrm.c scan.c wmm_ac.c \ + os_unix.c rrm.c scan.c wmm_ac.c \ wpa.c wpa_cli.c \ wpa_ctrl.c wpa_common.c \ wpa_debug.c wpa_ie.c wpa_supplicant.c wpabuf.c wpas_glue.c @@ -38,10 +37,6 @@ LIBADD+= pcap util TLS_FUNCS=y -OBJS+= utils_config.o -utils_config.o: ${WPA_DISTDIR}/src/utils/config.c - ${CC} -c ${CFLAGS} -o ${.OBJDIR}/utils_config.o ${WPA_DISTDIR}/src/utils/config.c - .include "../Makefile.crypto" .include diff --git a/usr.sbin/wpa/wpa_passphrase/Makefile b/usr.sbin/wpa/wpa_passphrase/Makefile index 877b73829bf2..9a929c07b6fc 100644 --- a/usr.sbin/wpa/wpa_passphrase/Makefile +++ b/usr.sbin/wpa/wpa_passphrase/Makefile @@ -2,8 +2,7 @@ .include "../Makefile.inc" -.PATH.c:${WPA_SUPPLICANT_DISTDIR} \ - ${WPA_DISTDIR}/src/utils +.PATH.c:${WPA_SUPPLICANT_DISTDIR} PACKAGE= wpa PROG= wpa_passphrase diff --git a/usr.sbin/wpa/wpa_priv/Makefile b/usr.sbin/wpa/wpa_priv/Makefile index 05d8f743f8f2..9fd4e3ca98a0 100644 --- a/usr.sbin/wpa/wpa_priv/Makefile +++ b/usr.sbin/wpa/wpa_priv/Makefile @@ -3,7 +3,6 @@ .include "../Makefile.inc" .PATH.c:${WPA_SUPPLICANT_DISTDIR} \ - ${WPA_DISTDIR}/src/utils \ ${WPA_DISTDIR}/src/drivers PACKAGE= wpa diff --git a/usr.sbin/wpa/wpa_supplicant/Makefile b/usr.sbin/wpa/wpa_supplicant/Makefile index 6a80ce33a956..352e13e6bde6 100644 --- a/usr.sbin/wpa/wpa_supplicant/Makefile +++ b/usr.sbin/wpa/wpa_supplicant/Makefile @@ -6,13 +6,12 @@ .PATH.c:${WPA_SUPPLICANT_DISTDIR} \ ${WPA_DISTDIR}/src/eap_peer \ - ${WPA_DISTDIR}/src/utils \ ${WPA_DISTDIR}/src/drivers PACKAGE= wpa PROG= wpa_supplicant -SRCS= base64.c bitfield.c bss.c bssid_ignore.c cli.c common.c \ +SRCS= base64.c bitfield.c blacklist.c bss.c cli.c common.c \ config.c config_file.c \ ctrl_iface.c ctrl_iface_common.c ctrl_iface_unix.c \ driver_bsd.c driver_common.c \ @@ -22,10 +21,8 @@ SRCS= base64.c bitfield.c bss.c bssid_ignore.c cli.c common.c \ http_client.c http_server.c \ httpread.c hw_features_common.c \ ieee802_11_common.c l2_packet_freebsd.c main.c \ - notify.c offchannel.c op_classes.c os_unix.c \ - pmksa_cache.c preauth.c \ - robust_av.c \ - rrm.c scan.c twt.c upnp_xml.c \ + notify.c offchannel.c op_classes.c os_unix.c pmksa_cache.c preauth.c \ + rrm.c scan.c upnp_xml.c \ wmm_ac.c wpa.c wpa_common.c wpa_ctrl.c \ wpa_debug.c wpa_ft.c wpa_ie.c wpa_supplicant.c wpabuf.c wpas_glue.c @@ -160,10 +157,6 @@ SRCS+= eap_sake.c \ eap_sake_common.c .endif -OBJS+= utils_config.o -utils_config.o: ${WPA_DISTDIR}/src/utils/config.c - ${CC} -c ${CFLAGS} -o ${.OBJDIR}/utils_config.o ${WPA_DISTDIR}/src/utils/config.c - .include "../Makefile.crypto" .include From owner-dev-commits-src-main@freebsd.org Sat Apr 17 19:22:06 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9C0735E05D3; Sat, 17 Apr 2021 19:22:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FN2yQ45JQz3FrL; Sat, 17 Apr 2021 19:22:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7F6EA1D975; Sat, 17 Apr 2021 19:22:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HJM66Y068181; Sat, 17 Apr 2021 19:22:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HJM6a1068180; Sat, 17 Apr 2021 19:22:06 GMT (envelope-from git) Date: Sat, 17 Apr 2021 19:22:06 GMT Message-Id: <202104171922.13HJM6a1068180@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Richard Scheffenegger Subject: git: 2e97826052d1 - main - rack: Fix ECN on finalizing session. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rscheff X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2e97826052d169f6e2e1d2f87b086f56d1cf2b0b Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 19:22:06 -0000 The branch main has been updated by rscheff: URL: https://cgit.FreeBSD.org/src/commit/?id=2e97826052d169f6e2e1d2f87b086f56d1cf2b0b commit 2e97826052d169f6e2e1d2f87b086f56d1cf2b0b Author: Richard Scheffenegger AuthorDate: 2021-04-17 18:16:06 +0000 Commit: Richard Scheffenegger CommitDate: 2021-04-17 18:16:42 +0000 rack: Fix ECN on finalizing session. Maintain code similarity between RACK and base stack for ECN. This may not strictly be necessary, depending when a state transition to FIN_WAIT_1 is done in RACK after a shutdown() or close() syscall. MFC after: 3 days Reviewed By: tuexen, #transport Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D29658 --- sys/netinet/tcp_stacks/rack.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c index beae1bf9cba7..0079bf8b6400 100644 --- a/sys/netinet/tcp_stacks/rack.c +++ b/sys/netinet/tcp_stacks/rack.c @@ -13438,7 +13438,7 @@ send: flags |= TH_ECE; tp->t_flags2 &= ~TF2_ECN_SND_ECE; } - if (tp->t_state == TCPS_ESTABLISHED && + if (TCPS_HAVEESTABLISHED(tp->t_state) && (tp->t_flags2 & TF2_ECN_PERMIT)) { /* * If the peer has ECN, mark data packets with ECN capable From owner-dev-commits-src-main@freebsd.org Sat Apr 17 19:24:54 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F253A5E0859; Sat, 17 Apr 2021 19:24:54 +0000 (UTC) (envelope-from gbe@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FN31f6cMPz3GN7; Sat, 17 Apr 2021 19:24:54 +0000 (UTC) (envelope-from gbe@freebsd.org) Received: from localhost (p200300d5d70db00b945495925251c283.dip0.t-ipconnect.de [IPv6:2003:d5:d70d:b00b:9454:9592:5251:c283]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gbe) by smtp.freebsd.org (Postfix) with ESMTPSA id 662E9C47D; Sat, 17 Apr 2021 19:24:54 +0000 (UTC) (envelope-from gbe@freebsd.org) Date: Sat, 17 Apr 2021 21:24:53 +0200 From: Gordon Bergling To: rgrimes@freebsd.org Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: bc54f5f1cd5c - main - route(8): Add an example how to print the routing tables Message-ID: References: <202104141031.13EAVO9b042570@gndrsh.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202104141031.13EAVO9b042570@gndrsh.dnsmgr.net> X-Url: X-Operating-System: FreeBSD 12.2-STABLE amd64 X-Host-Uptime: 9:21PM up 3 days, 3:41, 4 users, load averages: 0.22, 0.24, 0.24 X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 19:24:55 -0000 On Wed, Apr 14, 2021 at 03:31:24AM -0700, Rodney W. Grimes wrote: > > On Tue, Apr 13, 2021 at 03:36:14AM -0700, Rodney W. Grimes wrote: > > > > The branch main has been updated by gbe (doc committer): > > > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=bc54f5f1cd5c01aa5f941234034839fb0b8f54ed > > > > > > > > commit bc54f5f1cd5c01aa5f941234034839fb0b8f54ed > > > > Author: Gordon Bergling > > > > AuthorDate: 2021-04-13 04:44:04 +0000 > > > > Commit: Gordon Bergling > > > > CommitDate: 2021-04-13 04:45:22 +0000 > > > > > > > > route(8): Add an example how to print the routing tables > > > > > > > > The manual page currently doesn't show an example how to print > > > > the routing table, so add one and .Xr netstat while here. > > > > > > Because the route command does not print the routing table. > > > > > > Manual pages should have examples of how to use that command, > > > not examples of how to do associated things that are done > > > using another command. > > > > > > The add of xref to netstat is long overdue. > > > > I know that examples in man pages should be specific for the command > > the man page is for, but I think we could make an exception for netstat at > > this point, because many people, who are looking for such an information > > are coming from the Windows world, where the route command has a print > > option. > > Perhaps add in description of "route get": > To print the complete routing table refer to the netstat(8) -r flag. I am currently working on a 'route show' implementation for FreeBSD. NetBSD and OpenBSD have this functionality already implemented. I would update the man page after I have finished the implementation and the review process through phabricator. --Gordon > > > > PR: 231579 > > > > Reported by: Pekka J?rvinen > > > > Reviewed by: debdrup > > > > MFC after: 5 days > > > > Differential Revision: https://reviews.freebsd.org/D29702 > > > > --- > > > > sbin/route/route.8 | 7 ++++++- > > > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > > > > > diff --git a/sbin/route/route.8 b/sbin/route/route.8 > > > > index 6f34795ce883..c353bfb73d62 100644 > > > > --- a/sbin/route/route.8 > > > > +++ b/sbin/route/route.8 > > > > @@ -28,7 +28,7 @@ > > > > .\" @(#)route.8 8.3 (Berkeley) 3/19/94 > > > > .\" $FreeBSD$ > > > > .\" > > > > -.Dd January 9, 2019 > > > > +.Dd April 11, 2021 > > > > .Dt ROUTE 8 > > > > .Os > > > > .Sh NAME > > > > @@ -453,6 +453,10 @@ Delete a static route from the routing table: > > > > Remove all routes from the routing table: > > > > .Pp > > > > .Dl route flush > > > > +.Pp > > > > +List all routing tables: > > > > +.Pp > > > > +.Dl netstat -r > > > > .Sh DIAGNOSTICS > > > > .Bl -diag > > > > .It "add [host \&| network ] %s: gateway %s flags %x" > > > > @@ -493,6 +497,7 @@ The next-hop gateway should be reachable through a different route. > > > > .El > > > > .Sh SEE ALSO > > > > .\".Xr esis 4 , > > > > +.Xr netstat 1 , > > > > .Xr netintro 4 , > > > > .Xr route 4 , > > > > .Xr arp 8 , > > > > > > > > > > -- > > > Rod Grimes rgrimes@freebsd.org > > > > -- > > > > -- > Rod Grimes rgrimes@freebsd.org -- From owner-dev-commits-src-main@freebsd.org Sat Apr 17 19:56:48 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B78905E17FB; Sat, 17 Apr 2021 19:56:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FN3kS4tlhz3HnY; Sat, 17 Apr 2021 19:56:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9A6971E490; Sat, 17 Apr 2021 19:56:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HJumn3008206; Sat, 17 Apr 2021 19:56:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HJumXa008205; Sat, 17 Apr 2021 19:56:48 GMT (envelope-from git) Date: Sat, 17 Apr 2021 19:56:48 GMT Message-Id: <202104171956.13HJumXa008205@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: e81b14633b0b - main - newbus: Minor update fix. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e81b14633b0ba66d9e03cae693c03e247510ca11 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 19:56:48 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=e81b14633b0ba66d9e03cae693c03e247510ca11 commit e81b14633b0ba66d9e03cae693c03e247510ca11 Author: Warner Losh AuthorDate: 2021-04-17 19:53:01 +0000 Commit: Warner Losh CommitDate: 2021-04-17 19:56:28 +0000 newbus: Minor update fix. driver_t was supposed to just be a quick hack for 4.x compatibility. However, it's been documented now as the preferred API rather than the replacement kobj_class_t. Drop the note about 4.x since it's clear we're a bit late to retiring its use through the tree with almost 1500 references to driver_t. Sponsored by: Netflix --- sys/sys/bus.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/sys/bus.h b/sys/sys/bus.h index 11c8086d7107..668201ffbcd5 100644 --- a/sys/sys/bus.h +++ b/sys/sys/bus.h @@ -164,8 +164,9 @@ typedef void (*dev_lookup_fn)(void *arg, const char *name, EVENTHANDLER_DECLARE(dev_lookup, dev_lookup_fn); /** - * @brief A device driver (included mainly for compatibility with - * FreeBSD 4.x). + * @brief A device driver. + * + * Provides an abstraction layer for driver dispatch. */ typedef struct kobj_class driver_t; From owner-dev-commits-src-main@freebsd.org Sat Apr 17 20:12:49 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1AD765E2191; Sat, 17 Apr 2021 20:12:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FN44x0Gnjz3JMh; Sat, 17 Apr 2021 20:12:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F08291E6B6; Sat, 17 Apr 2021 20:12:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HKCmEs034623; Sat, 17 Apr 2021 20:12:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HKCmaw034622; Sat, 17 Apr 2021 20:12:48 GMT (envelope-from git) Date: Sat, 17 Apr 2021 20:12:48 GMT Message-Id: <202104172012.13HKCmaw034622@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 8403170b3d39 - main - libpfct: Fix PIC flag MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8403170b3d39326f836bc999534fe8c4d41cda11 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 20:12:49 -0000 The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=8403170b3d39326f836bc999534fe8c4d41cda11 commit 8403170b3d39326f836bc999534fe8c4d41cda11 Author: Kristof Provost AuthorDate: 2021-04-16 19:00:51 +0000 Commit: Kristof Provost CommitDate: 2021-04-17 20:10:13 +0000 libpfct: Fix PIC flag Use ${PICFLAG} rather than hard-adding -fPIC, which removes the requirement for libnv to be built PIC. MFC after: 4 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") --- lib/libnv/Makefile | 1 - lib/libpfctl/Makefile | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/libnv/Makefile b/lib/libnv/Makefile index 6105f6244fce..b13758931c4e 100644 --- a/lib/libnv/Makefile +++ b/lib/libnv/Makefile @@ -10,7 +10,6 @@ SHLIB_MAJOR= 0 .PATH: ${SRCTOP}/sys/contrib/libnv ${SRCTOP}/sys/sys CFLAGS+=-I${.CURDIR} -CFLAGS+=${PICFLAG} SRCS= cnvlist.c SRCS+= dnvlist.c diff --git a/lib/libpfctl/Makefile b/lib/libpfctl/Makefile index d7a00a94b349..69500ae496f4 100644 --- a/lib/libpfctl/Makefile +++ b/lib/libpfctl/Makefile @@ -7,6 +7,6 @@ INTERNALLIB= true SRCS= libpfctl.c INCS= libpfctl.h -CFLAGS+= -fPIC +CFLAGS+=${PICFLAG} .include From owner-dev-commits-src-main@freebsd.org Sat Apr 17 20:18:08 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5492C5E23B0; Sat, 17 Apr 2021 20:18:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FN4C41wmwz3Jf7; Sat, 17 Apr 2021 20:18:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3503F1EA19; Sat, 17 Apr 2021 20:18:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HKI8CJ035078; Sat, 17 Apr 2021 20:18:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HKI8px035077; Sat, 17 Apr 2021 20:18:08 GMT (envelope-from git) Date: Sat, 17 Apr 2021 20:18:08 GMT Message-Id: <202104172018.13HKI8px035077@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: c0e41dff700c - main - ports.7: Add an example of setting variables for selected ports MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c0e41dff700cf8a4a06000f19bd2342cd6fe284d Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 20:18:08 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=c0e41dff700cf8a4a06000f19bd2342cd6fe284d commit c0e41dff700cf8a4a06000f19bd2342cd6fe284d Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-01-16 23:10:44 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-17 20:17:38 +0000 ports.7: Add an example of setting variables for selected ports Reviewed by: crees MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D28202 --- share/man/man7/ports.7 | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/share/man/man7/ports.7 b/share/man/man7/ports.7 index c3dbbc680050..64db0e669b1d 100644 --- a/share/man/man7/ports.7 +++ b/share/man/man7/ports.7 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 6, 2021 +.Dd April 17, 2021 .Dt PORTS 7 .Os .Sh NAME @@ -645,6 +645,18 @@ shells_zsh_UNSET= DOCS EXAMPLES .Pp These and other options-related variables are documented in .Pa /usr/ports/Mk/bsd.options.mk . +.It Sy Example 5\&: No Setting Xr make 1 Variables for Specific Ports via Xr make.conf 5 +.Pp +The following example shows how to set arbitrary +.Xr make 1 +variables only specific ports: +.Bd -literal -offset 2n +# Set DISABLE_MAKE_JOBS for the lang/rust port: +\&.if ${.CURDIR:M*/lang/rust} +DISABLE_MAKE_JOBS= yes +TRYBROKEN= yes +\&.endif +.Ed .El .Sh SEE ALSO .Xr make 1 , From owner-dev-commits-src-main@freebsd.org Sat Apr 17 20:36:12 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 91C535E2BF0; Sat, 17 Apr 2021 20:36:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FN4bw3fl9z3Kw2; Sat, 17 Apr 2021 20:36:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 702C51EBC1; Sat, 17 Apr 2021 20:36:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HKaCvM061379; Sat, 17 Apr 2021 20:36:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HKaCwH061378; Sat, 17 Apr 2021 20:36:12 GMT (envelope-from git) Date: Sat, 17 Apr 2021 20:36:12 GMT Message-Id: <202104172036.13HKaCwH061378@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: be6b8b7a3a18 - main - grep: Fix an incorrect description of the -C flag MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: be6b8b7a3a18acb3b044e144d946392fca05e5d0 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 20:36:12 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=be6b8b7a3a18acb3b044e144d946392fca05e5d0 commit be6b8b7a3a18acb3b044e144d946392fca05e5d0 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-02-05 18:38:09 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-17 20:35:15 +0000 grep: Fix an incorrect description of the -C flag It seems that the number of lines is no longer an optional parameter to the -C flag. Document it accordingly both in the manual page and the usage message. Reviewed by: yuripv Approved by: yuripv MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D28509 --- usr.bin/grep/grep.1 | 21 +++++++++------------ usr.bin/grep/grep.c | 4 ++-- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/usr.bin/grep/grep.1 b/usr.bin/grep/grep.1 index 338af7e6d454..5f314d0dff7c 100644 --- a/usr.bin/grep/grep.1 +++ b/usr.bin/grep/grep.1 @@ -30,7 +30,7 @@ .\" .\" @(#)grep.1 8.3 (Berkeley) 4/18/94 .\" -.Dd February 4, 2021 +.Dd April 17, 2021 .Dt GREP 1 .Os .Sh NAME @@ -45,13 +45,13 @@ .Op Fl abcdDEFGHhIiLlmnOopqRSsUVvwxz .Op Fl A Ar num .Op Fl B Ar num -.Op Fl C Ns Op Ar num +.Op Fl C Ar num .Op Fl e Ar pattern .Op Fl f Ar file .Op Fl Fl binary-files= Ns Ar value .Op Fl Fl color Ns Op Cm = Ns Ar when .Op Fl Fl colour Ns Op Cm = Ns Ar when -.Op Fl Fl context Ns Op Cm = Ns Ar num +.Op Fl Fl context= Ns Ar num .Op Fl Fl label .Op Fl Fl line-buffered .Op Fl Fl null @@ -123,18 +123,15 @@ options. .It Fl b , Fl Fl byte-offset The offset in bytes of a matched pattern is displayed in front of the respective matched line. -.It Fl C Ns Oo Ar num Oc , Fl Fl context Ns Oo = Ns Ar num Oc +.It Fl C Ar num , Fl Fl context= Ns Ar num Print .Ar num lines of leading and trailing context surrounding each match. -The default value of -.Ar num -is -.Dq 2 -and is equivalent to -.Dq Fl A Ar 2 Fl B Ar 2 . -Note: -no whitespace may be given between the option and its argument. +See also the +.Fl A +and +.Fl B +options. .It Fl c , Fl Fl count Only a count of selected lines is written to standard output. .It Fl Fl colour= Ns Oo Ar when Oc , Fl Fl color= Ns Oo Ar when Oc diff --git a/usr.bin/grep/grep.c b/usr.bin/grep/grep.c index 166d3451774a..6fbd6bee8ace 100644 --- a/usr.bin/grep/grep.c +++ b/usr.bin/grep/grep.c @@ -57,9 +57,9 @@ const char *errstr[] = { "", /* 1*/ "(standard input)", /* 2*/ "unknown %s option", -/* 3*/ "usage: %s [-abcDEFGHhIiLlmnOoPqRSsUVvwxz] [-A num] [-B num] [-C[num]]\n", +/* 3*/ "usage: %s [-abcDEFGHhIiLlmnOoPqRSsUVvwxz] [-A num] [-B num] [-C num]\n", /* 4*/ "\t[-e pattern] [-f file] [--binary-files=value] [--color=when]\n", -/* 5*/ "\t[--context[=num]] [--directories=action] [--label] [--line-buffered]\n", +/* 5*/ "\t[--context=num] [--directories=action] [--label] [--line-buffered]\n", /* 6*/ "\t[--null] [pattern] [file ...]\n", /* 7*/ "Binary file %s matches\n", /* 8*/ "%s (BSD grep, GNU compatible) %s\n", From owner-dev-commits-src-main@freebsd.org Sat Apr 17 20:54:22 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2DBD35E344F; Sat, 17 Apr 2021 20:54:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FN50t0nbKz3Lnq; Sat, 17 Apr 2021 20:54:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 043571F0A3; Sat, 17 Apr 2021 20:54:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HKsLHV086822; Sat, 17 Apr 2021 20:54:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HKsLcP086821; Sat, 17 Apr 2021 20:54:21 GMT (envelope-from git) Date: Sat, 17 Apr 2021 20:54:21 GMT Message-Id: <202104172054.13HKsLcP086821@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: d25f7d324a9d - main - ports.7: Document DEBUG_FLAGS and the process of debugging ports MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d25f7d324a9d0c33655876b920ba590918d16f4c Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 20:54:22 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=d25f7d324a9d0c33655876b920ba590918d16f4c commit d25f7d324a9d0c33655876b920ba590918d16f4c Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-17 20:51:54 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-17 20:53:39 +0000 ports.7: Document DEBUG_FLAGS and the process of debugging ports Loosely based on https://wiki.freebsd.org/BenWoods/DebuggingPorts. Reviewed by: crees MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D27296 --- share/man/man7/ports.7 | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/share/man/man7/ports.7 b/share/man/man7/ports.7 index 64db0e669b1d..ed1e8633fe27 100644 --- a/share/man/man7/ports.7 +++ b/share/man/man7/ports.7 @@ -572,6 +572,13 @@ If set, debugging symbols are installed for ports binaries. .It Va WITH_DEBUG_PORTS A list of origins for which to set .Va WITH_DEBUG . +.It Va DEBUG_FLAGS +.Pq Default: Ql -g +Additional +.Va CFLAGS +to set when +.Va WITH_DEBUG +is set. .It Va WITH_CCACHE_BUILD .Pq Vt bool If set, enables the use of @@ -657,6 +664,58 @@ DISABLE_MAKE_JOBS= yes TRYBROKEN= yes \&.endif .Ed +.It Sy Example 6\&: No Debugging Ports +By default ports are built and packaged without debugging support (e.g., +debugging symbols are stripped from binaries, optimization flags are used for +compiling, verbose logging is disabled). +Whether ports are built with debugging symbols can be controlled by the +settings in +.Xr make.conf 5 , +e.g., +.Bd -literal -offset 2n +# Enable debugging for all ports. +WITH_DEBUG= yes +# Enable debugging for selected ports. +WITH_DEBUG_PORTS= mail/dovecot security/krb5 +.Ed +.Pp +It is also possible to use the debug variables on the command line: +.Bd -literal -offset 2n +.Li # Ic make -DWITH_DEBUG DEBUG_FLAGS="-g -O0" build +.Ed +.Pp +See the +.Sx MAKE VARIABLES +section to learn more about the debug variables. +.Pp +To understand the details of what happens when the debug variables are set it +is best to consult the files located at +.Pa ${PORTSDIR}/Mk/* +.Po Pa bsd.port.mk +in particular +.Pc . +.Pp +If debugging is enabled for a specific port, the ports framework will: +.Bl -bullet +.It +Add +.Va DEBUG_FLAGS +(defaults to +.Ql -g ) +to +.Va CFLAGS . +.It +Try to prevent the binaries from being stripped (including checking the install +target to replace +.Ql install-strip +with +.Ql install ) . +Whether a binary has been stripped can be checked with +.Xr file 1 . +.It +Try to enable other debugging features like debug build type or verbose logging. +However, this is port-specific and the ports framework might not be aware of +each supported debugging feature a given piece of software has to offer). .El .Sh SEE ALSO .Xr make 1 , From owner-dev-commits-src-main@freebsd.org Sat Apr 17 21:13:06 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B28985E4003; Sat, 17 Apr 2021 21:13:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FN5QV4f1fz3Ms5; Sat, 17 Apr 2021 21:13:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9271F1F614; Sat, 17 Apr 2021 21:13:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HLD6l2014138; Sat, 17 Apr 2021 21:13:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HLD6UI014137; Sat, 17 Apr 2021 21:13:06 GMT (envelope-from git) Date: Sat, 17 Apr 2021 21:13:06 GMT Message-Id: <202104172113.13HLD6UI014137@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: c4207d867c20 - main - fork.2: Add a simple use pattern MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c4207d867c201a726aa3157e09262f72166c89c4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 21:13:06 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=c4207d867c201a726aa3157e09262f72166c89c4 commit c4207d867c201a726aa3157e09262f72166c89c4 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-17 21:10:48 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-17 21:12:06 +0000 fork.2: Add a simple use pattern It seems to be a nice idea to show how fork() is usually used in practice. This may act as a guide to developers who want to quickly recall how to use the fork() function. Reviewed by: bcr, yuripv MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D27626 --- lib/libc/sys/fork.2 | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/lib/libc/sys/fork.2 b/lib/libc/sys/fork.2 index 3e55530827c5..d43ade6a483e 100644 --- a/lib/libc/sys/fork.2 +++ b/lib/libc/sys/fork.2 @@ -28,7 +28,7 @@ .\" @(#)fork.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd December 1, 2017 +.Dd April 17, 2021 .Dt FORK 2 .Os .Sh NAME @@ -99,6 +99,42 @@ to the parent process, no child process is created, and the global variable .Va errno is set to indicate the error. +.Sh EXAMPLES +The following example shows a common pattern of how +.Fn fork +is used in practice. +.Bd -literal -offset indent +#include +#include +#include +#include + +int +main(void) +{ + pid_t pid; + + switch (pid = fork()) { + case -1: + err(1, "Failed to fork"); + case 0: + printf("Hello from child process!\en"); + exit(0); + default: + break; + } + + printf("Hello from parent process (child's PID: %d)!\en", pid); + + return (0); +} +.Ed +.Pp +The output of such a program is along the lines of: +.Bd -literal -offset indent +Hello from parent (child's PID: 27804)! +Hello from child process! +.Ed .Sh ERRORS The .Fn fork From owner-dev-commits-src-main@freebsd.org Sat Apr 17 21:19:23 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7A3D95E418C; Sat, 17 Apr 2021 21:19:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FN5Yl1xKLz3Mkx; Sat, 17 Apr 2021 21:19:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 356261F709; Sat, 17 Apr 2021 21:19:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13HLJNGQ014650; Sat, 17 Apr 2021 21:19:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13HLJNib014649; Sat, 17 Apr 2021 21:19:23 GMT (envelope-from git) Date: Sat, 17 Apr 2021 21:19:23 GMT Message-Id: <202104172119.13HLJNib014649@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 5b9b65e92fb4 - main - Explain the newfs naming convention MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5b9b65e92fb40703038cbcf61feb4616c42e0b6e Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 21:19:23 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=5b9b65e92fb40703038cbcf61feb4616c42e0b6e commit 5b9b65e92fb40703038cbcf61feb4616c42e0b6e Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-01-20 10:40:20 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-17 21:16:17 +0000 Explain the newfs naming convention It might be unclear why newfs and newfs_msdos should cross-reference each other. Add a note explaining it. This is a follow-up to 74bd20769706041108a573601cf0b61c755bdc56. Reported by: kib Reviewed by: imp, kib, rpokala MFC after: 3 days --- sbin/newfs/newfs.8 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sbin/newfs/newfs.8 b/sbin/newfs/newfs.8 index 0cc1d7ce12cf..5213e4109363 100644 --- a/sbin/newfs/newfs.8 +++ b/sbin/newfs/newfs.8 @@ -28,7 +28,7 @@ .\" @(#)newfs.8 8.6 (Berkeley) 5/3/95 .\" $FreeBSD$ .\" -.Dd January 7, 2021 +.Dd April 17, 2021 .Dt NEWFS 8 .Os .Sh NAME @@ -291,6 +291,14 @@ to find the alternate superblocks if the standard superblock is lost. .It Fl S Ar sector-size The size of a sector in bytes (almost never anything but 512). .El +.Sh NOTES ON THE NAMING +.Dq newfs +is a common name prefix for utilities creating filesystems, with the suffix +indicating the type of the filesystem, for instance +.Xr newfs_msdos 8 . +The +.Nm +utility is a special case which predates that convention. .Sh EXAMPLES .Dl newfs /dev/ada3s1a .Pp From owner-dev-commits-src-main@freebsd.org Sat Apr 17 21:20:38 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 64A755E4136; Sat, 17 Apr 2021 21:20:38 +0000 (UTC) (envelope-from mpp302@gmail.com) Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4FN5b93sF3z3N6W; Sat, 17 Apr 2021 21:20:37 +0000 (UTC) (envelope-from mpp302@gmail.com) Received: by mail-ed1-f50.google.com with SMTP id d21so16182794edv.9; Sat, 17 Apr 2021 14:20:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:references:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=O/jjQEeHUWbQImoHKGa1QsmSeZtgV3W8nEEMhP0C+88=; b=UNqygk+EWma3xaw4fu7kpsMRitDttCUipOh9kvtLXeNS3reWwTjJxLxbBcJEjbvgRC 8Q3td9Ut1fLaFET8O0pcf+vyOPnbUz/2CLVo0Kq+IpHcA0462pZQ7LLWft7onE8LHX/9 c6pX7jRK28YG5EI+dl9hqpuIuhCWbWsPfu4Qcvlu5ItLa7XFGwEAsyrVnIr5MjaGIq9A kuHVpuZBwEh6iBrZCF+YMuccJU8ATkJXdPw0sJCh9dwMEY0bSa8yXDR8skQuqGjTzjot N9eMDBOseSMnKJKsD4A1ZlE5G5nZgLO9nDwECE9oFvNiXxwa3vSX5vwebAqzCuSTP1yo UtSg== X-Gm-Message-State: AOAM531OMr+Ha4T0TRgomuc0DoaQAA9jivVmiLXqckLxjD3RH1edcm0+ 8C4eoCEbp+BeIjzzOQY37OKmPT/0kYQKVWmc X-Google-Smtp-Source: ABdhPJzrpZhimw0GXP7KaejGtrFjI8Dt9KVCzbSDh2DExVv1Dc7THz1jI5bLnjDcKOw3jXdp1kMd9A== X-Received: by 2002:a05:6402:176c:: with SMTP id da12mr17070427edb.325.1618694436001; Sat, 17 Apr 2021 14:20:36 -0700 (PDT) Received: from [192.168.0.106] (ip5f5bd493.dynamic.kabel-deutschland.de. [95.91.212.147]) by smtp.gmail.com with ESMTPSA id cn2sm9245034edb.64.2021.04.17.14.20.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 17 Apr 2021 14:20:35 -0700 (PDT) Subject: Re: git: 5b9b65e92fb4 - main - Explain the newfs naming convention From: Mateusz Piotrowski <0mp@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202104172119.13HLJNib014649@gitrepo.freebsd.org> Message-ID: <6e2d98e5-e855-c174-bb21-260cc261b638@FreeBSD.org> Date: Sat, 17 Apr 2021 23:20:46 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Thunderbird/78.9.0 MIME-Version: 1.0 In-Reply-To: <202104172119.13HLJNib014649@gitrepo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Rspamd-Queue-Id: 4FN5b93sF3z3N6W X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of mpp302@gmail.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=mpp302@gmail.com X-Spamd-Result: default: False [1.00 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_DN_NONE(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; FORGED_SENDER(0.30)[0mp@FreeBSD.org,mpp302@gmail.com]; RECEIVED_SPAMHAUS_PBL(0.00)[95.91.212.147:received]; MIME_TRACE(0.00)[0:+]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; MID_RHS_MATCH_FROM(0.00)[]; RBL_DBL_DONT_QUERY_IPS(0.00)[209.85.208.50:from]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; ARC_NA(0.00)[]; FROM_NEQ_ENVFROM(0.00)[0mp@FreeBSD.org,mpp302@gmail.com]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[FreeBSD.org]; NEURAL_SPAM_MEDIUM(1.00)[1.000]; NEURAL_SPAM_SHORT(1.00)[0.999]; SPAMHAUS_ZRD(0.00)[209.85.208.50:from:127.0.2.255]; RCVD_IN_DNSWL_NONE(0.00)[209.85.208.50:from]; RWL_MAILSPIKE_POSSIBLE(0.00)[209.85.208.50:from]; RCVD_TLS_ALL(0.00)[]; MAILMAN_DEST(0.00)[dev-commits-src-main,dev-commits-src-all] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 21:20:38 -0000 On 17/04/2021 23:19, Mateusz Piotrowski wrote: > The branch main has been updated by 0mp (doc, ports committer): > > URL: https://cgit.FreeBSD.org/src/commit/?id=5b9b65e92fb40703038cbcf61feb4616c42e0b6e > > commit 5b9b65e92fb40703038cbcf61feb4616c42e0b6e > Author: Mateusz Piotrowski <0mp@FreeBSD.org> > AuthorDate: 2021-01-20 10:40:20 +0000 > Commit: Mateusz Piotrowski <0mp@FreeBSD.org> > CommitDate: 2021-04-17 21:16:17 +0000 > > Explain the newfs naming convention > > It might be unclear why newfs and newfs_msdos should cross-reference > each other. Add a note explaining it. > > This is a follow-up to 74bd20769706041108a573601cf0b61c755bdc56. > > Reported by: kib > Reviewed by: imp, kib, rpokala > MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D28251 From owner-dev-commits-src-main@freebsd.org Sun Apr 18 00:33:42 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 225AB5E825F; Sun, 18 Apr 2021 00:33:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FN9sy0Lq0z3ldM; Sun, 18 Apr 2021 00:33:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F282821BEA; Sun, 18 Apr 2021 00:33:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13I0Xfno077317; Sun, 18 Apr 2021 00:33:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13I0Xf7G077316; Sun, 18 Apr 2021 00:33:41 GMT (envelope-from git) Date: Sun, 18 Apr 2021 00:33:41 GMT Message-Id: <202104180033.13I0Xf7G077316@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Cy Schubert Subject: git: 55fc118be8f0 - main - contrib/wpa: Complete the revert of Import wpa. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 55fc118be8f0cd20e2123cfd2728c5f32317a9fa Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 00:33:42 -0000 The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=55fc118be8f0cd20e2123cfd2728c5f32317a9fa commit 55fc118be8f0cd20e2123cfd2728c5f32317a9fa Author: Cy Schubert AuthorDate: 2021-04-18 00:28:11 +0000 Commit: Cy Schubert CommitDate: 2021-04-18 00:33:36 +0000 contrib/wpa: Complete the revert of Import wpa. Remove files added by b51f459a2098622c31ed54f5c1bf0e03efce403b. The util/config.c conflicts with wpa_supplicant/config.c causing the linker error. The proper approach would have been to prepare the wpa build to build the various subdirectories into .a libraries. SRCS makes no distinction between files of the same name. The MFV accounted for this but the revert failed to remove the additional files, including the conflicting utils/config.c. --- contrib/wpa/.gitignore | 0 contrib/wpa/Android.mk | 0 contrib/wpa/build_release | 0 contrib/wpa/doc/.gitignore | 0 contrib/wpa/doc/Makefile | 0 contrib/wpa/doc/code_structure.doxygen | 0 contrib/wpa/doc/ctrl_iface.doxygen | 0 contrib/wpa/doc/dbus.doxygen | 0 contrib/wpa/doc/directories.doxygen | 0 contrib/wpa/doc/doxygen.conf | 0 contrib/wpa/doc/driver_wrapper.doxygen | 0 contrib/wpa/doc/eap.doxygen | 0 contrib/wpa/doc/eap_server.doxygen | 0 contrib/wpa/doc/hostapd.fig | 0 contrib/wpa/doc/hostapd_ctrl_iface.doxygen | 0 contrib/wpa/doc/mainpage.doxygen | 0 contrib/wpa/doc/p2p.doxygen | 0 contrib/wpa/doc/p2p_arch.dot | 0 contrib/wpa/doc/p2p_arch2.dot | 0 contrib/wpa/doc/p2p_sm.dot | 0 contrib/wpa/doc/porting.doxygen | 0 contrib/wpa/doc/testing_tools.doxygen | 0 contrib/wpa/doc/wpa_supplicant.fig | 0 contrib/wpa/eap_example/.gitignore | 0 contrib/wpa/eap_example/Makefile | 0 contrib/wpa/eap_example/README | 0 contrib/wpa/eap_example/ca.pem | 0 contrib/wpa/eap_example/dh.conf | 0 contrib/wpa/eap_example/eap_example.c | 0 contrib/wpa/eap_example/eap_example_peer.c | 0 contrib/wpa/eap_example/eap_example_server.c | 0 contrib/wpa/eap_example/server-key.pem | 0 contrib/wpa/eap_example/server.key | 0 contrib/wpa/eap_example/server.pem | 0 contrib/wpa/hostapd/.gitignore | 0 contrib/wpa/hostapd/sae_pk_gen.c | 0 contrib/wpa/hs20/server/.gitignore | 0 contrib/wpa/hs20/server/Makefile | 0 contrib/wpa/hs20/server/ca/clean.sh | 0 contrib/wpa/hs20/server/ca/est-csrattrs.cnf | 0 contrib/wpa/hs20/server/ca/est-csrattrs.sh | 0 contrib/wpa/hs20/server/ca/hs20.oid | 0 contrib/wpa/hs20/server/ca/ocsp-req.sh | 0 contrib/wpa/hs20/server/ca/ocsp-responder-ica.sh | 0 contrib/wpa/hs20/server/ca/ocsp-responder.sh | 0 contrib/wpa/hs20/server/ca/ocsp-update-cache.sh | 0 contrib/wpa/hs20/server/ca/openssl-root.cnf | 0 contrib/wpa/hs20/server/ca/openssl.cnf | 0 contrib/wpa/hs20/server/ca/setup.sh | 0 contrib/wpa/hs20/server/ca/w1fi_logo.png | Bin 7549 -> 0 bytes contrib/wpa/hs20/server/hs20-osu-server.txt | 0 contrib/wpa/hs20/server/hs20_spp_server.c | 0 contrib/wpa/hs20/server/spp_server.c | 0 contrib/wpa/hs20/server/spp_server.h | 0 contrib/wpa/hs20/server/sql-example.txt | 0 contrib/wpa/hs20/server/sql.txt | 0 contrib/wpa/hs20/server/www/add-free.php | 0 contrib/wpa/hs20/server/www/add-mo.php | 0 contrib/wpa/hs20/server/www/cert-enroll.php | 0 contrib/wpa/hs20/server/www/config.php | 0 contrib/wpa/hs20/server/www/est.php | 0 contrib/wpa/hs20/server/www/free-remediation.php | 0 contrib/wpa/hs20/server/www/free.php | 0 contrib/wpa/hs20/server/www/redirect.php | 0 contrib/wpa/hs20/server/www/remediation-pw.php | 0 contrib/wpa/hs20/server/www/remediation.php | 0 contrib/wpa/hs20/server/www/signup.php | 0 contrib/wpa/hs20/server/www/spp.php | 0 contrib/wpa/hs20/server/www/terms.php | 0 contrib/wpa/hs20/server/www/users.php | 0 contrib/wpa/radius_example/.gitignore | 0 contrib/wpa/radius_example/Makefile | 0 contrib/wpa/radius_example/README | 0 contrib/wpa/radius_example/radius_example.c | 0 contrib/wpa/src/build.rules | 0 contrib/wpa/src/common/brcm_vendor.h | 0 contrib/wpa/src/common/dpp_auth.c | 0 contrib/wpa/src/common/dpp_backup.c | 0 contrib/wpa/src/common/dpp_crypto.c | 0 contrib/wpa/src/common/dpp_i.h | 0 contrib/wpa/src/common/dpp_pkex.c | 0 contrib/wpa/src/common/dpp_reconfig.c | 0 contrib/wpa/src/common/dpp_tcp.c | 0 contrib/wpa/src/common/ptksa_cache.c | 0 contrib/wpa/src/common/ptksa_cache.h | 0 contrib/wpa/src/common/sae_pk.c | 0 contrib/wpa/src/crypto/sha384-tlsprf.c | 0 contrib/wpa/src/eap_peer/.gitignore | 0 contrib/wpa/src/objs.mk | 0 contrib/wpa/src/utils/config.c | 0 contrib/wpa/src/utils/config.h | 0 contrib/wpa/src/utils/ext_password_file.c | 0 contrib/wpa/tests/.gitignore | 0 contrib/wpa/tests/Makefile | 0 contrib/wpa/tests/README | 0 contrib/wpa/tests/cipher-and-key-mgmt-testing.txt | 0 contrib/wpa/tests/fuzzing/README | 0 contrib/wpa/tests/fuzzing/ap-mgmt/.gitignore | 0 contrib/wpa/tests/fuzzing/ap-mgmt/Makefile | 0 contrib/wpa/tests/fuzzing/ap-mgmt/ap-mgmt.c | 0 .../wpa/tests/fuzzing/ap-mgmt/corpus/multi-sae-ffc.dat | Bin 506 -> 0 bytes contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi-sae.dat | Bin 346 -> 0 bytes contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi.dat | Bin 246 -> 0 bytes contrib/wpa/tests/fuzzing/asn1/.gitignore | 0 contrib/wpa/tests/fuzzing/asn1/Makefile | 0 contrib/wpa/tests/fuzzing/asn1/asn1.c | 0 contrib/wpa/tests/fuzzing/asn1/corpus/ca.der | Bin 560 -> 0 bytes .../fuzzing/asn1/corpus/ocsp-multi-server-cache.der | Bin 346 -> 0 bytes contrib/wpa/tests/fuzzing/asn1/corpus/ocsp-req.der | Bin 76 -> 0 bytes contrib/wpa/tests/fuzzing/build-test.sh | 0 contrib/wpa/tests/fuzzing/dpp-uri/.gitignore | 0 contrib/wpa/tests/fuzzing/dpp-uri/Makefile | 0 contrib/wpa/tests/fuzzing/dpp-uri/corpus/1.dat | 0 contrib/wpa/tests/fuzzing/dpp-uri/corpus/2.dat | 0 contrib/wpa/tests/fuzzing/dpp-uri/corpus/3.dat | 0 contrib/wpa/tests/fuzzing/dpp-uri/dpp-uri.c | 0 contrib/wpa/tests/fuzzing/eap-aka-peer/.gitignore | 0 contrib/wpa/tests/fuzzing/eap-aka-peer/Makefile | 0 contrib/wpa/tests/fuzzing/eap-aka-peer/corpus/server.msg | Bin 520 -> 0 bytes contrib/wpa/tests/fuzzing/eap-aka-peer/eap-aka-peer.c | 0 contrib/wpa/tests/fuzzing/eap-mschapv2-peer/.gitignore | 0 contrib/wpa/tests/fuzzing/eap-mschapv2-peer/Makefile | 0 .../tests/fuzzing/eap-mschapv2-peer/corpus/server.msg | Bin 304 -> 0 bytes .../tests/fuzzing/eap-mschapv2-peer/eap-mschapv2-peer.c | 0 contrib/wpa/tests/fuzzing/eap-sim-peer/.gitignore | 0 contrib/wpa/tests/fuzzing/eap-sim-peer/Makefile | 0 contrib/wpa/tests/fuzzing/eap-sim-peer/corpus/server.msg | Bin 340 -> 0 bytes contrib/wpa/tests/fuzzing/eap-sim-peer/eap-sim-peer.c | 0 contrib/wpa/tests/fuzzing/eapol-key-auth/.gitignore | 0 contrib/wpa/tests/fuzzing/eapol-key-auth/Makefile | 0 contrib/wpa/tests/fuzzing/eapol-key-auth/corpus/supp.msg | Bin 549 -> 0 bytes .../wpa/tests/fuzzing/eapol-key-auth/eapol-key-auth.c | 0 contrib/wpa/tests/fuzzing/eapol-key-supp/.gitignore | 0 contrib/wpa/tests/fuzzing/eapol-key-supp/Makefile | 0 contrib/wpa/tests/fuzzing/eapol-key-supp/corpus/auth.msg | Bin 580 -> 0 bytes .../wpa/tests/fuzzing/eapol-key-supp/eapol-key-supp.c | 0 contrib/wpa/tests/fuzzing/eapol-supp/.gitignore | 0 contrib/wpa/tests/fuzzing/eapol-supp/Makefile | 0 .../tests/fuzzing/eapol-supp/corpus/eap-req-identity.dat | Bin 9 -> 0 bytes .../wpa/tests/fuzzing/eapol-supp/corpus/eap-req-sim.dat | Bin 24 -> 0 bytes .../wpa/tests/fuzzing/eapol-supp/corpus/eapol-key-m1.dat | Bin 99 -> 0 bytes contrib/wpa/tests/fuzzing/eapol-supp/eapol-supp.c | 0 contrib/wpa/tests/fuzzing/fuzzer-common.c | 0 contrib/wpa/tests/fuzzing/fuzzer-common.h | 0 contrib/wpa/tests/fuzzing/json/.gitignore | 0 contrib/wpa/tests/fuzzing/json/Makefile | 0 contrib/wpa/tests/fuzzing/json/corpus/1.json | 0 contrib/wpa/tests/fuzzing/json/corpus/2.json | 0 contrib/wpa/tests/fuzzing/json/corpus/3.json | 0 contrib/wpa/tests/fuzzing/json/json.c | 0 contrib/wpa/tests/fuzzing/p2p/.gitignore | 0 contrib/wpa/tests/fuzzing/p2p/Makefile | 0 contrib/wpa/tests/fuzzing/p2p/corpus/go-neg-req.dat | Bin 155 -> 0 bytes contrib/wpa/tests/fuzzing/p2p/corpus/invitation-req.dat | Bin 123 -> 0 bytes contrib/wpa/tests/fuzzing/p2p/corpus/p2ps-pd-req.dat | Bin 189 -> 0 bytes contrib/wpa/tests/fuzzing/p2p/corpus/proberesp-go.dat | Bin 306 -> 0 bytes contrib/wpa/tests/fuzzing/p2p/corpus/proberesp.dat | Bin 209 -> 0 bytes contrib/wpa/tests/fuzzing/p2p/p2p.c | 0 contrib/wpa/tests/fuzzing/rules.include | 0 contrib/wpa/tests/fuzzing/sae/.gitignore | 0 contrib/wpa/tests/fuzzing/sae/Makefile | 0 .../sae/corpus/sae-commit-h2e-rejected-groups.dat | Bin 102 -> 0 bytes .../tests/fuzzing/sae/corpus/sae-commit-h2e-token.dat | Bin 101 -> 0 bytes .../wpa/tests/fuzzing/sae/corpus/sae-commit-pw-id.dat | Bin 101 -> 0 bytes .../wpa/tests/fuzzing/sae/corpus/sae-commit-token.dat | Bin 130 -> 0 bytes .../wpa/tests/fuzzing/sae/corpus/sae-commit-valid.dat | Bin 98 -> 0 bytes contrib/wpa/tests/fuzzing/sae/sae.c | 0 contrib/wpa/tests/fuzzing/tls-client/.gitignore | 0 contrib/wpa/tests/fuzzing/tls-client/Makefile | 0 contrib/wpa/tests/fuzzing/tls-client/corpus/server.msg | Bin 1902 -> 0 bytes contrib/wpa/tests/fuzzing/tls-client/tls-client.c | 0 contrib/wpa/tests/fuzzing/tls-server/.gitignore | 0 contrib/wpa/tests/fuzzing/tls-server/Makefile | 0 contrib/wpa/tests/fuzzing/tls-server/corpus/client.msg | Bin 391 -> 0 bytes contrib/wpa/tests/fuzzing/tls-server/tls-server.c | 0 contrib/wpa/tests/fuzzing/wnm/.gitignore | 0 contrib/wpa/tests/fuzzing/wnm/Makefile | 0 contrib/wpa/tests/fuzzing/wnm/corpus/bss-tm-req.dat | Bin 31 -> 0 bytes contrib/wpa/tests/fuzzing/wnm/corpus/oss-fuzz-0001.dat | Bin 64 -> 0 bytes contrib/wpa/tests/fuzzing/wnm/corpus/oss-fuzz-0002.dat | Bin 104 -> 0 bytes contrib/wpa/tests/fuzzing/wnm/corpus/wnm-notif.dat | Bin 56 -> 0 bytes contrib/wpa/tests/fuzzing/wnm/wnm.c | 0 contrib/wpa/tests/fuzzing/x509/.gitignore | 0 contrib/wpa/tests/fuzzing/x509/Makefile | 0 contrib/wpa/tests/fuzzing/x509/corpus/ca.der | Bin 560 -> 0 bytes contrib/wpa/tests/fuzzing/x509/corpus/oss-fuzz-15408 | 0 contrib/wpa/tests/fuzzing/x509/x509.c | 0 contrib/wpa/tests/hwsim/.gitignore | 0 contrib/wpa/tests/hwsim/README | 0 contrib/wpa/tests/hwsim/auth_serv/as.conf | 0 contrib/wpa/tests/hwsim/auth_serv/as2.conf | 0 contrib/wpa/tests/hwsim/auth_serv/ca-and-crl-expired.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ca-and-crl.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ca-incorrect-key.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ca-incorrect.der | Bin 902 -> 0 bytes contrib/wpa/tests/hwsim/auth_serv/ca-incorrect.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ca-key.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ca.der | Bin 868 -> 0 bytes contrib/wpa/tests/hwsim/auth_serv/ca.pem | 0 contrib/wpa/tests/hwsim/auth_serv/dh.conf | 0 contrib/wpa/tests/hwsim/auth_serv/dh2.conf | 0 contrib/wpa/tests/hwsim/auth_serv/dh_param_3072.pem | 0 contrib/wpa/tests/hwsim/auth_serv/dsaparam.pem | 0 contrib/wpa/tests/hwsim/auth_serv/eap_user.conf | 0 contrib/wpa/tests/hwsim/auth_serv/eap_user_vlan.conf | 0 contrib/wpa/tests/hwsim/auth_serv/ec-ca-openssl.cnf | 0 contrib/wpa/tests/hwsim/auth_serv/ec-ca.key | 0 contrib/wpa/tests/hwsim/auth_serv/ec-ca.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ec-generate.sh | 0 contrib/wpa/tests/hwsim/auth_serv/ec-server.key | 0 contrib/wpa/tests/hwsim/auth_serv/ec-server.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ec-user.key | 0 contrib/wpa/tests/hwsim/auth_serv/ec-user.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ec2-ca.key | 0 contrib/wpa/tests/hwsim/auth_serv/ec2-ca.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ec2-generate.sh | 0 contrib/wpa/tests/hwsim/auth_serv/ec2-server.key | 0 contrib/wpa/tests/hwsim/auth_serv/ec2-server.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ec2-user-p256.key | 0 contrib/wpa/tests/hwsim/auth_serv/ec2-user-p256.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ec2-user.key | 0 contrib/wpa/tests/hwsim/auth_serv/ec2-user.pem | 0 contrib/wpa/tests/hwsim/auth_serv/hlr_auc_gw.gsm | 0 contrib/wpa/tests/hwsim/auth_serv/hlr_auc_gw.milenage_db | 0 .../wpa/tests/hwsim/auth_serv/iCA-server/ca-and-root.pem | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-server/cacert.pem | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-server/careq.pem | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-server/index.txt | 0 .../wpa/tests/hwsim/auth_serv/iCA-server/index.txt.attr | 0 .../tests/hwsim/auth_serv/iCA-server/private/cakey.pem | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-server/serial | 0 .../tests/hwsim/auth_serv/iCA-server/server-revoked.key | 0 .../tests/hwsim/auth_serv/iCA-server/server-revoked.pem | 0 .../tests/hwsim/auth_serv/iCA-server/server-revoked.req | 0 .../auth_serv/iCA-server/server-revoked_and_ica.pem | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-server/server.key | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-server/server.pem | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-server/server.req | 0 .../tests/hwsim/auth_serv/iCA-server/server_and_ica.pem | 0 .../wpa/tests/hwsim/auth_serv/iCA-user/ca-and-root.pem | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-user/cacert.pem | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-user/careq.pem | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-user/index.txt | 0 .../wpa/tests/hwsim/auth_serv/iCA-user/index.txt.attr | 0 .../wpa/tests/hwsim/auth_serv/iCA-user/private/cakey.pem | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-user/serial | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-user/user.key | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-user/user.pem | 0 contrib/wpa/tests/hwsim/auth_serv/iCA-user/user.req | 0 .../wpa/tests/hwsim/auth_serv/iCA-user/user_and_ica.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ica-generate.sh | 0 contrib/wpa/tests/hwsim/auth_serv/index-revoked.txt | 0 contrib/wpa/tests/hwsim/auth_serv/index-unknown.txt | 0 contrib/wpa/tests/hwsim/auth_serv/index.txt | 0 .../tests/hwsim/auth_serv/ocsp-multi-server-cache.der | Bin 493 -> 0 bytes contrib/wpa/tests/hwsim/auth_serv/ocsp-req.der | Bin 76 -> 0 bytes contrib/wpa/tests/hwsim/auth_serv/ocsp-responder.csr | 0 contrib/wpa/tests/hwsim/auth_serv/ocsp-responder.key | 0 contrib/wpa/tests/hwsim/auth_serv/ocsp-responder.pem | 0 contrib/wpa/tests/hwsim/auth_serv/ocsp-server-cache.der | Bin 490 -> 0 bytes .../tests/hwsim/auth_serv/ocsp-server-cache.der-invalid | Bin 343 -> 0 bytes contrib/wpa/tests/hwsim/auth_serv/openssl2.cnf | 0 contrib/wpa/tests/hwsim/auth_serv/radius_clients.conf | 0 .../wpa/tests/hwsim/auth_serv/radius_clients_ipv6.conf | 0 .../wpa/tests/hwsim/auth_serv/radius_clients_none.conf | 0 contrib/wpa/tests/hwsim/auth_serv/rootCA/index.txt | 0 contrib/wpa/tests/hwsim/auth_serv/rootCA/index.txt.attr | 0 contrib/wpa/tests/hwsim/auth_serv/rootCA/serial | 0 contrib/wpa/tests/hwsim/auth_serv/rsa3072-ca.key | 0 contrib/wpa/tests/hwsim/auth_serv/rsa3072-ca.pem | 0 contrib/wpa/tests/hwsim/auth_serv/rsa3072-generate.sh | 0 contrib/wpa/tests/hwsim/auth_serv/rsa3072-server.key | 0 contrib/wpa/tests/hwsim/auth_serv/rsa3072-server.pem | 0 contrib/wpa/tests/hwsim/auth_serv/rsa3072-server.req | 0 .../wpa/tests/hwsim/auth_serv/rsa3072-user-rsa2048.key | 0 .../wpa/tests/hwsim/auth_serv/rsa3072-user-rsa2048.pem | 0 .../wpa/tests/hwsim/auth_serv/rsa3072-user-rsa2048.req | 0 contrib/wpa/tests/hwsim/auth_serv/rsa3072-user.key | 0 contrib/wpa/tests/hwsim/auth_serv/rsa3072-user.pem | 0 contrib/wpa/tests/hwsim/auth_serv/rsa3072-user.req | 0 contrib/wpa/tests/hwsim/auth_serv/server-certpol.csr | 0 contrib/wpa/tests/hwsim/auth_serv/server-certpol.key | 0 contrib/wpa/tests/hwsim/auth_serv/server-certpol.pem | 0 contrib/wpa/tests/hwsim/auth_serv/server-certpol2.csr | 0 contrib/wpa/tests/hwsim/auth_serv/server-certpol2.key | 0 contrib/wpa/tests/hwsim/auth_serv/server-certpol2.pem | 0 .../tests/hwsim/auth_serv/server-eku-client-server.csr | 0 .../tests/hwsim/auth_serv/server-eku-client-server.key | 0 .../tests/hwsim/auth_serv/server-eku-client-server.pem | 0 contrib/wpa/tests/hwsim/auth_serv/server-eku-client.csr | 0 contrib/wpa/tests/hwsim/auth_serv/server-eku-client.key | 0 contrib/wpa/tests/hwsim/auth_serv/server-eku-client.pem | 0 contrib/wpa/tests/hwsim/auth_serv/server-expired.csr | 0 contrib/wpa/tests/hwsim/auth_serv/server-expired.key | 0 contrib/wpa/tests/hwsim/auth_serv/server-expired.pem | 0 contrib/wpa/tests/hwsim/auth_serv/server-extra.pkcs12 | Bin 3418 -> 0 bytes .../wpa/tests/hwsim/auth_serv/server-long-duration.csr | 0 .../wpa/tests/hwsim/auth_serv/server-long-duration.key | 0 .../wpa/tests/hwsim/auth_serv/server-long-duration.pem | 0 contrib/wpa/tests/hwsim/auth_serv/server-no-dnsname.csr | 0 contrib/wpa/tests/hwsim/auth_serv/server-no-dnsname.key | 0 contrib/wpa/tests/hwsim/auth_serv/server-no-dnsname.pem | 0 contrib/wpa/tests/hwsim/auth_serv/server.csr | 0 contrib/wpa/tests/hwsim/auth_serv/server.key | 0 contrib/wpa/tests/hwsim/auth_serv/server.pem | 0 contrib/wpa/tests/hwsim/auth_serv/server.pkcs12 | Bin 2549 -> 0 bytes contrib/wpa/tests/hwsim/auth_serv/sha384-server.key | 0 contrib/wpa/tests/hwsim/auth_serv/sha384-server.pem | 0 contrib/wpa/tests/hwsim/auth_serv/sha384-user.key | 0 contrib/wpa/tests/hwsim/auth_serv/sha384-user.pem | 0 contrib/wpa/tests/hwsim/auth_serv/sha512-ca.key | 0 contrib/wpa/tests/hwsim/auth_serv/sha512-ca.pem | 0 contrib/wpa/tests/hwsim/auth_serv/sha512-generate.sh | 0 contrib/wpa/tests/hwsim/auth_serv/sha512-server.key | 0 contrib/wpa/tests/hwsim/auth_serv/sha512-server.pem | 0 contrib/wpa/tests/hwsim/auth_serv/sha512-user.key | 0 contrib/wpa/tests/hwsim/auth_serv/sha512-user.pem | 0 contrib/wpa/tests/hwsim/auth_serv/update.sh | 0 contrib/wpa/tests/hwsim/auth_serv/user.csr | 0 contrib/wpa/tests/hwsim/auth_serv/user.key | 0 contrib/wpa/tests/hwsim/auth_serv/user.key.pkcs8 | 0 .../wpa/tests/hwsim/auth_serv/user.key.pkcs8.pkcs5v15 | 0 contrib/wpa/tests/hwsim/auth_serv/user.pem | 0 contrib/wpa/tests/hwsim/auth_serv/user.pkcs12 | Bin 2517 -> 0 bytes contrib/wpa/tests/hwsim/auth_serv/user.rsa-key | 0 contrib/wpa/tests/hwsim/auth_serv/user2.pkcs12 | Bin 3558 -> 0 bytes contrib/wpa/tests/hwsim/auth_serv/user3.pkcs12 | Bin 3524 -> 0 bytes contrib/wpa/tests/hwsim/build.sh | 0 contrib/wpa/tests/hwsim/check_kernel.py | 0 contrib/wpa/tests/hwsim/devdetail.xml | 0 contrib/wpa/tests/hwsim/devinfo.xml | 0 contrib/wpa/tests/hwsim/dictionary.radius | 0 contrib/wpa/tests/hwsim/example-hostapd.config | 0 contrib/wpa/tests/hwsim/example-setup.txt | 0 contrib/wpa/tests/hwsim/example-wpa_supplicant.config | 0 contrib/wpa/tests/hwsim/fst_module_aux.py | 0 contrib/wpa/tests/hwsim/fst_test_common.py | 0 contrib/wpa/tests/hwsim/hostapd.py | 0 contrib/wpa/tests/hwsim/hostapd.vlan | 0 contrib/wpa/tests/hwsim/hostapd.vlan2 | 0 contrib/wpa/tests/hwsim/hostapd.wlan3.vlan | 0 contrib/wpa/tests/hwsim/hostapd.wlan4.vlan | 0 contrib/wpa/tests/hwsim/hostapd.wpa_psk | 0 contrib/wpa/tests/hwsim/hwsim.py | 0 contrib/wpa/tests/hwsim/hwsim_utils.py | 0 contrib/wpa/tests/hwsim/multi-bss-acs.conf | 0 contrib/wpa/tests/hwsim/multi-bss-iface-per_sta_vif.conf | 0 contrib/wpa/tests/hwsim/multi-bss-iface.conf | 0 contrib/wpa/tests/hwsim/multi-bss.conf | 0 contrib/wpa/tests/hwsim/netlink.py | 0 contrib/wpa/tests/hwsim/nl80211.py | 0 contrib/wpa/tests/hwsim/owe-bss-1.conf | 0 contrib/wpa/tests/hwsim/owe-bss-2.conf | 0 contrib/wpa/tests/hwsim/p2p0.conf | 0 contrib/wpa/tests/hwsim/p2p1.conf | 0 contrib/wpa/tests/hwsim/p2p2.conf | 0 contrib/wpa/tests/hwsim/p2p_utils.py | 0 contrib/wpa/tests/hwsim/pps-mo-1.xml | 0 contrib/wpa/tests/hwsim/radius_das.py | 0 contrib/wpa/tests/hwsim/remotehost.py | 0 contrib/wpa/tests/hwsim/rfkill.py | 0 contrib/wpa/tests/hwsim/run-all.sh | 0 contrib/wpa/tests/hwsim/run-tests.py | 0 contrib/wpa/tests/hwsim/start.sh | 0 contrib/wpa/tests/hwsim/stop.sh | 0 contrib/wpa/tests/hwsim/test_ap_acs.py | 0 contrib/wpa/tests/hwsim/test_ap_ciphers.py | 0 contrib/wpa/tests/hwsim/test_ap_config.py | 0 contrib/wpa/tests/hwsim/test_ap_csa.py | 0 contrib/wpa/tests/hwsim/test_ap_dynamic.py | 0 contrib/wpa/tests/hwsim/test_ap_eap.py | 0 contrib/wpa/tests/hwsim/test_ap_ft.py | 0 contrib/wpa/tests/hwsim/test_ap_hs20.py | 0 contrib/wpa/tests/hwsim/test_ap_ht.py | 0 contrib/wpa/tests/hwsim/test_ap_mixed.py | 0 contrib/wpa/tests/hwsim/test_ap_open.py | 0 contrib/wpa/tests/hwsim/test_ap_params.py | 0 contrib/wpa/tests/hwsim/test_ap_pmf.py | 0 contrib/wpa/tests/hwsim/test_ap_psk.py | 0 contrib/wpa/tests/hwsim/test_ap_qosmap.py | 0 contrib/wpa/tests/hwsim/test_ap_roam.py | 0 contrib/wpa/tests/hwsim/test_ap_tdls.py | 0 contrib/wpa/tests/hwsim/test_ap_track.py | 0 contrib/wpa/tests/hwsim/test_ap_vht.py | 0 contrib/wpa/tests/hwsim/test_ap_vlan.py | 0 contrib/wpa/tests/hwsim/test_ap_wps.py | 0 contrib/wpa/tests/hwsim/test_authsrv.py | 0 contrib/wpa/tests/hwsim/test_autoscan.py | 0 contrib/wpa/tests/hwsim/test_bgscan.py | 0 contrib/wpa/tests/hwsim/test_cert_check.py | 0 contrib/wpa/tests/hwsim/test_cfg80211.py | 0 contrib/wpa/tests/hwsim/test_connect_cmd.py | 0 contrib/wpa/tests/hwsim/test_dbus.py | 0 contrib/wpa/tests/hwsim/test_dfs.py | 0 contrib/wpa/tests/hwsim/test_dpp.py | 0 contrib/wpa/tests/hwsim/test_eap.py | 0 contrib/wpa/tests/hwsim/test_eap_proto.py | 0 contrib/wpa/tests/hwsim/test_erp.py | 0 contrib/wpa/tests/hwsim/test_ext_password.py | 0 contrib/wpa/tests/hwsim/test_fils.py | 0 contrib/wpa/tests/hwsim/test_fst_config.py | 0 contrib/wpa/tests/hwsim/test_fst_module.py | 0 contrib/wpa/tests/hwsim/test_gas.py | 0 contrib/wpa/tests/hwsim/test_hapd_ctrl.py | 0 contrib/wpa/tests/hwsim/test_he.py | 0 contrib/wpa/tests/hwsim/test_hostapd_oom.py | 0 contrib/wpa/tests/hwsim/test_hs20_filter.py | 0 contrib/wpa/tests/hwsim/test_hs20_pps_mo.py | 0 contrib/wpa/tests/hwsim/test_ibss.py | 0 contrib/wpa/tests/hwsim/test_ieee8021x.py | 0 contrib/wpa/tests/hwsim/test_kernel.py | 0 contrib/wpa/tests/hwsim/test_macsec.py | 0 contrib/wpa/tests/hwsim/test_mbo.py | 0 contrib/wpa/tests/hwsim/test_module_tests.py | 0 contrib/wpa/tests/hwsim/test_monitor_interface.py | 0 contrib/wpa/tests/hwsim/test_mscs.py | 0 contrib/wpa/tests/hwsim/test_multi_ap.py | 0 contrib/wpa/tests/hwsim/test_nfc_p2p.py | 0 contrib/wpa/tests/hwsim/test_nfc_wps.py | 0 contrib/wpa/tests/hwsim/test_oce.py | 0 contrib/wpa/tests/hwsim/test_ocv.py | 0 contrib/wpa/tests/hwsim/test_offchannel_tx.py | 0 contrib/wpa/tests/hwsim/test_owe.py | 0 contrib/wpa/tests/hwsim/test_p2p_autogo.py | 0 contrib/wpa/tests/hwsim/test_p2p_channel.py | 0 contrib/wpa/tests/hwsim/test_p2p_concurrency.py | 0 contrib/wpa/tests/hwsim/test_p2p_device.py | 0 contrib/wpa/tests/hwsim/test_p2p_discovery.py | 0 contrib/wpa/tests/hwsim/test_p2p_ext.py | 0 contrib/wpa/tests/hwsim/test_p2p_grpform.py | 0 contrib/wpa/tests/hwsim/test_p2p_invitation.py | 0 contrib/wpa/tests/hwsim/test_p2p_messages.py | 0 contrib/wpa/tests/hwsim/test_p2p_persistent.py | 0 contrib/wpa/tests/hwsim/test_p2p_service.py | 0 contrib/wpa/tests/hwsim/test_p2p_set.py | 0 contrib/wpa/tests/hwsim/test_p2p_wifi_display.py | 0 contrib/wpa/tests/hwsim/test_p2ps.py | 0 contrib/wpa/tests/hwsim/test_pasn.py | 0 contrib/wpa/tests/hwsim/test_pmksa_cache.py | 0 contrib/wpa/tests/hwsim/test_radio_work.py | 0 contrib/wpa/tests/hwsim/test_radius.py | 0 contrib/wpa/tests/hwsim/test_rfkill.py | 0 contrib/wpa/tests/hwsim/test_rrm.py | 0 contrib/wpa/tests/hwsim/test_sae.py | 0 contrib/wpa/tests/hwsim/test_sae_pk.py | 0 contrib/wpa/tests/hwsim/test_scan.py | 0 contrib/wpa/tests/hwsim/test_sigma_dut.py | 0 contrib/wpa/tests/hwsim/test_ssid.py | 0 contrib/wpa/tests/hwsim/test_sta_dynamic.py | 0 contrib/wpa/tests/hwsim/test_suite_b.py | 0 contrib/wpa/tests/hwsim/test_tnc.py | 0 contrib/wpa/tests/hwsim/test_wep.py | 0 contrib/wpa/tests/hwsim/test_wext.py | 0 contrib/wpa/tests/hwsim/test_wmediumd.py | 0 contrib/wpa/tests/hwsim/test_wnm.py | 0 contrib/wpa/tests/hwsim/test_wpas_ap.py | 0 contrib/wpa/tests/hwsim/test_wpas_config.py | 0 contrib/wpa/tests/hwsim/test_wpas_ctrl.py | 0 contrib/wpa/tests/hwsim/test_wpas_mesh.py | 0 contrib/wpa/tests/hwsim/test_wpas_wmm_ac.py | 0 contrib/wpa/tests/hwsim/tnc/.gitignore | 0 contrib/wpa/tests/hwsim/tnc/Makefile | 0 contrib/wpa/tests/hwsim/tnc/hostap2_imc.c | 0 contrib/wpa/tests/hwsim/tnc/hostap2_imv.c | 0 contrib/wpa/tests/hwsim/tnc/hostap_imc.c | 0 contrib/wpa/tests/hwsim/tnc/hostap_imv.c | 0 contrib/wpa/tests/hwsim/tnc/tnc_config | 0 contrib/wpa/tests/hwsim/tshark.py | 0 contrib/wpa/tests/hwsim/utils.py | 0 contrib/wpa/tests/hwsim/vm/.gitignore | 0 contrib/wpa/tests/hwsim/vm/README | 0 contrib/wpa/tests/hwsim/vm/bisect-run.sh | 0 contrib/wpa/tests/hwsim/vm/build-codecov.sh | 0 contrib/wpa/tests/hwsim/vm/combine-codecov.sh | 0 contrib/wpa/tests/hwsim/vm/dbus.conf | 0 contrib/wpa/tests/hwsim/vm/example-vm-setup.txt | 0 contrib/wpa/tests/hwsim/vm/inside.sh | 0 contrib/wpa/tests/hwsim/vm/kernel-config | 0 contrib/wpa/tests/hwsim/vm/kernel-config.uml | 0 contrib/wpa/tests/hwsim/vm/parallel-vm.py | 0 contrib/wpa/tests/hwsim/vm/process-codecov.sh | 0 contrib/wpa/tests/hwsim/vm/uevent.sh | 0 contrib/wpa/tests/hwsim/vm/vm-run.sh | 0 contrib/wpa/tests/hwsim/w1fi_logo.png | Bin 7549 -> 0 bytes contrib/wpa/tests/hwsim/wlantest.py | 0 contrib/wpa/tests/hwsim/wpasupplicant.py | 0 contrib/wpa/tests/hwsim/wps-ctrl-cred | Bin 67 -> 0 bytes contrib/wpa/tests/hwsim/wps-ctrl-cred2 | Bin 59 -> 0 bytes contrib/wpa/tests/hwsim/wps-mixed-cred | Bin 112 -> 0 bytes contrib/wpa/tests/hwsim/wps-wep-cred | Bin 53 -> 0 bytes contrib/wpa/tests/remote/config.py | 0 contrib/wpa/tests/remote/hwsim_wrapper.py | 0 contrib/wpa/tests/remote/monitor.py | 0 contrib/wpa/tests/remote/run-tests.py | 0 contrib/wpa/tests/remote/rutils.py | 0 contrib/wpa/tests/remote/test_devices.py | 0 contrib/wpa/tests/remote/test_example.py | 0 contrib/wpa/tests/remote/test_monitor.py | 0 contrib/wpa/tests/test-aes.c | 0 contrib/wpa/tests/test-base64.c | 0 contrib/wpa/tests/test-https.c | 0 contrib/wpa/tests/test-https_server.c | 0 contrib/wpa/tests/test-list.c | 0 contrib/wpa/tests/test-md4.c | 0 contrib/wpa/tests/test-milenage.c | 0 contrib/wpa/tests/test-rc4.c | 0 contrib/wpa/tests/test-rsa-sig-ver.c | 0 contrib/wpa/tests/test-sha1.c | 0 contrib/wpa/tests/test-sha256.c | 0 contrib/wpa/tests/test-x509v3.c | 0 contrib/wpa/tests/test_x509v3_nist.sh | 0 contrib/wpa/tests/test_x509v3_nist2.sh | 0 contrib/wpa/wlantest/.gitignore | 0 contrib/wpa/wlantest/Makefile | 0 contrib/wpa/wlantest/bip.c | 0 contrib/wpa/wlantest/bss.c | 0 contrib/wpa/wlantest/ccmp.c | 0 contrib/wpa/wlantest/ctrl.c | 0 contrib/wpa/wlantest/gcmp.c | 0 contrib/wpa/wlantest/inject.c | 0 contrib/wpa/wlantest/monitor.c | 0 contrib/wpa/wlantest/process.c | 0 contrib/wpa/wlantest/readpcap.c | 0 contrib/wpa/wlantest/rx_data.c | 0 contrib/wpa/wlantest/rx_eapol.c | 0 contrib/wpa/wlantest/rx_ip.c | 0 contrib/wpa/wlantest/rx_mgmt.c | 0 contrib/wpa/wlantest/rx_tdls.c | 0 contrib/wpa/wlantest/sta.c | 0 contrib/wpa/wlantest/test_vectors.c | 0 contrib/wpa/wlantest/tkip.c | 0 contrib/wpa/wlantest/wep.c | 0 contrib/wpa/wlantest/wired.c | 0 contrib/wpa/wlantest/wlantest.c | 0 contrib/wpa/wlantest/wlantest.h | 0 contrib/wpa/wlantest/wlantest_cli.c | 0 contrib/wpa/wlantest/wlantest_ctrl.h | 0 contrib/wpa/wlantest/writepcap.c | 0 contrib/wpa/wpa_supplicant/bssid_ignore.c | 0 contrib/wpa/wpa_supplicant/bssid_ignore.h | 0 contrib/wpa/wpa_supplicant/examples/dpp-nfc.py | 0 contrib/wpa/wpa_supplicant/pasn_supplicant.c | 0 contrib/wpa/wpa_supplicant/robust_av.c | 0 contrib/wpa/wpa_supplicant/twt.c | 0 contrib/wpa/wpa_supplicant/wpa_gui-qt4/icons/.gitignore | 0 contrib/wpa/wpadebug/.gitignore | 0 contrib/wpa/wpadebug/AndroidManifest.xml | 0 contrib/wpa/wpadebug/README | 0 contrib/wpa/wpadebug/build.xml | 0 contrib/wpa/wpadebug/project.properties | 0 contrib/wpa/wpadebug/res/layout/cred_edit.xml | 0 contrib/wpa/wpadebug/res/layout/input_uri.xml | 0 contrib/wpa/wpadebug/res/layout/main.xml | 0 contrib/wpa/wpadebug/res/layout/qrcode.xml | 0 contrib/wpa/wpadebug/res/raw/shell_commands.txt | 0 contrib/wpa/wpadebug/res/raw/wpa_commands.txt | 0 .../wpadebug/src/w1/fi/wpadebug/CommandListActivity.java | 0 .../src/w1/fi/wpadebug/DisplayMessageActivity.java | 0 contrib/wpa/wpadebug/src/w1/fi/wpadebug/InputUri.java | 0 .../wpa/wpadebug/src/w1/fi/wpadebug/MainActivity.java | 0 .../src/w1/fi/wpadebug/QrCodeDisplayActivity.java | 0 .../wpadebug/src/w1/fi/wpadebug/QrCodeReadActivity.java | 0 .../src/w1/fi/wpadebug/QrCodeScannerActivity.java | 0 .../wpa/wpadebug/src/w1/fi/wpadebug/WifiReceiver.java | 0 .../src/w1/fi/wpadebug/WpaCommandListActivity.java | 0 .../wpa/wpadebug/src/w1/fi/wpadebug/WpaCredActivity.java | 0 .../wpadebug/src/w1/fi/wpadebug/WpaCredEditActivity.java | 0 .../wpa/wpadebug/src/w1/fi/wpadebug/WpaNfcActivity.java | 0 .../wpadebug/src/w1/fi/wpadebug/WpaWebViewActivity.java | 0 contrib/wpa/wpaspy/Makefile | 0 contrib/wpa/wpaspy/setup.py | 0 contrib/wpa/wpaspy/test.py | 0 contrib/wpa/wpaspy/wpaspy.c | 0 contrib/wpa/wpaspy/wpaspy.py | 0 574 files changed, 0 insertions(+), 0 deletions(-) diff --git a/contrib/wpa/.gitignore b/contrib/wpa/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/Android.mk b/contrib/wpa/Android.mk deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/build_release b/contrib/wpa/build_release deleted file mode 100755 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/.gitignore b/contrib/wpa/doc/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/Makefile b/contrib/wpa/doc/Makefile deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/code_structure.doxygen b/contrib/wpa/doc/code_structure.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/ctrl_iface.doxygen b/contrib/wpa/doc/ctrl_iface.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/dbus.doxygen b/contrib/wpa/doc/dbus.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/directories.doxygen b/contrib/wpa/doc/directories.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/doxygen.conf b/contrib/wpa/doc/doxygen.conf deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/driver_wrapper.doxygen b/contrib/wpa/doc/driver_wrapper.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/eap.doxygen b/contrib/wpa/doc/eap.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/eap_server.doxygen b/contrib/wpa/doc/eap_server.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/hostapd.fig b/contrib/wpa/doc/hostapd.fig deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/hostapd_ctrl_iface.doxygen b/contrib/wpa/doc/hostapd_ctrl_iface.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/mainpage.doxygen b/contrib/wpa/doc/mainpage.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/p2p.doxygen b/contrib/wpa/doc/p2p.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/p2p_arch.dot b/contrib/wpa/doc/p2p_arch.dot deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/p2p_arch2.dot b/contrib/wpa/doc/p2p_arch2.dot deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/p2p_sm.dot b/contrib/wpa/doc/p2p_sm.dot deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/porting.doxygen b/contrib/wpa/doc/porting.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/testing_tools.doxygen b/contrib/wpa/doc/testing_tools.doxygen deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/doc/wpa_supplicant.fig b/contrib/wpa/doc/wpa_supplicant.fig deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/eap_example/.gitignore b/contrib/wpa/eap_example/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/eap_example/Makefile b/contrib/wpa/eap_example/Makefile deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/eap_example/README b/contrib/wpa/eap_example/README deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/eap_example/ca.pem b/contrib/wpa/eap_example/ca.pem deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/eap_example/dh.conf b/contrib/wpa/eap_example/dh.conf deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/eap_example/eap_example.c b/contrib/wpa/eap_example/eap_example.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/eap_example/eap_example_peer.c b/contrib/wpa/eap_example/eap_example_peer.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/eap_example/eap_example_server.c b/contrib/wpa/eap_example/eap_example_server.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/eap_example/server-key.pem b/contrib/wpa/eap_example/server-key.pem deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/eap_example/server.key b/contrib/wpa/eap_example/server.key deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/eap_example/server.pem b/contrib/wpa/eap_example/server.pem deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hostapd/.gitignore b/contrib/wpa/hostapd/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hostapd/sae_pk_gen.c b/contrib/wpa/hostapd/sae_pk_gen.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/.gitignore b/contrib/wpa/hs20/server/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/Makefile b/contrib/wpa/hs20/server/Makefile deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/clean.sh b/contrib/wpa/hs20/server/ca/clean.sh deleted file mode 100755 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/est-csrattrs.cnf b/contrib/wpa/hs20/server/ca/est-csrattrs.cnf deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/est-csrattrs.sh b/contrib/wpa/hs20/server/ca/est-csrattrs.sh deleted file mode 100755 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/hs20.oid b/contrib/wpa/hs20/server/ca/hs20.oid deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/ocsp-req.sh b/contrib/wpa/hs20/server/ca/ocsp-req.sh deleted file mode 100755 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/ocsp-responder-ica.sh b/contrib/wpa/hs20/server/ca/ocsp-responder-ica.sh deleted file mode 100755 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/ocsp-responder.sh b/contrib/wpa/hs20/server/ca/ocsp-responder.sh deleted file mode 100755 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/ocsp-update-cache.sh b/contrib/wpa/hs20/server/ca/ocsp-update-cache.sh deleted file mode 100755 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/openssl-root.cnf b/contrib/wpa/hs20/server/ca/openssl-root.cnf deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/openssl.cnf b/contrib/wpa/hs20/server/ca/openssl.cnf deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/setup.sh b/contrib/wpa/hs20/server/ca/setup.sh deleted file mode 100755 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/ca/w1fi_logo.png b/contrib/wpa/hs20/server/ca/w1fi_logo.png deleted file mode 100644 index ac7c259fff2e..000000000000 Binary files a/contrib/wpa/hs20/server/ca/w1fi_logo.png and /dev/null differ diff --git a/contrib/wpa/hs20/server/hs20-osu-server.txt b/contrib/wpa/hs20/server/hs20-osu-server.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/hs20_spp_server.c b/contrib/wpa/hs20/server/hs20_spp_server.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/spp_server.c b/contrib/wpa/hs20/server/spp_server.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/spp_server.h b/contrib/wpa/hs20/server/spp_server.h deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/sql-example.txt b/contrib/wpa/hs20/server/sql-example.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/sql.txt b/contrib/wpa/hs20/server/sql.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/add-free.php b/contrib/wpa/hs20/server/www/add-free.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/add-mo.php b/contrib/wpa/hs20/server/www/add-mo.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/cert-enroll.php b/contrib/wpa/hs20/server/www/cert-enroll.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/config.php b/contrib/wpa/hs20/server/www/config.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/est.php b/contrib/wpa/hs20/server/www/est.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/free-remediation.php b/contrib/wpa/hs20/server/www/free-remediation.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/free.php b/contrib/wpa/hs20/server/www/free.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/redirect.php b/contrib/wpa/hs20/server/www/redirect.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/remediation-pw.php b/contrib/wpa/hs20/server/www/remediation-pw.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/remediation.php b/contrib/wpa/hs20/server/www/remediation.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/signup.php b/contrib/wpa/hs20/server/www/signup.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/spp.php b/contrib/wpa/hs20/server/www/spp.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/terms.php b/contrib/wpa/hs20/server/www/terms.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/hs20/server/www/users.php b/contrib/wpa/hs20/server/www/users.php deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/radius_example/.gitignore b/contrib/wpa/radius_example/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/radius_example/Makefile b/contrib/wpa/radius_example/Makefile deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/radius_example/README b/contrib/wpa/radius_example/README deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/radius_example/radius_example.c b/contrib/wpa/radius_example/radius_example.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/build.rules b/contrib/wpa/src/build.rules deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/common/brcm_vendor.h b/contrib/wpa/src/common/brcm_vendor.h deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/common/dpp_auth.c b/contrib/wpa/src/common/dpp_auth.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/common/dpp_backup.c b/contrib/wpa/src/common/dpp_backup.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/common/dpp_crypto.c b/contrib/wpa/src/common/dpp_crypto.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/common/dpp_i.h b/contrib/wpa/src/common/dpp_i.h deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/common/dpp_pkex.c b/contrib/wpa/src/common/dpp_pkex.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/common/dpp_reconfig.c b/contrib/wpa/src/common/dpp_reconfig.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/common/dpp_tcp.c b/contrib/wpa/src/common/dpp_tcp.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/common/ptksa_cache.c b/contrib/wpa/src/common/ptksa_cache.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/common/ptksa_cache.h b/contrib/wpa/src/common/ptksa_cache.h deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/common/sae_pk.c b/contrib/wpa/src/common/sae_pk.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/crypto/sha384-tlsprf.c b/contrib/wpa/src/crypto/sha384-tlsprf.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/eap_peer/.gitignore b/contrib/wpa/src/eap_peer/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/objs.mk b/contrib/wpa/src/objs.mk deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/utils/config.c b/contrib/wpa/src/utils/config.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/utils/config.h b/contrib/wpa/src/utils/config.h deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/src/utils/ext_password_file.c b/contrib/wpa/src/utils/ext_password_file.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/.gitignore b/contrib/wpa/tests/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/Makefile b/contrib/wpa/tests/Makefile deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/README b/contrib/wpa/tests/README deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/cipher-and-key-mgmt-testing.txt b/contrib/wpa/tests/cipher-and-key-mgmt-testing.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/README b/contrib/wpa/tests/fuzzing/README deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/ap-mgmt/.gitignore b/contrib/wpa/tests/fuzzing/ap-mgmt/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/ap-mgmt/Makefile b/contrib/wpa/tests/fuzzing/ap-mgmt/Makefile deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/ap-mgmt/ap-mgmt.c b/contrib/wpa/tests/fuzzing/ap-mgmt/ap-mgmt.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi-sae-ffc.dat b/contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi-sae-ffc.dat deleted file mode 100644 index 8c0059d5f322..000000000000 Binary files a/contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi-sae-ffc.dat and /dev/null differ diff --git a/contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi-sae.dat b/contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi-sae.dat deleted file mode 100644 index 31a0d091dba9..000000000000 Binary files a/contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi-sae.dat and /dev/null differ diff --git a/contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi.dat b/contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi.dat deleted file mode 100644 index 29d074e0c414..000000000000 Binary files a/contrib/wpa/tests/fuzzing/ap-mgmt/corpus/multi.dat and /dev/null differ diff --git a/contrib/wpa/tests/fuzzing/asn1/.gitignore b/contrib/wpa/tests/fuzzing/asn1/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/asn1/Makefile b/contrib/wpa/tests/fuzzing/asn1/Makefile deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/asn1/asn1.c b/contrib/wpa/tests/fuzzing/asn1/asn1.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/asn1/corpus/ca.der b/contrib/wpa/tests/fuzzing/asn1/corpus/ca.der deleted file mode 100644 index 09d5fa051bf3..000000000000 Binary files a/contrib/wpa/tests/fuzzing/asn1/corpus/ca.der and /dev/null differ diff --git a/contrib/wpa/tests/fuzzing/asn1/corpus/ocsp-multi-server-cache.der b/contrib/wpa/tests/fuzzing/asn1/corpus/ocsp-multi-server-cache.der deleted file mode 100644 index 36be8118aa1d..000000000000 Binary files a/contrib/wpa/tests/fuzzing/asn1/corpus/ocsp-multi-server-cache.der and /dev/null differ diff --git a/contrib/wpa/tests/fuzzing/asn1/corpus/ocsp-req.der b/contrib/wpa/tests/fuzzing/asn1/corpus/ocsp-req.der deleted file mode 100644 index 3a70e3872d4c..000000000000 Binary files a/contrib/wpa/tests/fuzzing/asn1/corpus/ocsp-req.der and /dev/null differ diff --git a/contrib/wpa/tests/fuzzing/build-test.sh b/contrib/wpa/tests/fuzzing/build-test.sh deleted file mode 100755 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/dpp-uri/.gitignore b/contrib/wpa/tests/fuzzing/dpp-uri/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/dpp-uri/Makefile b/contrib/wpa/tests/fuzzing/dpp-uri/Makefile deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/dpp-uri/corpus/1.dat b/contrib/wpa/tests/fuzzing/dpp-uri/corpus/1.dat deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/dpp-uri/corpus/2.dat b/contrib/wpa/tests/fuzzing/dpp-uri/corpus/2.dat deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/dpp-uri/corpus/3.dat b/contrib/wpa/tests/fuzzing/dpp-uri/corpus/3.dat deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/dpp-uri/dpp-uri.c b/contrib/wpa/tests/fuzzing/dpp-uri/dpp-uri.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/eap-aka-peer/.gitignore b/contrib/wpa/tests/fuzzing/eap-aka-peer/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/eap-aka-peer/Makefile b/contrib/wpa/tests/fuzzing/eap-aka-peer/Makefile deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/eap-aka-peer/corpus/server.msg b/contrib/wpa/tests/fuzzing/eap-aka-peer/corpus/server.msg deleted file mode 100644 index 64843912d838..000000000000 Binary files a/contrib/wpa/tests/fuzzing/eap-aka-peer/corpus/server.msg and /dev/null differ diff --git a/contrib/wpa/tests/fuzzing/eap-aka-peer/eap-aka-peer.c b/contrib/wpa/tests/fuzzing/eap-aka-peer/eap-aka-peer.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/eap-mschapv2-peer/.gitignore b/contrib/wpa/tests/fuzzing/eap-mschapv2-peer/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/eap-mschapv2-peer/Makefile b/contrib/wpa/tests/fuzzing/eap-mschapv2-peer/Makefile deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/eap-mschapv2-peer/corpus/server.msg b/contrib/wpa/tests/fuzzing/eap-mschapv2-peer/corpus/server.msg deleted file mode 100644 index 50ff9d19e3a5..000000000000 Binary files a/contrib/wpa/tests/fuzzing/eap-mschapv2-peer/corpus/server.msg and /dev/null differ diff --git a/contrib/wpa/tests/fuzzing/eap-mschapv2-peer/eap-mschapv2-peer.c b/contrib/wpa/tests/fuzzing/eap-mschapv2-peer/eap-mschapv2-peer.c deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/eap-sim-peer/.gitignore b/contrib/wpa/tests/fuzzing/eap-sim-peer/.gitignore deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/eap-sim-peer/Makefile b/contrib/wpa/tests/fuzzing/eap-sim-peer/Makefile deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/contrib/wpa/tests/fuzzing/eap-sim-peer/corpus/server.msg b/contrib/wpa/tests/fuzzing/eap-sim-peer/corpus/server.msg deleted file mode 100644 *** 1381 LINES SKIPPED *** From owner-dev-commits-src-main@freebsd.org Sun Apr 18 05:22:49 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DA6F45F10A4; Sun, 18 Apr 2021 05:22:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNJHY5m23z4Tgt; Sun, 18 Apr 2021 05:22:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B872525F47; Sun, 18 Apr 2021 05:22:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13I5MndU060136; Sun, 18 Apr 2021 05:22:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13I5MnAr060135; Sun, 18 Apr 2021 05:22:49 GMT (envelope-from git) Date: Sun, 18 Apr 2021 05:22:49 GMT Message-Id: <202104180522.13I5MnAr060135@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Peter Holm Subject: git: 7f014be5eace - main - stress2: Added a syzkaller reproducer. A variation of syzkaller32.sh MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pho X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7f014be5eaceffd16f194e9c3b585fe194fb189f Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 05:22:49 -0000 The branch main has been updated by pho: URL: https://cgit.FreeBSD.org/src/commit/?id=7f014be5eaceffd16f194e9c3b585fe194fb189f commit 7f014be5eaceffd16f194e9c3b585fe194fb189f Author: Peter Holm AuthorDate: 2021-04-18 05:19:07 +0000 Commit: Peter Holm CommitDate: 2021-04-18 05:19:07 +0000 stress2: Added a syzkaller reproducer. A variation of syzkaller32.sh --- tools/test/stress2/misc/all.exclude | 1 + tools/test/stress2/misc/syzkaller33.sh | 142 +++++++++++++++++++++++++++++++++ 2 files changed, 143 insertions(+) diff --git a/tools/test/stress2/misc/all.exclude b/tools/test/stress2/misc/all.exclude index 1c5926ac9447..50e4d0ecc77b 100644 --- a/tools/test/stress2/misc/all.exclude +++ b/tools/test/stress2/misc/all.exclude @@ -71,6 +71,7 @@ syzkaller29.sh May change policy for random threads to to domainset_fixed 20210 syzkaller30.sh May change policy for random threads to to domainset_fixed 20210104 syzkaller31.sh panic: Bad tailq NEXT(0xfffffe0079608f00->tqh_last) != NULL 20210322 syzkaller32.sh Fatal trap 18: integer divide fault while in kernel mode 20210322 +syzkaller33.sh Fatal trap 18: integer divide fault while in kernel mode 20210418 truss3.sh WiP 20200915 unionfs.sh insmntque: non-locked vp: xx is not exclusive locked... 20130909 unionfs2.sh insmntque: mp-safe fs and non-locked vp is not ... 20111219 diff --git a/tools/test/stress2/misc/syzkaller33.sh b/tools/test/stress2/misc/syzkaller33.sh new file mode 100755 index 000000000000..c416d0cde1e4 --- /dev/null +++ b/tools/test/stress2/misc/syzkaller33.sh @@ -0,0 +1,142 @@ +#!/bin/sh + +# Fatal trap 18: integer divide fault while in kernel mode +# cpuid = 0; apic id = 00 +# instruction pointer = 0x20:0xffffffff80c310ee +# stack pointer = 0x28:0xfffffe0131a629e0 +# frame pointer = 0x28:0xfffffe0131a62a30 +# code segment = base 0x0, limit 0xfffff, type 0x1b +# = DPL 0, pres 1, long 1, def32 0, gran 1 +# processor eflags = interrupt enabled, resume, IOPL = 0 +# current process = 12 (swi4: clock (0)) +# trap number = 18 +# panic: integer divide fault +# cpuid = 0 +# time = 1618722013 +# KDB: stack backtrace: +# db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe0131a626f0 +# vpanic() at vpanic+0x181/frame 0xfffffe0131a62740 +# panic() at panic+0x43/frame 0xfffffe0131a627a0 +# trap_fatal() at trap_fatal+0x387/frame 0xfffffe0131a62800 +# trap() at trap+0xa4/frame 0xfffffe0131a62910 +# calltrap() at calltrap+0x8/frame 0xfffffe0131a62910 +# --- trap 0x12, rip = 0xffffffff80c310ee, rsp = 0xfffffe0131a629e0, rbp = 0xfffffe0131a62a30 --- +# realtimer_expire_l() at realtimer_expire_l+0xee/frame 0xfffffe0131a62a30 +# softclock_call_cc() at softclock_call_cc+0x15d/frame 0xfffffe0131a62b00 +# softclock() at softclock+0x66/frame 0xfffffe0131a62b20 +# ithread_loop() at ithread_loop+0x279/frame 0xfffffe0131a62bb0 +# fork_exit() at fork_exit+0x80/frame 0xfffffe0131a62bf0 +# fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0131a62bf0 +# --- trap 0, rip = 0, rsp = 0, rbp = 0 --- +# KDB: enter: panic +# [ thread pid 12 tid 100161 ] +# Stopped at kdb_enter+0x37: movq $0,0x1283f9e(%rip) +# db> x/s version +# version: FreeBSD 14.0-CURRENT #0 main-n246123-21afed4b1d1-dirty: Sat Apr 17 07:39:42 CEST 2021 +# pho@t2.osted.lan:/usr/src/sys/amd64/compile/PHO +# db> + +[ `uname -p` != "amd64" ] && exit 0 + +../default.cfg +cat > /tmp/syzkaller33.c < + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static void kill_and_wait(int pid, int* status) +{ + kill(pid, SIGKILL); + while (waitpid(-1, status, 0) != pid) { + } +} + +static void sleep_ms(uint64_t ms) +{ + usleep(ms * 1000); +} + +static uint64_t current_time_ms(void) +{ + struct timespec ts; + if (clock_gettime(CLOCK_MONOTONIC, &ts)) + exit(1); + return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; +} + +static void execute_one(void); + +#define WAIT_FLAGS 0 + +static void loop(void) +{ + int iter = 0; + for (;; iter++) { + int pid = fork(); + if (pid < 0) + exit(1); + if (pid == 0) { + execute_one(); + exit(0); + } + int status = 0; + uint64_t start = current_time_ms(); + for (;;) { + if (waitpid(-1, &status, WNOHANG | WAIT_FLAGS) == pid) + break; + sleep_ms(1); + if (current_time_ms() - start < 5000) { + continue; + } + kill_and_wait(pid, &status); + break; + } + } +} + +uint64_t r[1] = {0x0}; + +void execute_one(void) +{ + intptr_t res = 0; + res = syscall(SYS_ktimer_create, 0ul, 0ul, 0x200011c0ul); + if (res != -1) + r[0] = *(uint32_t*)0x200011c0; + *(uint64_t*)0x20001200 = 0x800000000000000; + *(uint64_t*)0x20001208 = 0; + *(uint64_t*)0x20001210 = 0; + *(uint64_t*)0x20001218 = 0xa2b; + syscall(SYS_ktimer_settime, r[0], 1ul, 0x20001200ul, 0ul); +} +int main(void) +{ + syscall(SYS_mmap, 0x20000000ul, 0x1000000ul, 7ul, 0x1012ul, -1, 0ul); + loop(); + return 0; +} +EOF +mycc -o /tmp/syzkaller33 -Wall -Wextra -O0 /tmp/syzkaller33.c || + exit 1 + +(cd /tmp; timeout 3m ./syzkaller33) + +rm -rf /tmp/syzkaller33 syzkaller33.c /tmp/syzkaller.* +exit 0 From owner-dev-commits-src-main@freebsd.org Sun Apr 18 05:46:28 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 11E6B5F18F1; Sun, 18 Apr 2021 05:46:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNJpr02JWz4Vnx; Sun, 18 Apr 2021 05:46:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E81D12615C; Sun, 18 Apr 2021 05:46:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13I5kRr2087092; Sun, 18 Apr 2021 05:46:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13I5kR3s087091; Sun, 18 Apr 2021 05:46:27 GMT (envelope-from git) Date: Sun, 18 Apr 2021 05:46:27 GMT Message-Id: <202104180546.13I5kR3s087091@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 09da6ffa55a3 - main - newbus: style nit: use while(0) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 09da6ffa55a31aa2c257ffd0b45c5208ac55f916 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 05:46:28 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=09da6ffa55a31aa2c257ffd0b45c5208ac55f916 commit 09da6ffa55a31aa2c257ffd0b45c5208ac55f916 Author: Warner Losh AuthorDate: 2021-04-18 05:45:08 +0000 Commit: Warner Losh CommitDate: 2021-04-18 05:46:18 +0000 newbus: style nit: use while(0) Sponsored by: Netflix --- sys/sys/kobj.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/sys/kobj.h b/sys/sys/kobj.h index aaf92688ca08..75d8caed7b3f 100644 --- a/sys/sys/kobj.h +++ b/sys/sys/kobj.h @@ -234,7 +234,7 @@ extern u_int kobj_lookup_misses; } else \ kobj_lookup_hits++; \ _m = _ce->func; \ -} while(0) +} while (0) #else #define KOBJOPLOOKUP(OPS,OP) do { \ kobjop_desc_t _desc = &OP##_##desc; \ @@ -245,7 +245,7 @@ extern u_int kobj_lookup_misses; _ce = kobj_lookup_method(OPS->cls, \ _cep, _desc); \ _m = _ce->func; \ -} while(0) +} while (0) #endif kobj_method_t* kobj_lookup_method(kobj_class_t cls, From owner-dev-commits-src-main@freebsd.org Sun Apr 18 06:00:43 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 432845F1FD8; Sun, 18 Apr 2021 06:00:43 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay05.pair.com (relay05.pair.com [216.92.24.67]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNK7H142Wz4W4j; Sun, 18 Apr 2021 06:00:42 +0000 (UTC) (envelope-from pho@holm.cc) Received: from x8.osted.lan (unknown [80.208.71.94]) by relay05.pair.com (Postfix) with ESMTP id EF9A71A28CE; Sun, 18 Apr 2021 02:00:41 -0400 (EDT) Received: from x8.osted.lan (localhost [127.0.0.1]) by x8.osted.lan (8.15.2/8.15.2) with ESMTPS id 13I60fwW048961 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Sun, 18 Apr 2021 08:00:41 +0200 (CEST) (envelope-from pho@x8.osted.lan) Received: (from pho@localhost) by x8.osted.lan (8.15.2/8.15.2/Submit) id 13I60fpq048960; Sun, 18 Apr 2021 08:00:41 +0200 (CEST) (envelope-from pho) Date: Sun, 18 Apr 2021 08:00:40 +0200 From: Peter Holm To: Richard Scheffenegger Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: d1de2b05a001 - main - tcp: Rename rfc6675_pipe to sack.revised, and enable by default Message-ID: <20210418060040.GA48834@x8.osted.lan> References: <202104171350.13HDoPQL025776@gitrepo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202104171350.13HDoPQL025776@gitrepo.freebsd.org> X-Rspamd-Queue-Id: 4FNK7H142Wz4W4j X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 06:00:43 -0000 On Sat, Apr 17, 2021 at 01:50:25PM +0000, Richard Scheffenegger wrote: > The branch main has been updated by rscheff: > > URL: https://cgit.FreeBSD.org/src/commit/?id=d1de2b05a001d3d80f633f576f4909c2686dda3d > > commit d1de2b05a001d3d80f633f576f4909c2686dda3d > Author: Richard Scheffenegger > AuthorDate: 2021-04-17 12:59:30 +0000 > Commit: Richard Scheffenegger > CommitDate: 2021-04-17 12:59:45 +0000 > > tcp: Rename rfc6675_pipe to sack.revised, and enable by default > > As full support of RFC6675 is in place, deprecating > net.inet.tcp.rfc6675_pipe and enabling by default > net.inet.tcp.sack.revised. > > Reviewed By: #transport, kbowling, rrs > Sponsored by: NetApp, Inc. > Differential Revision: https://reviews.freebsd.org/D28702 > --- > share/man/man4/tcp.4 | 25 ++++++++++++++----------- > sys/netinet/cc/cc_cubic.c | 2 +- > sys/netinet/cc/cc_htcp.c | 2 +- > sys/netinet/cc/cc_newreno.c | 2 +- > sys/netinet/tcp_input.c | 11 +++-------- > sys/netinet/tcp_sack.c | 12 +++++++++--- > sys/netinet/tcp_var.h | 4 ++-- > 7 files changed, 31 insertions(+), 27 deletions(-) > > diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 > index d01505e58427..cbb8021226fe 100644 > --- a/share/man/man4/tcp.4 Could this panic be related? 20210418 07:19:59 all (204/751): jumbo.sh panic: tcp_output: sack block to the left of una : -293976 cpuid = 3 time = 1618723234 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00e49b0550 vpanic() at vpanic+0x181/frame 0xfffffe00e49b05a0 panic() at panic+0x43/frame 0xfffffe00e49b0600 tcp_output() at tcp_output+0x27dc/frame 0xfffffe00e49b07c0 tcp_do_segment() at tcp_do_segment+0x32a3/frame 0xfffffe00e49b08b0 tcp_input() at tcp_input+0xbd5/frame 0xfffffe00e49b0a10 ip_input() at ip_input+0x194/frame 0xfffffe00e49b0aa0 swi_net() at swi_net+0x1a1/frame 0xfffffe00e49b0b20 ithread_loop() at ithread_loop+0x279/frame 0xfffffe00e49b0bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00e49b0bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00e49b0bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- https://people.freebsd.org/~pho/stress/log/log0094.txt - Peter From owner-dev-commits-src-main@freebsd.org Sun Apr 18 08:20:31 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C477F5DFA5F; Sun, 18 Apr 2021 08:20:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNNDb5FNRz4tHN; Sun, 18 Apr 2021 08:20:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A6F1760C; Sun, 18 Apr 2021 08:20:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13I8KVLL013200; Sun, 18 Apr 2021 08:20:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13I8KVtq013199; Sun, 18 Apr 2021 08:20:31 GMT (envelope-from git) Date: Sun, 18 Apr 2021 08:20:31 GMT Message-Id: <202104180820.13I8KVtq013199@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 40277af7f234 - main - spigen.4: Fix typos MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 40277af7f23405c276edf02c3ddc8e770a06e3f6 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 08:20:31 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=40277af7f23405c276edf02c3ddc8e770a06e3f6 commit 40277af7f23405c276edf02c3ddc8e770a06e3f6 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 07:45:18 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 08:20:10 +0000 spigen.4: Fix typos MFC after: 3 days --- share/man/man4/spigen.4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/spigen.4 b/share/man/man4/spigen.4 index e586b0baa82a..8a8cc556be81 100644 --- a/share/man/man4/spigen.4 +++ b/share/man/man4/spigen.4 @@ -57,7 +57,7 @@ device is associated with a single chip-select line on the bus, and all I/O performed through that instance is done with that chip-select line asserted. .Pp -SPI data transfers are inherently bi-directional; there are not separate +SPI data transfers are inherently bi-directional; there are no separate read and write operations. When commands and data are sent to a device, data also comes back from the device, although in some cases the data may not be useful (or even @@ -117,7 +117,7 @@ Set the maximum clock speed (bus frequency in Hertz) to be used when communicating with this slave device. The setting remains in effect for subsequent transfers; it is not necessary to reset this before each transfer. -The actual bus frequency may be lower due to hardware limitiations +The actual bus frequency may be lower due to hardware limitations of the SPI bus controller device. .It Dv SPIGENIOC_GET_SPI_MODE Pq Vt uint32_t Get the SPI mode (clock polarity and phase) to be used From owner-dev-commits-src-main@freebsd.org Sun Apr 18 08:20:33 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0796C5E00C3; Sun, 18 Apr 2021 08:20:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNNDc6hSlz4t1h; Sun, 18 Apr 2021 08:20:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D037E3A3; Sun, 18 Apr 2021 08:20:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13I8KW3g013228; Sun, 18 Apr 2021 08:20:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13I8KW3R013227; Sun, 18 Apr 2021 08:20:32 GMT (envelope-from git) Date: Sun, 18 Apr 2021 08:20:32 GMT Message-Id: <202104180820.13I8KW3R013227@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 1ffdcdadf614 - main - getprogname.3: Add an example MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1ffdcdadf61423dd02ddad82fc4f3f6c39090c8c Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 08:20:33 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=1ffdcdadf61423dd02ddad82fc4f3f6c39090c8c commit 1ffdcdadf61423dd02ddad82fc4f3f6c39090c8c Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-17 21:26:54 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 08:20:11 +0000 getprogname.3: Add an example It shows the difference between getprogname() and argv[0]. Reviewed by: yuripv Approved by: yuripv (src) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D27204 --- lib/libc/gen/getprogname.3 | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/libc/gen/getprogname.3 b/lib/libc/gen/getprogname.3 index 53d39a60526b..f43a7b8c6b69 100644 --- a/lib/libc/gen/getprogname.3 +++ b/lib/libc/gen/getprogname.3 @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 1, 2001 +.Dd April 18, 2021 .Dt GETPROGNAME 3 .Os .Sh NAME @@ -84,6 +84,32 @@ Calling .Fn setprogname allows the aforementioned library to learn the program name without modifications to the start-up code. +.Sh EXAMPLES +The following example presents a simple program, which shows the difference +between +.Fn getprogname +and +.Va "argv[0]" . +.Bd -literal -offset indent +#include +#include + +int +main(int argc, char** argv) +{ + printf("getprogname(): %s\en", getprogname()); + printf("argv[0]: %s\en", argv[0]); + return (0); +} +.Ed +.Pp +When compiled and executed (e.g., with +.Ql ./a.out ) +the output of the program is going to look like this: +.Bd -literal -offset indent +getprogname(): a.out +argv[0]: ./a.out +.Ed .Sh SEE ALSO .Xr err 3 , .Xr setproctitle 3 From owner-dev-commits-src-main@freebsd.org Sun Apr 18 08:20:34 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AF16F5E0332; Sun, 18 Apr 2021 08:20:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNNDf15r0z4tMw; Sun, 18 Apr 2021 08:20:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EFCE43A4; Sun, 18 Apr 2021 08:20:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13I8KXGA013249; Sun, 18 Apr 2021 08:20:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13I8KXMX013248; Sun, 18 Apr 2021 08:20:33 GMT (envelope-from git) Date: Sun, 18 Apr 2021 08:20:33 GMT Message-Id: <202104180820.13I8KXMX013248@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 16e0391f8e21 - main - Fix zgrep --version MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 16e0391f8e2124eb85af984204548cf841648db5 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 08:20:34 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=16e0391f8e2124eb85af984204548cf841648db5 commit 16e0391f8e2124eb85af984204548cf841648db5 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-13 10:12:53 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 08:20:11 +0000 Fix zgrep --version "zgrep --version" is expected to print the version information in the same way as "zgrep -V". However, the case handling the --version flag is never reached, so "zgrep --version" prints: zgrep: missing pattern instead of: grep (BSD grep, GNU compatible) 2.6.0-FreeBSD Reviewed by: yuripv Approved by: yuripv (src) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29813 --- usr.bin/grep/zgrep.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.bin/grep/zgrep.sh b/usr.bin/grep/zgrep.sh index 105507f23708..bd0e8847e5f6 100755 --- a/usr.bin/grep/zgrep.sh +++ b/usr.bin/grep/zgrep.sh @@ -94,6 +94,9 @@ do silent=1 shift ;; + -V|--version) + exec ${grep} -V + ;; --*) grep_args="${grep_args} $1" shift @@ -128,9 +131,6 @@ do echo "${prg}: the ${1} flag is not currently supported" >&2 exit 1 ;; - -V|--version) - exec ${grep} -V - ;; -*) grep_args="${grep_args} $1" shift From owner-dev-commits-src-main@freebsd.org Sun Apr 18 08:30:27 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 01E4A5E08B8; Sun, 18 Apr 2021 08:30:27 +0000 (UTC) (envelope-from Richard.Scheffenegger@netapp.com) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam08on2043.outbound.protection.outlook.com [40.107.101.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNNRz4pQbz4tXg; Sun, 18 Apr 2021 08:30:23 +0000 (UTC) (envelope-from Richard.Scheffenegger@netapp.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W6dYr+Gz46NB36ijbjdCGNG1PgWT7SWZ3pBN2HY6Z8ytS/bDX3oqjAMeInotWT/Kjd4WU/TrnSuCtq/f39zXbMyUKJaNwI2Xnn7ELOmn2ZZjrgZlDWq4anqInCg7EFVf0r6VBay3YFw9EWrXuIMb27ut9XOfuXtAW6oLgUn/BogyHUvlUci6j6S039U1qCYwQIKACEtzJiZL0cLraN2mTiYyK02etjdcxi3zrf153NC78CCL1zOS8AJxFate7Tsw6etkeg6w0rCb7RcAp7Asv5iGetRamrPx/kasTvjwxO/wzyqGKUp/YEHt05pX3Klc+BbkIP23RwLi/j8rmGRWRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=19Y8fiBsM3HdiuoHBurDy8SgjzO8icDgQzjO1PGKFeg=; b=ZvSL6WyDjc6rt5s5JJezhAl0Y8SXXBZm3oyNCnt/vpH/v0KdQNTN29Xb0UJYK7PGmbu7V3SifqKOznDk6zyWvihtZXPBzyV9ZUk+PJj4D+7FeZ53oPv2ldBLN6j+mtFaKk6TpSwKWvTdMJQ/3wybnBNuLtZ0SoO7tp+alN4myPrHQxUa64Xk83Zh0JaKaHldxIQ5iDbg94AdXHrb5gplmruIGOAsmRYo1xKYleAlgEQ7Z7uVCkQShCcT8YJRmKhR3ijNyBY2hYbYjC6kVgzgNbyjFgPYl3EpXo3J/wl8bHT7EbNkecoGFWQUT/BwDwh+oiMUDkIyr1ew9ljLOfGJKA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=netapp.com; dmarc=pass action=none header.from=netapp.com; dkim=pass header.d=netapp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netapp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=19Y8fiBsM3HdiuoHBurDy8SgjzO8icDgQzjO1PGKFeg=; b=2d8j5yxsAVX8Gnz6+hff1Lqlm/g78jm+qiGOhcOHnnCY3rNQqB9trAi9xx1sUL0ctunG10r2OfRJAcgCrVA8qFx4SJA/H+uQxnjdL86BMVdcQyEQlgy85iWzg+uYMr6suovM6k0ZJiphKt/CNTaFS4VWV4YHtFuVAUMOyLK0k26vb4AyDX/ksCz+fXzKAkjAzqf9p1jgEnNK7emfsGSkJkWyM/fZi3my0z0FndwYXCcKkwgbZOlru4+2z0wJi3cI3fXFK5KoX6PrapX2dFXxeZQjCmhZZnqlO3AgZ0ZjucJiGVK6lh+anZ669Umt3ErrSORyH4U76pSWqkhK6N/Tng== Received: from PH0PR06MB7639.namprd06.prod.outlook.com (2603:10b6:510:4e::18) by PH0PR06MB7112.namprd06.prod.outlook.com (2603:10b6:510::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Sun, 18 Apr 2021 08:30:21 +0000 Received: from PH0PR06MB7639.namprd06.prod.outlook.com ([fe80::19e2:b5f4:2a64:5eda]) by PH0PR06MB7639.namprd06.prod.outlook.com ([fe80::19e2:b5f4:2a64:5eda%5]) with mapi id 15.20.4042.024; Sun, 18 Apr 2021 08:30:21 +0000 From: "Scheffenegger, Richard" To: Peter Holm , Richard Scheffenegger CC: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" , "transport@freebsd.org" Subject: AW: git: d1de2b05a001 - main - tcp: Rename rfc6675_pipe to sack.revised, and enable by default Thread-Topic: git: d1de2b05a001 - main - tcp: Rename rfc6675_pipe to sack.revised, and enable by default Thread-Index: AQHXM5CiCqQV41lYIEC3c4/iyC2cxKq5yTAAgAAndzA= Date: Sun, 18 Apr 2021 08:30:20 +0000 Message-ID: References: <202104171350.13HDoPQL025776@gitrepo.freebsd.org> <20210418060040.GA48834@x8.osted.lan> In-Reply-To: <20210418060040.GA48834@x8.osted.lan> Accept-Language: de-AT, en-US Content-Language: de-DE X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [185.236.167.136] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1fa443e6-db3e-46eb-ba97-08d902443480 x-ms-traffictypediagnostic: PH0PR06MB7112: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2512; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YahJPfNH2o1DrM6SGsxyHJPJg5gdW3jaRLjh3NJRKcrLsnSu93bxQ7QAiM9zmWug7a3HQ4aJ8LS0BxUr1uSJ/kG95cGL9Ufp9o3qHgIx8LFiWelYiEsS4ty1pAKqyYy16qvYOrBfVWWI83ri6K+yBlDEUd8vXU96mrVhTXTDCuiSTYxADZltED7K7fOFiSXWHK66TS5DhClscuVty1gC9N40WhB/o5diVMV2Sw/a+9QnAKMnFUfDHarDnqMV1VKon9rgfFWXr5w4zzpgQqVeWfoRUk0oouxeTh2+epee3hnjXPvjZVOxj3xIIgLPIMw5tYXvdkF1XTNKOmEjsrdXIrEN4/DAVxpJ4FPnvpxqKf1Ifp2t52CXqH2WNyT43fm925KuTV70wnArpBusV8+jHDL2F143DQtxn3TphheG5Dfq1/hwgABEaS8y8F+W/psUMcsJQuKdgTSiMH0kBIUjnf3f+9Pog8QWZ45talbiWgdXI2AFaQeB28a0q+G/Y0ziAC2H8BPFz5h7kSfD5DZSH2TlT2opGb+E7hwnGCgRlsue93zlzJGzJbfUlM9G2VKCfFkbxYmfNcfw3cMOLiVJLbuAmNLDVQpYEWob+MPHKvWAwYeBQCtQ03nmxOW3B/QdRDvedMsqbDQV7q3jzfT5kXXxyB4lLAr+eQXPT+cV9jjqs+FKpGj4EPtj+qpez1lP x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR06MB7639.namprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(39860400002)(366004)(136003)(376002)(396003)(83380400001)(66574015)(4326008)(478600001)(450100002)(2906002)(66476007)(66946007)(66446008)(5660300002)(76116006)(6506007)(966005)(55016002)(33656002)(66556008)(9686003)(64756008)(54906003)(7696005)(52536014)(86362001)(38100700002)(186003)(71200400001)(122000001)(8936002)(316002)(8676002)(26005)(110136005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?iso-8859-1?Q?/k/FACsa2+s9wyFXnDJkNw6Cwo/IgbnL0k+rTxAUIV9XXVY/dN+1m18jIk?= =?iso-8859-1?Q?FfsAEMYdG3bc/PeqBE9SAnDLrFDKJgvVkxE2IB1zS8e86ksM9Oo88+UDVJ?= =?iso-8859-1?Q?3pLpbrKqKT9vceZP7j7N0VznggiFFfBG3LxRVLOUbnLwDye6b43d73MFz9?= =?iso-8859-1?Q?QSnBXJKFZcAsCWgJQJqNB4bBq3+yL66A/2p2rY+jKT80VUPZ82OKilr+MV?= =?iso-8859-1?Q?QHwbZ/tbLsiIbOz+9mAv+Ywb5hGzP0OKywALNbmtfaCP1Lr7dAvWekCLe7?= =?iso-8859-1?Q?ucsAjb0vVogqpS2V/5kIvOzGdDDDsVWykMwWd/enZZA5fKcD/vJnOEfBKZ?= =?iso-8859-1?Q?QUHlW5I6dxdoVjffW+QLzFal5Z/I5uFa4wR/vyneatChnVvoZibvBfGT3+?= =?iso-8859-1?Q?+FZoyIGcUzynN7E8e1+nuUBb4SLQujoVU4V1eQMsPjA5lOWJ0jMhr2rnTv?= =?iso-8859-1?Q?casFXAk0gbpRLkumtWzqfBxX+DsxJO1Bn+EDVk9bix++CjAUmmO5Vg3NKk?= =?iso-8859-1?Q?XrdBN5DxOmSXFeLYk+plp9YG7MDcZYck+Rs1v8hOC+rbYqxMkZ/G4vdBDg?= =?iso-8859-1?Q?p+X4MzCUlgrjddt/rodAoXGtz+XRZSkVCOx4z5M31jMO1LJdNxi5PaN2TC?= =?iso-8859-1?Q?Zew/x60+vLQdcejpF9BkvR9f57V+Swu9FViWPxngBLTkXtCYq0IZ0jGUTT?= =?iso-8859-1?Q?uqFY25i2pusgy+zoHC+TSp7aw/8tHRSL4VBP8rpA4R7E/+gJCdxujt/myc?= =?iso-8859-1?Q?NLTsAWN8hVFVZgvCFB2RnzIL6OeqpEMcQsu45cyDYOQ0S5r7peK2PHGyFA?= =?iso-8859-1?Q?ap2vG4MPgOx4czCWgoXOFWjNp21QZBIJXdOEGR4VjHgBqWzm1C+NSmgEnD?= =?iso-8859-1?Q?TSSjqD4zk9LVvYs/5S/7TyqFWo6qIemBZMuX35UiEeKg/0NEju6+BlevDG?= =?iso-8859-1?Q?zXG45Yh0DflT9/ujG39SCVaphg40C+SLNm84nGblI7H+kfeF8R6bZQn0V0?= =?iso-8859-1?Q?gAVFLi2ZDSgWjQaeMX28dp8eBDAMASYHzST0XQ9gCTc0dS6Z++ky78Jy88?= =?iso-8859-1?Q?gubW02jWCo9obSxcbBWhXhhB76oWLN6rswH4sGQMChC4HBdCrBGxGtbY75?= =?iso-8859-1?Q?r2WA90eyyktc43+JL86YMd1Yuj2FCZXzWkdWsInY2BjlxdVja1P21H9A62?= =?iso-8859-1?Q?rjU5FQRkaPs+dNlHLtO4Ut/ppqyAt23lOt0pC4mW0R857Mhl49WhoSLv81?= =?iso-8859-1?Q?8mK46Idg1eKtmXHjyK327ElUsLfhK9ePfGr0qas1w/cPMuKdBb6h+hxZsi?= =?iso-8859-1?Q?DsbUVc9Kbfk5jmle/7UZGFoy9EoGYRBS8QXEkVm0btisYUwTC8MHnLXjfj?= =?iso-8859-1?Q?qiEiviS3Y1?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: netapp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR06MB7639.namprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1fa443e6-db3e-46eb-ba97-08d902443480 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Apr 2021 08:30:20.9687 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4b0911a0-929b-4715-944b-c03745165b3a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GQ45CsIMXtxESiOfjovGgUbWPkEyMp+AfAynmklthFAz6PTPeXpyyceRaX8F679XKHWBv/Smkk6+ztwylgwW0A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR06MB7112 X-Rspamd-Queue-Id: 4FNNRz4pQbz4tXg X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 08:30:27 -0000 Hi Peter, Hmm... the panic appears to be due to a stale entry in the sack scoreboard = - a hole not having been closed up to snd_una... Unlikely that this was solely due to this change by itself. Can I get the vmcore and kernel.debug for a close investigation? Richard Scheffenegger -----Urspr=FCngliche Nachricht----- Von: Peter Holm =20 Gesendet: Sonntag, 18. April 2021 08:01 An: Richard Scheffenegger Cc: src-committers@freebsd.org; dev-commits-src-all@freebsd.org; dev-commit= s-src-main@freebsd.org Betreff: Re: git: d1de2b05a001 - main - tcp: Rename rfc6675_pipe to sack.re= vised, and enable by default NetApp Security WARNING: This is an external email. Do not click links or o= pen attachments unless you recognize the sender and know the content is saf= e. On Sat, Apr 17, 2021 at 01:50:25PM +0000, Richard Scheffenegger wrote: > The branch main has been updated by rscheff: > > URL:=20 > https://cgit.FreeBSD.org/src/commit/?id=3Dd1de2b05a001d3d80f633f576f4909 > c2686dda3d > > commit d1de2b05a001d3d80f633f576f4909c2686dda3d > Author: Richard Scheffenegger > AuthorDate: 2021-04-17 12:59:30 +0000 > Commit: Richard Scheffenegger > CommitDate: 2021-04-17 12:59:45 +0000 > > tcp: Rename rfc6675_pipe to sack.revised, and enable by default > > As full support of RFC6675 is in place, deprecating > net.inet.tcp.rfc6675_pipe and enabling by default > net.inet.tcp.sack.revised. > > Reviewed By: #transport, kbowling, rrs > Sponsored by: NetApp, Inc. > Differential Revision: https://reviews.freebsd.org/D28702 > --- > share/man/man4/tcp.4 | 25 ++++++++++++++----------- > sys/netinet/cc/cc_cubic.c | 2 +- > sys/netinet/cc/cc_htcp.c | 2 +- > sys/netinet/cc/cc_newreno.c | 2 +- > sys/netinet/tcp_input.c | 11 +++-------- > sys/netinet/tcp_sack.c | 12 +++++++++--- > sys/netinet/tcp_var.h | 4 ++-- > 7 files changed, 31 insertions(+), 27 deletions(-) > > diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 index=20 > d01505e58427..cbb8021226fe 100644 > --- a/share/man/man4/tcp.4 Could this panic be related? 20210418 07:19:59 all (204/751): jumbo.sh panic: tcp_output: sack block to the left of una : -293976 cpuid =3D 3 time= =3D 1618723234 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00e49b0= 550 vpanic() at vpanic+0x181/frame 0xfffffe00e49b05a0 panic() at panic+0x43/frame 0xfffffe00e49b0600 tcp_output() at tcp_output+0x27dc/frame 0xfffffe00e49b07c0 tcp_do_segment() at tcp_do_segment+0x32a3/frame 0xfffffe00e49b08b0 tcp_input() at tcp_input+0xbd5/frame 0xfffffe00e49b0a10 ip_input() at ip_input+0x194/frame 0xfffffe00e49b0aa0 swi_net() at swi_net+0x1a1/frame 0xfffffe00e49b0b20 ithread_loop() at ithread_loop+0x279/frame 0xfffffe00e49b0bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00e49b0bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00e49b0bf0 --- trap 0, rip =3D 0, rsp =3D 0, rbp =3D 0 --- https://people.freebsd.org/~pho/stress/log/log0094.txt - Peter From owner-dev-commits-src-main@freebsd.org Sun Apr 18 09:04:22 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AE9BD5E21D4; Sun, 18 Apr 2021 09:04:22 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay05.pair.com (relay05.pair.com [216.92.24.67]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNPCB4Pbfz3CcC; Sun, 18 Apr 2021 09:04:22 +0000 (UTC) (envelope-from pho@holm.cc) Received: from x8.osted.lan (unknown [80.208.71.94]) by relay05.pair.com (Postfix) with ESMTP id 3A7391A2803; Sun, 18 Apr 2021 05:04:21 -0400 (EDT) Received: from x8.osted.lan (localhost [127.0.0.1]) by x8.osted.lan (8.15.2/8.15.2) with ESMTPS id 13I94KIM051067 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Sun, 18 Apr 2021 11:04:20 +0200 (CEST) (envelope-from pho@x8.osted.lan) Received: (from pho@localhost) by x8.osted.lan (8.15.2/8.15.2/Submit) id 13I94J5r051066; Sun, 18 Apr 2021 11:04:19 +0200 (CEST) (envelope-from pho) Date: Sun, 18 Apr 2021 11:04:19 +0200 From: Peter Holm To: "Scheffenegger, Richard" Cc: Richard Scheffenegger , "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" , "transport@freebsd.org" Subject: Re: git: d1de2b05a001 - main - tcp: Rename rfc6675_pipe to sack.revised, and enable by default Message-ID: <20210418090419.GA51040@x8.osted.lan> References: <202104171350.13HDoPQL025776@gitrepo.freebsd.org> <20210418060040.GA48834@x8.osted.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Queue-Id: 4FNPCB4Pbfz3CcC X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 09:04:22 -0000 On Sun, Apr 18, 2021 at 08:30:20AM +0000, Scheffenegger, Richard wrote: > Hi Peter, > > Hmm... the panic appears to be due to a stale entry in the sack scoreboard - a hole not having been closed up to snd_una... > > Unlikely that this was solely due to this change by itself. > > Can I get the vmcore and kernel.debug for a close investigation? > Sure. Uploaded to: https://people.freebsd.org/~pho/kernel.vmcore.320-mercat1.tar - Peter > > Richard Scheffenegger > > -----Ursprüngliche Nachricht----- > Von: Peter Holm > Gesendet: Sonntag, 18. April 2021 08:01 > An: Richard Scheffenegger > Cc: src-committers@freebsd.org; dev-commits-src-all@freebsd.org; dev-commits-src-main@freebsd.org > Betreff: Re: git: d1de2b05a001 - main - tcp: Rename rfc6675_pipe to sack.revised, and enable by default > > NetApp Security WARNING: This is an external email. Do not click links or open attachments unless you recognize the sender and know the content is safe. > > > > > On Sat, Apr 17, 2021 at 01:50:25PM +0000, Richard Scheffenegger wrote: > > The branch main has been updated by rscheff: > > > > URL: > > https://cgit.FreeBSD.org/src/commit/?id=d1de2b05a001d3d80f633f576f4909 > > c2686dda3d > > > > commit d1de2b05a001d3d80f633f576f4909c2686dda3d > > Author: Richard Scheffenegger > > AuthorDate: 2021-04-17 12:59:30 +0000 > > Commit: Richard Scheffenegger > > CommitDate: 2021-04-17 12:59:45 +0000 > > > > tcp: Rename rfc6675_pipe to sack.revised, and enable by default > > > > As full support of RFC6675 is in place, deprecating > > net.inet.tcp.rfc6675_pipe and enabling by default > > net.inet.tcp.sack.revised. > > > > Reviewed By: #transport, kbowling, rrs > > Sponsored by: NetApp, Inc. > > Differential Revision: https://reviews.freebsd.org/D28702 > > --- > > share/man/man4/tcp.4 | 25 ++++++++++++++----------- > > sys/netinet/cc/cc_cubic.c | 2 +- > > sys/netinet/cc/cc_htcp.c | 2 +- > > sys/netinet/cc/cc_newreno.c | 2 +- > > sys/netinet/tcp_input.c | 11 +++-------- > > sys/netinet/tcp_sack.c | 12 +++++++++--- > > sys/netinet/tcp_var.h | 4 ++-- > > 7 files changed, 31 insertions(+), 27 deletions(-) > > > > diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 index > > d01505e58427..cbb8021226fe 100644 > > --- a/share/man/man4/tcp.4 > > Could this panic be related? > > 20210418 07:19:59 all (204/751): jumbo.sh > panic: tcp_output: sack block to the left of una : -293976 cpuid = 3 time = 1618723234 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00e49b0550 > vpanic() at vpanic+0x181/frame 0xfffffe00e49b05a0 > panic() at panic+0x43/frame 0xfffffe00e49b0600 > tcp_output() at tcp_output+0x27dc/frame 0xfffffe00e49b07c0 > tcp_do_segment() at tcp_do_segment+0x32a3/frame 0xfffffe00e49b08b0 > tcp_input() at tcp_input+0xbd5/frame 0xfffffe00e49b0a10 > ip_input() at ip_input+0x194/frame 0xfffffe00e49b0aa0 > swi_net() at swi_net+0x1a1/frame 0xfffffe00e49b0b20 > ithread_loop() at ithread_loop+0x279/frame 0xfffffe00e49b0bb0 > fork_exit() at fork_exit+0x80/frame 0xfffffe00e49b0bf0 > fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00e49b0bf0 > --- trap 0, rip = 0, rsp = 0, rbp = 0 --- > > https://people.freebsd.org/~pho/stress/log/log0094.txt > > - Peter From owner-dev-commits-src-main@freebsd.org Sun Apr 18 11:58:52 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 625EA5E6B20; Sun, 18 Apr 2021 11:58:52 +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 4FNT4X0WZcz3Ll2; Sun, 18 Apr 2021 11:58:51 +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 13IBwhd2061792; Sun, 18 Apr 2021 04:58:43 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 13IBwhFa061791; Sun, 18 Apr 2021 04:58:43 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202104181158.13IBwhFa061791@gndrsh.dnsmgr.net> Subject: Re: git: bc54f5f1cd5c - main - route(8): Add an example how to print the routing tables In-Reply-To: To: Gordon Bergling Date: Sun, 18 Apr 2021 04:58:43 -0700 (PDT) CC: rgrimes@freebsd.org, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@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: 4FNT4X0WZcz3Ll2 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 11:58:52 -0000 > On Wed, Apr 14, 2021 at 03:31:24AM -0700, Rodney W. Grimes wrote: > > > On Tue, Apr 13, 2021 at 03:36:14AM -0700, Rodney W. Grimes wrote: > > > > > The branch main has been updated by gbe (doc committer): > > > > > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=bc54f5f1cd5c01aa5f941234034839fb0b8f54ed > > > > > > > > > > commit bc54f5f1cd5c01aa5f941234034839fb0b8f54ed > > > > > Author: Gordon Bergling > > > > > AuthorDate: 2021-04-13 04:44:04 +0000 > > > > > Commit: Gordon Bergling > > > > > CommitDate: 2021-04-13 04:45:22 +0000 > > > > > > > > > > route(8): Add an example how to print the routing tables > > > > > > > > > > The manual page currently doesn't show an example how to print > > > > > the routing table, so add one and .Xr netstat while here. > > > > > > > > Because the route command does not print the routing table. > > > > > > > > Manual pages should have examples of how to use that command, > > > > not examples of how to do associated things that are done > > > > using another command. > > > > > > > > The add of xref to netstat is long overdue. > > > > > > I know that examples in man pages should be specific for the command > > > the man page is for, but I think we could make an exception for netstat at > > > this point, because many people, who are looking for such an information > > > are coming from the Windows world, where the route command has a print > > > option. > > > > Perhaps add in description of "route get": > > To print the complete routing table refer to the netstat(8) -r flag. > > I am currently working on a 'route show' implementation for FreeBSD. NetBSD and > OpenBSD have this functionality already implemented. I would update the man page > after I have finished the implementation and the review process through phabricator. Be aware that the netstat -r implementation has serious issues when your dealing with full view route tables. The size of that table can change rapid enough that the cycling of calls to try to guess a proper chunk of memory to allocate is a race condition. See: https://reviews.freebsd.org/D15488 for some discussions and attempts at solutions. > --Gordon > > > > > > PR: 231579 > > > > > Reported by: Pekka J?rvinen > > > > > Reviewed by: debdrup > > > > > MFC after: 5 days > > > > > Differential Revision: https://reviews.freebsd.org/D29702 > > > > > --- > > > > > sbin/route/route.8 | 7 ++++++- > > > > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > > > > > > > diff --git a/sbin/route/route.8 b/sbin/route/route.8 > > > > > index 6f34795ce883..c353bfb73d62 100644 > > > > > --- a/sbin/route/route.8 > > > > > +++ b/sbin/route/route.8 > > > > > @@ -28,7 +28,7 @@ > > > > > .\" @(#)route.8 8.3 (Berkeley) 3/19/94 > > > > > .\" $FreeBSD$ > > > > > .\" > > > > > -.Dd January 9, 2019 > > > > > +.Dd April 11, 2021 > > > > > .Dt ROUTE 8 > > > > > .Os > > > > > .Sh NAME > > > > > @@ -453,6 +453,10 @@ Delete a static route from the routing table: > > > > > Remove all routes from the routing table: > > > > > .Pp > > > > > .Dl route flush > > > > > +.Pp > > > > > +List all routing tables: > > > > > +.Pp > > > > > +.Dl netstat -r > > > > > .Sh DIAGNOSTICS > > > > > .Bl -diag > > > > > .It "add [host \&| network ] %s: gateway %s flags %x" > > > > > @@ -493,6 +497,7 @@ The next-hop gateway should be reachable through a different route. > > > > > .El > > > > > .Sh SEE ALSO > > > > > .\".Xr esis 4 , > > > > > +.Xr netstat 1 , > > > > > .Xr netintro 4 , > > > > > .Xr route 4 , > > > > > .Xr arp 8 , > > > > > > > > > > > > > -- > > > > Rod Grimes rgrimes@freebsd.org > > > > > > -- > > > > > > > -- > > Rod Grimes rgrimes@freebsd.org > > -- > -- Rod Grimes rgrimes@freebsd.org From owner-dev-commits-src-main@freebsd.org Sun Apr 18 13:39:24 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E596A5E9D2E; Sun, 18 Apr 2021 13:39:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNWJX627lz3RJn; Sun, 18 Apr 2021 13:39:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C24ED49CA; Sun, 18 Apr 2021 13:39:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IDdO28028372; Sun, 18 Apr 2021 13:39:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IDdO3I028371; Sun, 18 Apr 2021 13:39:24 GMT (envelope-from git) Date: Sun, 18 Apr 2021 13:39:24 GMT Message-Id: <202104181339.13IDdO3I028371@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Vincenzo Maffione Subject: git: f4a54f4333c5 - main - netmap: use safer defaults for hwbuf_len MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vmaffione X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f4a54f4333c5c0f61d8ddddbb75e9c18af8c1aaa Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 13:39:25 -0000 The branch main has been updated by vmaffione: URL: https://cgit.FreeBSD.org/src/commit/?id=f4a54f4333c5c0f61d8ddddbb75e9c18af8c1aaa commit f4a54f4333c5c0f61d8ddddbb75e9c18af8c1aaa Author: Vincenzo Maffione AuthorDate: 2021-04-18 13:36:05 +0000 Commit: Vincenzo Maffione CommitDate: 2021-04-18 13:39:15 +0000 netmap: use safer defaults for hwbuf_len We must make sure that incoming packets will never overflow the netmap buffers, even when the user is using the offset feature. In the typical scenario, the netmap buffer is 2KiB and, with an MTU of 1500, there are ~500 bytes available for user offsets. Unfortunately, some NICs accept incoming packets even when they are larger then the MTU. This means that the only way to stop DMA from overflowing the netmap buffers, when offsets are allowed, is to choose a hardware buffer length which is smaller than the netmap buffer length. For most NICs and for 2KiB netmap buffers, this means 1024 bytes, which is unconveniently small. The current code will select the small hardware buf size even when offsets are not in use. The main purpose of this change is to fix this bug by returning to the normal behavior for the no-offsets case. At the same time, the patch pushes the handling of the offset case to the lower level driver code, so that it can be made NIC-specific (in future patches). --- sys/dev/netmap/netmap.c | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/sys/dev/netmap/netmap.c b/sys/dev/netmap/netmap.c index 4835c47d2785..9f1edb246cae 100644 --- a/sys/dev/netmap/netmap.c +++ b/sys/dev/netmap/netmap.c @@ -2381,6 +2381,12 @@ out: } + +/* set the hardware buffer length in each one of the newly opened rings + * (hwbuf_len field in the kring struct). The purpose it to select + * the maximum supported input buffer lenght that will not cause writes + * outside of the available space, even when offsets are in use. + */ static int netmap_compute_buf_len(struct netmap_priv_d *priv) { @@ -2390,32 +2396,44 @@ netmap_compute_buf_len(struct netmap_priv_d *priv) int error = 0; unsigned mtu = 0; struct netmap_adapter *na = priv->np_na; - uint64_t target, maxframe; - - if (na->ifp != NULL) - mtu = nm_os_ifnet_mtu(na->ifp); + uint64_t target; foreach_selected_ring(priv, t, i, kring) { - + /* rings that are already active have their hwbuf_len + * already set and we cannot change it. + */ if (kring->users > 1) continue; + /* For netmap buffers which are not shared among several ring + * slots (the normal case), the available space is the buf size + * minus the max offset declared by the user at open time. If + * the user plans to have several slots pointing to different + * offsets into the same large buffer, she must also declare a + * "minimum gap" between two such consecutive offsets. In this + * case the user-declared 'offset_gap' is taken as the + * available space and offset_max is ignored. + */ + + /* start with the normal case (unshared buffers) */ target = NETMAP_BUF_SIZE(kring->na) - kring->offset_max; + /* if offset_gap is zero, the user does not intend to use + * shared buffers. In this case the minimum gap between + * two consective offsets into the same buffer can be + * assumed to be equal to the buffer size. In this way + * offset_gap always contains the available space ignoring + * offset_max. This may be used by drivers of NICs that + * are guaranteed to never write more than MTU bytes, even + * if the input buffer is larger: if the MTU is less + * than the target they can set hwbuf_len to offset_gap. + */ if (!kring->offset_gap) kring->offset_gap = NETMAP_BUF_SIZE(kring->na); + if (kring->offset_gap < target) target = kring->offset_gap; - - if (mtu) { - maxframe = mtu + ETH_HLEN + - ETH_FCS_LEN + VLAN_HLEN; - if (maxframe < target) { - target = maxframe; - } - } - error = kring->nm_bufcfg(kring, target); if (error) goto out; From owner-dev-commits-src-main@freebsd.org Sun Apr 18 14:38:06 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5BFC25EB141; Sun, 18 Apr 2021 14:38:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNXcG28bwz3jm5; Sun, 18 Apr 2021 14:38:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3CCE45668; Sun, 18 Apr 2021 14:38:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IEc6iL008182; Sun, 18 Apr 2021 14:38:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IEc6na008181; Sun, 18 Apr 2021 14:38:06 GMT (envelope-from git) Date: Sun, 18 Apr 2021 14:38:06 GMT Message-Id: <202104181438.13IEc6na008181@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 136f6b6c0cc1 - main - c.7: Describe more recent C standards MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 136f6b6c0cc1343a7637c3250ff9dd0eced4b4d0 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 14:38:06 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=136f6b6c0cc1343a7637c3250ff9dd0eced4b4d0 commit 136f6b6c0cc1343a7637c3250ff9dd0eced4b4d0 Author: Faraz Vahedi AuthorDate: 2021-04-18 14:19:33 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 14:36:13 +0000 c.7: Describe more recent C standards Also, add some MLINKS and fix some typos. Reviewed by: bcr Differential Revision: https://reviews.freebsd.org/D28441 --- share/man/man7/Makefile | 14 ++- share/man/man7/{c99.7 => c.7} | 248 ++++++++++++++++++++++++++++++++++++------ 2 files changed, 222 insertions(+), 40 deletions(-) diff --git a/share/man/man7/Makefile b/share/man/man7/Makefile index be7a5ae30500..228c4ea393d5 100644 --- a/share/man/man7/Makefile +++ b/share/man/man7/Makefile @@ -8,9 +8,9 @@ MAN= arch.7 \ ascii.7 \ bsd.snmpmod.mk.7 \ build.7 \ + c.7 \ clocks.7 \ crypto.7 \ - c99.7 \ development.7 \ environ.7 \ ffs.7 \ @@ -35,10 +35,14 @@ MAN= arch.7 \ MLINKS= intro.7 miscellaneous.7 MLINKS+= security.7 securelevel.7 -MLINKS+= c99.7 c.7 -MLINKS+= c99.7 c78.7 -MLINKS+= c99.7 c89.7 -MLINKS+= c99.7 c90.7 +MLINKS+= c.7 c78.7 +MLINKS+= c.7 c89.7 +MLINKS+= c.7 c90.7 +MLINKS+= c.7 c95.7 +MLINKS+= c.7 c99.7 +MLINKS+= c.7 c11.7 +MLINKS+= c.7 c17.7 +MLINKS+= c.7 c2x.7 .if ${MK_TESTS} != "no" ATF= ${SRCTOP}/contrib/atf diff --git a/share/man/man7/c99.7 b/share/man/man7/c.7 similarity index 50% rename from share/man/man7/c99.7 rename to share/man/man7/c.7 index f8c1f530365b..c9f7fc3c93b3 100644 --- a/share/man/man7/c99.7 +++ b/share/man/man7/c.7 @@ -1,4 +1,5 @@ .\" Copyright (C) 2007, 2010 Gabor Kovesdan. All rights reserved. +.\" Copyright (C) 2021 Faraz Vahedi .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -23,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 30, 2011 +.Dd April 18, 2021 .Dt C 7 .Os .Sh NAME @@ -31,7 +32,11 @@ .Nm c78 , .Nm c89 , .Nm c90 , -.Nm c99 +.Nm c95 , +.Nm c99 , +.Nm c11 , +.Nm c17 , +.Nm c2x .Nd The C programming language .Sh DESCRIPTION C is a general purpose programming language, which has a strong connection @@ -81,12 +86,16 @@ Note, that POSIX is not a C standard, but an operating system standard and thus is beyond the scope of this manual. The standards discussed below are all C standards and only cover the C programming language and the accompanying library. +All listed improvements for each standard edition are taken from the official +standard drafts. +For further details, check the publicly available drafts or +purchase the published standards \(em from either ISO or IEC resources. .Pp After the publication of the book mentioned before, the American National Standards Institute (ANSI) started to work on standardizing the language, and they announced ANSI X3.159-1989 in 1989. -It is usually referred as ANSI C or C89. +It is usually referred to as ANSI C or C89. The main difference in this standard were the function prototypes, which is a new way of declaring functions. With the old-style function declarations, the compiler was unable to @@ -97,54 +106,127 @@ at run-time. .Pp In 1990, the International Organization for Standardization (ISO) adopted the ANSI standard as ISO/IEC 9899:1990 in 1990. -This is also referred as ISO C or C90. +This is also referred to as ISO C or C90. It only contains negligible minor modifications against ANSI C, so the two standards often considered to be fully equivalent. This was a very important milestone in the history of the C language, but the development of the language did not stop. .Pp The ISO C standard was later extended with an amendment as -ISO/IEC 9899 AM1 in 1995. -This contained, for example, the wide-character support in wchar.h and -wctype.h. -Two corrigenda were also published: Technical Corrigendum 1 as -ISO/IEC 9899 TCOR1 in 1995 and Technical Corrigendum 2 as ISO/IEC 9899 TCOR1 +ISO/IEC 9899/AMD1 in 1995. +This contained, for example, the wide-character support in and +, and also restricted character set support via diagraphs and +. +This amendment is usually referred to as C95. +Two technical corrigenda were also published: Technical Corrigendum 1 as +ISO/IEC 9899/COR1 in 1994 and Technical Corrigendum 2 as ISO/IEC 9899/COR2 in 1996. The continuous development and growth made it necessary to work out a new standard, which contains the new features and fixes the known defects and deficiencies of the language. -As a result, ISO/IEC 9899:1999 was born in 1999. -Similarly to the other standards, this is referred after the +As a result, ISO/IEC 9899:1999 was born in 1999 as the second edition of the +standard. +Similarly to the other standards, this is informally named after the publication year as C99. -The improvements include the following: +The improvements include (but are not limited to) the following: .Bl -bullet -offset indent .It -Inline functions +digraphs, trigraphs, and alternative spellings for the operators that +use non-ISO646 characters in .It -Support for variable length arrays +extended multibyte and wide character library support in and + .It -New high-precision integer type named long long int, and other integer types -defined in stdint.h +variable length arrays .It -New boolean data type implemented in stdbool.h +flexible array members .It -One line comments taken from the C++ language +complex (and imaginary) number arithmetic support in .It -Some new preprocessor features +type-generic math macros in .It -New variables can be declared anywhere, not just in the beginning of the -program or program blocks +the long long int type and library functions .It -No implicit int type +remove implicit int type +.It +universal character names (\eu and \eU) +.It +compound literals +.It +remove implicit function declaration +.It +BCPL style single-line comments +.It +allow mixed declarations and code +.It +the vscanf family of functions in and +.It +allow trailing comma in enum declaration +.It +inline functions +.It +the snprintf family of functions in +.It +boolean type and macros in +.It +empty macro arguments +.It +_Pragma preprocessing operator +.It +__func__ predefined identifier +.It +va_copy macro in +.It +additional strftime conversion specifiers .El .Pp -Since then new standards have not been published, but the C language is still -evolving. -New and useful features have been showed up in the most famous -C compiler: GNU C. -Most of the UNIX-like operating systems use GNU C as a system compiler, -but those addition in GNU C should not be considered as -standard features. +Later in 2011, the third edition of the standard, ISO/IEC 1989:2011, +commonly reffered to as C11 (formerly C1x), came out and replaced the +second edition by ISO/IEC 9899:1999/COR1:2001, ISO/IEC 9899:1999/COR2:2004, +and ISO/IEC 9899:1999/COR3:2007. +The improvements include (but are not limited to) the following: +.Bl -bullet -offset indent +.It +support for multiple threads of execution and atomic operations in +and +.It +additional floating-point characteristic macros in +.It +querying and specifying alignment of objects in and +.It +Unicode character types and functions in +.It +type-generic expressions +.It +static assertions in +.It +anonymous structures and unions +.It +remove the gets function from +.It +add the aligned_alloc, at_quick_exit, and quick_exit functions in +.El +.Pp +C11 was later superseded by ISO/IEC 9899:2018, also known as C17 which was +prepared in 2017 and published in June 2018 as the fourth edition. +It incorporates the Technical Corrigendum 1 (ISO/IEC 9899:2011/COR1:2012) +which was published in 2012. +It addressed defects and deficiencies in C11 without introducing new features, +only corrections and clarifications. +Since there were no major changes in C17, the current standrad for +Programming Language C, is still considered C11 \(em ISO/IEC 9899:2011, published +2011-12-08. +.Pp +The next standard, the fifth, is currently referred to as C2x and is scheduled +to be adopted by the end of 2021, with a publication date of 2022. +When published, it will cancel and replace the fourth edition, ISO/IEC +9899:2018. +.Pp +Some useful features have been provided as extensions by some compilers, but +they cannot be considered as standard features. +.Pp +ISO/IEC JTC1/SC22/WG14 committee is responsible for the ISO/IEC 9899, +C Standard. .Sh SEE ALSO .Xr c89 1 , .Xr c99 1 , @@ -152,36 +234,132 @@ standard features. .Sh STANDARDS .Rs .%A ANSI -.%T X3.159-1989 +.%T X3.159-1989 (aka C89 or ANSI C) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T 9899:1990 (aka C90) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T 9899:1990/AMD 1:1995, Amendment 1: C Integrity (aka C95) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T 9899:1990/COR 1:1994, Technical Corrigendum 1 +.Re +.Pp +.Rs +.%A ISO/IEC +.%T 9899:1990/COR 2:1996, Technical Corrigendum 2 +.Re +.Pp +.Rs +.%A ISO/IEC +.%T 9899:1999 (aka C99) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T 9899:1999/COR 1:2001, Technical Corrigendum 1 +.Re +.Pp +.Rs +.%A ISO/IEC +.%T 9899:1999/COR 2:2004, Technical Corrigendum 2 +.Re +.Pp +.Rs +.%A ISO/IEC +.%T 9899:1999/COR 3:2007, Technical Corrigendum 3 +.Re +.Pp +.Rs +.%A ISO/IEC +.%T TR 24731-1:2007 (aka bounds-checking interfaces) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T TS 18037:2008 (aka, embedded C) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T TR 24747:2009 (aka mathematical special functions) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T TR 24732:2009 (aka decimal floating-point) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T TR 24731-2:2010 (aka dynamic allocation functions) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T 9899:2011 (aka C11) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T 9899:2011/COR 1:2012, Technical Corrigendum 1 +.Re +.Pp +.Rs +.%A ISO/IEC +.%T TS 17961:2013 (aka C secure coding rules) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T TS 18861-1:2014 (aka binary floating-point) +.Re +.Pp +.Rs +.%A ISO/IEC +.%T TS 18861-2:2015 (aka decimal floating-point) .Re .Pp .Rs .%A ISO/IEC -.%T 9899:1990, Programming languages -- C +.%T TS 18861-3:2015 (aka interchange and extended types) .Re .Pp .Rs .%A ISO/IEC -.%T 9899 AM1 +.%T TS 18861-4:2015 (aka supplementary functions) .Re .Pp .Rs .%A ISO/IEC -.%T 9899 TCOR1, Programming languages -- C, Technical Corrigendum 1 +.%T TS 17961:2013/COR 1:2016 (aka C secure coding rules TC1) .Re .Pp .Rs .%A ISO/IEC -.%T 9899 TCOR2, Programming languages -- C, Technical Corrigendum 2 +.%T TS 18861-5:2016 (aka supplementary attributes) .Re .Pp .Rs .%A ISO/IEC -.%T 9899:1999, Programming languages -- C +.%T 9899:2018 (aka C17) .Re .Sh HISTORY This manual page first appeared in .Fx 9.0 . .Sh AUTHORS +.An -nosplit This manual page was originally written by .An Gabor Kovesdan Aq Mt gabor@FreeBSD.org . +It was updated for +.Fx 14.0 +by +.An Faraz Vahedi Aq Mt kfv@kfv.io +with information about more recent C standards. From owner-dev-commits-src-main@freebsd.org Sun Apr 18 14:41:29 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 918B75EB1D6; Sun, 18 Apr 2021 14:41:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNXh93lZ6z3jsJ; Sun, 18 Apr 2021 14:41:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 73E4B55CC; Sun, 18 Apr 2021 14:41:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IEfTO1019904; Sun, 18 Apr 2021 14:41:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IEfTfW019902; Sun, 18 Apr 2021 14:41:29 GMT (envelope-from git) Date: Sun, 18 Apr 2021 14:41:29 GMT Message-Id: <202104181441.13IEfTfW019902@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michael Tuexen Subject: git: 9e644c23000c - main - tcp: add support for TCP over UDP MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9e644c23000c2f5028b235f6263d17ffb24d3605 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 14:41:29 -0000 The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=9e644c23000c2f5028b235f6263d17ffb24d3605 commit 9e644c23000c2f5028b235f6263d17ffb24d3605 Author: Michael Tuexen AuthorDate: 2021-04-18 14:08:08 +0000 Commit: Michael Tuexen CommitDate: 2021-04-18 14:16:42 +0000 tcp: add support for TCP over UDP Adding support for TCP over UDP allows communication with TCP stacks which can be implemented in userspace without requiring special priviledges or specific support by the OS. This is joint work with rrs. Reviewed by: rrs Sponsored by: Netflix, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29469 --- share/man/man4/tcp.4 | 15 +- sys/netinet/tcp.h | 1 + sys/netinet/tcp_input.c | 47 ++++- sys/netinet/tcp_output.c | 80 ++++++-- sys/netinet/tcp_stacks/bbr.c | 38 +--- sys/netinet/tcp_stacks/rack.c | 26 +-- sys/netinet/tcp_subr.c | 462 ++++++++++++++++++++++++++++++++++++++++-- sys/netinet/tcp_syncache.c | 127 +++++++++--- sys/netinet/tcp_syncache.h | 12 +- sys/netinet/tcp_timewait.c | 84 ++++++-- sys/netinet/tcp_usrreq.c | 30 +++ sys/netinet/tcp_var.h | 27 ++- sys/netinet/toecore.c | 4 +- sys/netinet6/tcp6_var.h | 2 + sys/sys/mbuf.h | 1 + usr.bin/netstat/inet.c | 4 + usr.bin/sockstat/sockstat.1 | 6 +- usr.bin/sockstat/sockstat.c | 13 +- 18 files changed, 821 insertions(+), 158 deletions(-) diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 index cbb8021226fe..873cfe4b822a 100644 --- a/share/man/man4/tcp.4 +++ b/share/man/man4/tcp.4 @@ -34,7 +34,7 @@ .\" From: @(#)tcp.4 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd April 17, 2021 +.Dd April 18, 2021 .Dt TCP 4 .Os .Sh NAME @@ -329,6 +329,9 @@ currently executing. This is typically used after a process or thread inherits a listen socket from its parent, and sets its CPU affinity to a particular core. .El +.It Dv TCP_REMOTE_UDP_ENCAPS_PORT +Set and get the remote UDP encapsulation port. +It can only be set on a closed TCP socket. .El .Pp The option level for the @@ -755,6 +758,16 @@ A CSV list of template_spec=percent key-value pairs which controls the per template sampling rates when .Xr stats 3 sampling is enabled. +.It Va udp_tunneling_port +The local UDP encapsulation port. +A value of 0 indicates that UDP encapsulation is disabled. +The default is 0. +.It Va udp_tunneling_overhead +The overhead taken into account when using UDP encapsulation. +Since MSS clamping by middleboxes will most likely not work, values larger than +8 (the size of the UDP header) are also supported. +Supported values are between 8 and 1024. +The default is 8. .El .Sh ERRORS A socket operation may fail with one of the following errors returned: diff --git a/sys/netinet/tcp.h b/sys/netinet/tcp.h index 0b71bd4658f8..d2bf1f8431fd 100644 --- a/sys/netinet/tcp.h +++ b/sys/netinet/tcp.h @@ -183,6 +183,7 @@ struct tcphdr { #define TCP_RXTLS_MODE 42 /* Receive TLS mode */ #define TCP_CONGESTION 64 /* get/set congestion control algorithm */ #define TCP_CCALGOOPT 65 /* get/set cc algorithm specific options */ +#define TCP_REMOTE_UDP_ENCAPS_PORT 71 /* Enable TCP over UDP tunneling via the specified port */ #define TCP_DELACK 72 /* socket option for delayed ack */ #define TCP_FIN_IS_RST 73 /* A fin from the peer is treated has a RST */ #define TCP_LOG_LIMIT 74 /* Limit to number of records in tcp-log */ diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index ed184de4a4bf..8592f3313725 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -123,6 +123,7 @@ __FBSDID("$FreeBSD$"); #ifdef TCP_OFFLOAD #include #endif +#include #include @@ -567,7 +568,7 @@ cc_ecnpkt_handler(struct tcpcb *tp, struct tcphdr *th, uint8_t iptos) */ #ifdef INET6 int -tcp6_input(struct mbuf **mp, int *offp, int proto) +tcp6_input_with_port(struct mbuf **mp, int *offp, int proto, uint16_t port) { struct mbuf *m; struct in6_ifaddr *ia6; @@ -597,12 +598,19 @@ tcp6_input(struct mbuf **mp, int *offp, int proto) } *mp = m; - return (tcp_input(mp, offp, proto)); + return (tcp_input_with_port(mp, offp, proto, port)); +} + +int +tcp6_input(struct mbuf **mp, int *offp, int proto) +{ + + return(tcp6_input_with_port(mp, offp, proto, 0)); } #endif /* INET6 */ int -tcp_input(struct mbuf **mp, int *offp, int proto) +tcp_input_with_port(struct mbuf **mp, int *offp, int proto, uint16_t port) { struct mbuf *m = *mp; struct tcphdr *th = NULL; @@ -659,6 +667,8 @@ tcp_input(struct mbuf **mp, int *offp, int proto) ip6 = mtod(m, struct ip6_hdr *); th = (struct tcphdr *)((caddr_t)ip6 + off0); tlen = sizeof(*ip6) + ntohs(ip6->ip6_plen) - off0; + if (port) + goto skip6_csum; if (m->m_pkthdr.csum_flags & CSUM_DATA_VALID_IPV6) { if (m->m_pkthdr.csum_flags & CSUM_PSEUDO_HDR) th->th_sum = m->m_pkthdr.csum_data; @@ -672,7 +682,7 @@ tcp_input(struct mbuf **mp, int *offp, int proto) TCPSTAT_INC(tcps_rcvbadsum); goto drop; } - + skip6_csum: /* * Be proactive about unspecified IPv6 address in source. * As we use all-zero to indicate unbounded/unconnected pcb, @@ -713,6 +723,8 @@ tcp_input(struct mbuf **mp, int *offp, int proto) tlen = ntohs(ip->ip_len) - off0; iptos = ip->ip_tos; + if (port) + goto skip_csum; if (m->m_pkthdr.csum_flags & CSUM_DATA_VALID) { if (m->m_pkthdr.csum_flags & CSUM_PSEUDO_HDR) th->th_sum = m->m_pkthdr.csum_data; @@ -742,8 +754,8 @@ tcp_input(struct mbuf **mp, int *offp, int proto) ip->ip_v = IPVERSION; ip->ip_hl = off0 >> 2; } - - if (th->th_sum) { + skip_csum: + if (th->th_sum && (port == 0)) { TCPSTAT_INC(tcps_rcvbadsum); goto drop; } @@ -1004,6 +1016,11 @@ findpcb: goto dropwithreset; } + if ((tp->t_port != port) && (tp->t_state > TCPS_LISTEN)) { + rstreason = BANDLIM_RST_CLOSEDPORT; + goto dropwithreset; + } + #ifdef TCP_OFFLOAD if (tp->t_flags & TF_TOE) { tcp_offload_input(tp, m); @@ -1074,7 +1091,7 @@ findpcb: * NB: syncache_expand() doesn't unlock * inp and tcpinfo locks. */ - rstreason = syncache_expand(&inc, &to, th, &so, m); + rstreason = syncache_expand(&inc, &to, th, &so, m, port); if (rstreason < 0) { /* * A failing TCP MD5 signature comparison @@ -1156,7 +1173,7 @@ tfo_socket_result: * causes. */ if (thflags & TH_RST) { - syncache_chkrst(&inc, th, m); + syncache_chkrst(&inc, th, m, port); goto dropunlock; } /* @@ -1178,7 +1195,7 @@ tfo_socket_result: log(LOG_DEBUG, "%s; %s: Listen socket: " "SYN|ACK invalid, segment rejected\n", s, __func__); - syncache_badack(&inc); /* XXX: Not needed! */ + syncache_badack(&inc, port); /* XXX: Not needed! */ TCPSTAT_INC(tcps_badsyn); rstreason = BANDLIM_RST_OPENPORT; goto dropwithreset; @@ -1337,7 +1354,7 @@ tfo_socket_result: TCP_PROBE3(debug__input, tp, th, m); tcp_dooptions(&to, optp, optlen, TO_SYN); if ((so = syncache_add(&inc, &to, th, inp, so, m, NULL, NULL, - iptos)) != NULL) + iptos, port)) != NULL) goto tfo_socket_result; /* @@ -1468,6 +1485,12 @@ tcp_autorcvbuf(struct mbuf *m, struct tcphdr *th, struct socket *so, return (newsize); } +int +tcp_input(struct mbuf **mp, int *offp, int proto) +{ + return(tcp_input_with_port(mp, offp, proto, 0)); +} + void tcp_handle_wakeup(struct tcpcb *tp, struct socket *so) { @@ -3672,11 +3695,13 @@ tcp_mss_update(struct tcpcb *tp, int offer, int mtuoffer, sizeof (struct ip6_hdr) + sizeof (struct tcphdr) : sizeof (struct tcpiphdr); #else - const size_t min_protoh = sizeof(struct tcpiphdr); + size_t min_protoh = sizeof(struct tcpiphdr); #endif INP_WLOCK_ASSERT(tp->t_inpcb); + if (tp->t_port) + min_protoh += V_tcp_udp_tunneling_overhead; if (mtuoffer != -1) { KASSERT(offer == -1, ("%s: conflict", __func__)); offer = mtuoffer - min_protoh; diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c index e23cdc749e98..5bda2be14df0 100644 --- a/sys/netinet/tcp_output.c +++ b/sys/netinet/tcp_output.c @@ -101,6 +101,8 @@ __FBSDID("$FreeBSD$"); #include +#include +#include #include #include @@ -207,7 +209,7 @@ tcp_output(struct tcpcb *tp) #endif struct tcphdr *th; u_char opt[TCP_MAXOLEN]; - unsigned ipoptlen, optlen, hdrlen; + unsigned ipoptlen, optlen, hdrlen, ulen; #if defined(IPSEC) || defined(IPSEC_SUPPORT) unsigned ipsec_optlen = 0; #endif @@ -216,6 +218,7 @@ tcp_output(struct tcpcb *tp) struct sackhole *p; int tso, mtu; struct tcpopt to; + struct udphdr *udp = NULL; unsigned int wanted_cookie = 0; unsigned int dont_sendalot = 0; #if 0 @@ -558,6 +561,7 @@ after_sack_rexmit: #endif if ((tp->t_flags & TF_TSO) && V_tcp_do_tso && len > tp->t_maxseg && + (tp->t_port == 0) && ((tp->t_flags & TF_SIGNATURE) == 0) && tp->rcv_numsacks == 0 && sack_rxmit == 0 && ipoptlen == 0 && !(flags & TH_SYN)) @@ -800,6 +804,8 @@ send: /* Maximum segment size. */ if (flags & TH_SYN) { to.to_mss = tcp_mssopt(&tp->t_inpcb->inp_inc); + if (tp->t_port) + to.to_mss -= V_tcp_udp_tunneling_overhead; to.to_flags |= TOF_MSS; /* @@ -887,7 +893,14 @@ send: !(to.to_flags & TOF_FASTOPEN)) len = 0; } - + if (tp->t_port) { + if (V_tcp_udp_tunneling_port == 0) { + /* The port was removed?? */ + SOCKBUF_UNLOCK(&so->so_snd); + return (EHOSTUNREACH); + } + hdrlen += sizeof(struct udphdr); + } /* * Adjust data length if insertion of options will * bump the packet length beyond the t_maxseg length. @@ -1140,8 +1153,17 @@ send: #ifdef INET6 if (isipv6) { ip6 = mtod(m, struct ip6_hdr *); - th = (struct tcphdr *)(ip6 + 1); - tcpip_fillheaders(tp->t_inpcb, ip6, th); + if (tp->t_port) { + udp = (struct udphdr *)((caddr_t)ip6 + ipoptlen + sizeof(struct ip6_hdr)); + udp->uh_sport = htons(V_tcp_udp_tunneling_port); + udp->uh_dport = tp->t_port; + ulen = hdrlen + len - sizeof(struct ip6_hdr); + udp->uh_ulen = htons(ulen); + th = (struct tcphdr *)(udp + 1); + } else { + th = (struct tcphdr *)(ip6 + 1); + } + tcpip_fillheaders(tp->t_inpcb, tp->t_port, ip6, th); } else #endif /* INET6 */ { @@ -1149,8 +1171,16 @@ send: #ifdef TCPDEBUG ipov = (struct ipovly *)ip; #endif - th = (struct tcphdr *)(ip + 1); - tcpip_fillheaders(tp->t_inpcb, ip, th); + if (tp->t_port) { + udp = (struct udphdr *)((caddr_t)ip + ipoptlen + sizeof(struct ip)); + udp->uh_sport = htons(V_tcp_udp_tunneling_port); + udp->uh_dport = tp->t_port; + ulen = hdrlen + len - sizeof(struct ip); + udp->uh_ulen = htons(ulen); + th = (struct tcphdr *)(udp + 1); + } else + th = (struct tcphdr *)(ip + 1); + tcpip_fillheaders(tp->t_inpcb, tp->t_port, ip, th); } /* @@ -1309,7 +1339,6 @@ send: * checksum extended header and data. */ m->m_pkthdr.len = hdrlen + len; /* in6_cksum() need this */ - m->m_pkthdr.csum_data = offsetof(struct tcphdr, th_sum); #if defined(IPSEC_SUPPORT) || defined(TCP_SIGNATURE) if (to.to_flags & TOF_SIGNATURE) { @@ -1336,9 +1365,19 @@ send: * There is no need to fill in ip6_plen right now. * It will be filled later by ip6_output. */ - m->m_pkthdr.csum_flags = CSUM_TCP_IPV6; - th->th_sum = in6_cksum_pseudo(ip6, sizeof(struct tcphdr) + - optlen + len, IPPROTO_TCP, 0); + if (tp->t_port) { + m->m_pkthdr.csum_flags = CSUM_UDP_IPV6; + m->m_pkthdr.csum_data = offsetof(struct udphdr, uh_sum); + udp->uh_sum = in6_cksum_pseudo(ip6, ulen, IPPROTO_UDP, 0); + th->th_sum = htons(0); + UDPSTAT_INC(udps_opackets); + } else { + m->m_pkthdr.csum_flags = CSUM_TCP_IPV6; + m->m_pkthdr.csum_data = offsetof(struct tcphdr, th_sum); + th->th_sum = in6_cksum_pseudo(ip6, + sizeof(struct tcphdr) + optlen + len, IPPROTO_TCP, + 0); + } } #endif #if defined(INET6) && defined(INET) @@ -1346,9 +1385,20 @@ send: #endif #ifdef INET { - m->m_pkthdr.csum_flags = CSUM_TCP; - th->th_sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr, - htons(sizeof(struct tcphdr) + IPPROTO_TCP + len + optlen)); + if (tp->t_port) { + m->m_pkthdr.csum_flags = CSUM_UDP; + m->m_pkthdr.csum_data = offsetof(struct udphdr, uh_sum); + udp->uh_sum = in_pseudo(ip->ip_src.s_addr, + ip->ip_dst.s_addr, htons(ulen + IPPROTO_UDP)); + th->th_sum = htons(0); + UDPSTAT_INC(udps_opackets); + } else { + m->m_pkthdr.csum_flags = CSUM_TCP; + m->m_pkthdr.csum_data = offsetof(struct tcphdr, th_sum); + th->th_sum = in_pseudo(ip->ip_src.s_addr, + ip->ip_dst.s_addr, htons(sizeof(struct tcphdr) + + IPPROTO_TCP + len + optlen)); + } /* IP version must be set here for ipv4/ipv6 checking later */ KASSERT(ip->ip_v == IPVERSION, @@ -1473,8 +1523,10 @@ send: * NB: Don't set DF on small MTU/MSS to have a safe fallback. */ if (V_path_mtu_discovery && tp->t_maxseg > V_tcp_minmss) { - ip->ip_off |= htons(IP_DF); tp->t_flags2 |= TF2_PLPMTU_PMTUD; + if (tp->t_port == 0 || len < V_tcp_minmss) { + ip->ip_off |= htons(IP_DF); + } } else { tp->t_flags2 &= ~TF2_PLPMTU_PMTUD; } diff --git a/sys/netinet/tcp_stacks/bbr.c b/sys/netinet/tcp_stacks/bbr.c index 673dee911c87..febac7ad424c 100644 --- a/sys/netinet/tcp_stacks/bbr.c +++ b/sys/netinet/tcp_stacks/bbr.c @@ -11969,14 +11969,10 @@ bbr_output_wtime(struct tcpcb *tp, const struct timeval *tv) #endif struct tcp_bbr *bbr; struct tcphdr *th; -#ifdef NETFLIX_TCPOUDP struct udphdr *udp = NULL; -#endif u_char opt[TCP_MAXOLEN]; unsigned ipoptlen, optlen, hdrlen; -#ifdef NETFLIX_TCPOUDP unsigned ulen; -#endif uint32_t bbr_seq; uint32_t delay_calc=0; uint8_t doing_tlp = 0; @@ -12991,10 +12987,8 @@ send: /* Maximum segment size. */ if (flags & TH_SYN) { to.to_mss = tcp_mssopt(&inp->inp_inc); -#ifdef NETFLIX_TCPOUDP if (tp->t_port) to.to_mss -= V_tcp_udp_tunneling_overhead; -#endif to.to_flags |= TOF_MSS; /* * On SYN or SYN|ACK transmits on TFO connections, @@ -13063,7 +13057,6 @@ send: !(to.to_flags & TOF_FASTOPEN)) len = 0; } -#ifdef NETFLIX_TCPOUDP if (tp->t_port) { if (V_tcp_udp_tunneling_port == 0) { /* The port was removed?? */ @@ -13072,7 +13065,6 @@ send: } hdrlen += sizeof(struct udphdr); } -#endif #ifdef INET6 if (isipv6) ipoptlen = ip6_optlen(tp->t_inpcb); @@ -13408,7 +13400,6 @@ send: #ifdef INET6 if (isipv6) { ip6 = mtod(m, struct ip6_hdr *); -#ifdef NETFLIX_TCPOUDP if (tp->t_port) { udp = (struct udphdr *)((caddr_t)ip6 + ipoptlen + sizeof(struct ip6_hdr)); udp->uh_sport = htons(V_tcp_udp_tunneling_port); @@ -13417,17 +13408,9 @@ send: udp->uh_ulen = htons(ulen); th = (struct tcphdr *)(udp + 1); } else { -#endif th = (struct tcphdr *)(ip6 + 1); - -#ifdef NETFLIX_TCPOUDP } -#endif - tcpip_fillheaders(inp, -#ifdef NETFLIX_TCPOUDP - tp->t_port, -#endif - ip6, th); + tcpip_fillheaders(inp, tp->t_port, ip6, th); } else #endif /* INET6 */ { @@ -13435,7 +13418,6 @@ send: #ifdef TCPDEBUG ipov = (struct ipovly *)ip; #endif -#ifdef NETFLIX_TCPOUDP if (tp->t_port) { udp = (struct udphdr *)((caddr_t)ip + ipoptlen + sizeof(struct ip)); udp->uh_sport = htons(V_tcp_udp_tunneling_port); @@ -13443,14 +13425,10 @@ send: ulen = hdrlen + len - sizeof(struct ip); udp->uh_ulen = htons(ulen); th = (struct tcphdr *)(udp + 1); - } else -#endif + } else { th = (struct tcphdr *)(ip + 1); - tcpip_fillheaders(inp, -#ifdef NETFLIX_TCPOUDP - tp->t_port, -#endif - ip, th); + } + tcpip_fillheaders(inp, tp->t_port, ip, th); } /* * If we are doing retransmissions, then snd_nxt will not reflect @@ -13600,7 +13578,6 @@ send: * ip6_plen is not need to be filled now, and will be filled * in ip6_output. */ -#ifdef NETFLIX_TCPOUDP if (tp->t_port) { m->m_pkthdr.csum_flags = CSUM_UDP_IPV6; m->m_pkthdr.csum_data = offsetof(struct udphdr, uh_sum); @@ -13608,14 +13585,11 @@ send: th->th_sum = htons(0); UDPSTAT_INC(udps_opackets); } else { -#endif csum_flags = m->m_pkthdr.csum_flags = CSUM_TCP_IPV6; m->m_pkthdr.csum_data = offsetof(struct tcphdr, th_sum); th->th_sum = in6_cksum_pseudo(ip6, sizeof(struct tcphdr) + optlen + len, IPPROTO_TCP, 0); -#ifdef NETFLIX_TCPOUDP } -#endif } #endif #if defined(INET6) && defined(INET) @@ -13623,7 +13597,6 @@ send: #endif #ifdef INET { -#ifdef NETFLIX_TCPOUDP if (tp->t_port) { m->m_pkthdr.csum_flags = CSUM_UDP; m->m_pkthdr.csum_data = offsetof(struct udphdr, uh_sum); @@ -13632,15 +13605,12 @@ send: th->th_sum = htons(0); UDPSTAT_INC(udps_opackets); } else { -#endif csum_flags = m->m_pkthdr.csum_flags = CSUM_TCP; m->m_pkthdr.csum_data = offsetof(struct tcphdr, th_sum); th->th_sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr, htons(sizeof(struct tcphdr) + IPPROTO_TCP + len + optlen)); -#ifdef NETFLIX_TCPOUDP } -#endif /* IP version must be set here for ipv4/ipv6 checking later */ KASSERT(ip->ip_v == IPVERSION, ("%s: IP version incorrect: %d", __func__, ip->ip_v)); diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c index 0079bf8b6400..d2093e1afab7 100644 --- a/sys/netinet/tcp_stacks/rack.c +++ b/sys/netinet/tcp_stacks/rack.c @@ -13008,10 +13008,8 @@ send: if (flags & TH_SYN) { tp->snd_nxt = tp->iss; to.to_mss = tcp_mssopt(&inp->inp_inc); -#ifdef NETFLIX_TCPOUDP if (tp->t_port) to.to_mss -= V_tcp_udp_tunneling_overhead; -#endif to.to_flags |= TOF_MSS; /* @@ -13088,7 +13086,6 @@ send: !(to.to_flags & TOF_FASTOPEN)) len = 0; } -#ifdef NETFLIX_TCPOUDP if (tp->t_port) { if (V_tcp_udp_tunneling_port == 0) { /* The port was removed?? */ @@ -13097,7 +13094,6 @@ send: } hdrlen += sizeof(struct udphdr); } -#endif #ifdef INET6 if (isipv6) ipoptlen = ip6_optlen(tp->t_inpcb); @@ -13372,7 +13368,6 @@ send: #ifdef INET6 if (isipv6) { ip6 = mtod(m, struct ip6_hdr *); -#ifdef NETFLIX_TCPOUDP if (tp->t_port) { udp = (struct udphdr *)((caddr_t)ip6 + ipoptlen + sizeof(struct ip6_hdr)); udp->uh_sport = htons(V_tcp_udp_tunneling_port); @@ -13380,14 +13375,10 @@ send: ulen = hdrlen + len - sizeof(struct ip6_hdr); udp->uh_ulen = htons(ulen); th = (struct tcphdr *)(udp + 1); - } else -#endif + } else { th = (struct tcphdr *)(ip6 + 1); - tcpip_fillheaders(inp, -#ifdef NETFLIX_TCPOUDP - tp->t_port, -#endif - ip6, th); + } + tcpip_fillheaders(inp, tp->t_port, ip6, th); } else #endif /* INET6 */ { @@ -13395,7 +13386,6 @@ send: #ifdef TCPDEBUG ipov = (struct ipovly *)ip; #endif -#ifdef NETFLIX_TCPOUDP if (tp->t_port) { udp = (struct udphdr *)((caddr_t)ip + ipoptlen + sizeof(struct ip)); udp->uh_sport = htons(V_tcp_udp_tunneling_port); @@ -13403,14 +13393,10 @@ send: ulen = hdrlen + len - sizeof(struct ip); udp->uh_ulen = htons(ulen); th = (struct tcphdr *)(udp + 1); - } else -#endif + } else { th = (struct tcphdr *)(ip + 1); - tcpip_fillheaders(inp, -#ifdef NETFLIX_TCPOUDP - tp->t_port, -#endif - ip, th); + } + tcpip_fillheaders(inp, tp->t_port, ip, th); } /* * Fill in fields, remembering maximum advertised window for use in diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index e973555efbcb..1ebc7357def3 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -126,6 +126,8 @@ __FBSDID("$FreeBSD$"); #ifdef TCP_OFFLOAD #include #endif +#include +#include #include @@ -501,6 +503,80 @@ tcp_switch_back_to_default(struct tcpcb *tp) } } +static void +tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, + const struct sockaddr *sa, void *ctx) +{ + struct ip *iph; +#ifdef INET6 + struct ip6_hdr *ip6; +#endif + struct udphdr *uh; + struct tcphdr *th; + int thlen; + uint16_t port; + + TCPSTAT_INC(tcps_tunneled_pkts); + if ((m->m_flags & M_PKTHDR) == 0) { + /* Can't handle one that is not a pkt hdr */ + TCPSTAT_INC(tcps_tunneled_errs); + goto out; + } + thlen = sizeof(struct tcphdr); + if (m->m_len < off + sizeof(struct udphdr) + thlen && + (m = m_pullup(m, off + sizeof(struct udphdr) + thlen)) == NULL) { + TCPSTAT_INC(tcps_tunneled_errs); + goto out; + } + iph = mtod(m, struct ip *); + uh = (struct udphdr *)((caddr_t)iph + off); + th = (struct tcphdr *)(uh + 1); + thlen = th->th_off << 2; + if (m->m_len < off + sizeof(struct udphdr) + thlen) { + m = m_pullup(m, off + sizeof(struct udphdr) + thlen); + if (m == NULL) { + TCPSTAT_INC(tcps_tunneled_errs); + goto out; + } else { + iph = mtod(m, struct ip *); + uh = (struct udphdr *)((caddr_t)iph + off); + th = (struct tcphdr *)(uh + 1); + } + } + m->m_pkthdr.tcp_tun_port = port = uh->uh_sport; + bcopy(th, uh, m->m_len - off); + m->m_len -= sizeof(struct udphdr); + m->m_pkthdr.len -= sizeof(struct udphdr); + /* + * We use the same algorithm for + * both UDP and TCP for c-sum. So + * the code in tcp_input will skip + * the checksum. So we do nothing + * with the flag (m->m_pkthdr.csum_flags). + */ + switch (iph->ip_v) { +#ifdef INET + case IPVERSION: + iph->ip_len = htons(ntohs(iph->ip_len) - sizeof(struct udphdr)); + tcp_input_with_port(&m, &off, IPPROTO_TCP, port); + break; +#endif +#ifdef INET6 + case IPV6_VERSION >> 4: + ip6 = mtod(m, struct ip6_hdr *); + ip6->ip6_plen = htons(ntohs(ip6->ip6_plen) - sizeof(struct udphdr)); + tcp6_input_with_port(&m, &off, IPPROTO_TCP, port); + break; +#endif + default: + goto out; + break; + } + return; +out: + m_freem(m); +} + static int sysctl_net_inet_default_tcp_functions(SYSCTL_HANDLER_ARGS) { @@ -598,6 +674,183 @@ SYSCTL_PROC(_net_inet_tcp, OID_AUTO, functions_available, NULL, 0, sysctl_net_inet_list_available, "A", "list available TCP Function sets"); +VNET_DEFINE(int, tcp_udp_tunneling_port) = TCP_TUNNELING_PORT_DEFAULT; + +#ifdef INET +VNET_DEFINE(struct socket *, udp4_tun_socket) = NULL; +#define V_udp4_tun_socket VNET(udp4_tun_socket) +#endif +#ifdef INET6 +VNET_DEFINE(struct socket *, udp6_tun_socket) = NULL; +#define V_udp6_tun_socket VNET(udp6_tun_socket) +#endif + +static void +tcp_over_udp_stop(void) +{ + /* + * This function assumes sysctl caller holds inp_rinfo_lock() + * for writting! + */ +#ifdef INET + if (V_udp4_tun_socket != NULL) { + soclose(V_udp4_tun_socket); + V_udp4_tun_socket = NULL; + } +#endif +#ifdef INET6 + if (V_udp6_tun_socket != NULL) { + soclose(V_udp6_tun_socket); + V_udp6_tun_socket = NULL; + } +#endif +} + +static int +tcp_over_udp_start(void) +{ + uint16_t port; + int ret; +#ifdef INET + struct sockaddr_in sin; +#endif +#ifdef INET6 + struct sockaddr_in6 sin6; +#endif + /* + * This function assumes sysctl caller holds inp_info_rlock() + * for writting! + */ + port = V_tcp_udp_tunneling_port; + if (ntohs(port) == 0) { + /* Must have a port set */ + return (EINVAL); + } +#ifdef INET + if (V_udp4_tun_socket != NULL) { + /* Already running -- must stop first */ + return (EALREADY); + } +#endif +#ifdef INET6 + if (V_udp6_tun_socket != NULL) { + /* Already running -- must stop first */ + return (EALREADY); + } +#endif +#ifdef INET + if ((ret = socreate(PF_INET, &V_udp4_tun_socket, + SOCK_DGRAM, IPPROTO_UDP, + curthread->td_ucred, curthread))) { + tcp_over_udp_stop(); + return (ret); + } + /* Call the special UDP hook. */ + if ((ret = udp_set_kernel_tunneling(V_udp4_tun_socket, + tcp_recv_udp_tunneled_packet, + tcp_ctlinput_viaudp, + NULL))) { + tcp_over_udp_stop(); + return (ret); + } + /* Ok, we have a socket, bind it to the port. */ + memset(&sin, 0, sizeof(struct sockaddr_in)); + sin.sin_len = sizeof(struct sockaddr_in); + sin.sin_family = AF_INET; + sin.sin_port = htons(port); + if ((ret = sobind(V_udp4_tun_socket, + (struct sockaddr *)&sin, curthread))) { + tcp_over_udp_stop(); + return (ret); + } +#endif +#ifdef INET6 + if ((ret = socreate(PF_INET6, &V_udp6_tun_socket, + SOCK_DGRAM, IPPROTO_UDP, + curthread->td_ucred, curthread))) { + tcp_over_udp_stop(); + return (ret); + } + /* Call the special UDP hook. */ + if ((ret = udp_set_kernel_tunneling(V_udp6_tun_socket, + tcp_recv_udp_tunneled_packet, + tcp6_ctlinput_viaudp, + NULL))) { + tcp_over_udp_stop(); + return (ret); + } + /* Ok, we have a socket, bind it to the port. */ + memset(&sin6, 0, sizeof(struct sockaddr_in6)); + sin6.sin6_len = sizeof(struct sockaddr_in6); + sin6.sin6_family = AF_INET6; + sin6.sin6_port = htons(port); + if ((ret = sobind(V_udp6_tun_socket, + (struct sockaddr *)&sin6, curthread))) { + tcp_over_udp_stop(); + return (ret); + } +#endif + return (0); +} + +static int +sysctl_net_inet_tcp_udp_tunneling_port_check(SYSCTL_HANDLER_ARGS) +{ + int error; + uint32_t old, new; + + old = V_tcp_udp_tunneling_port; + new = old; + error = sysctl_handle_int(oidp, &new, 0, req); + if ((error == 0) && + (req->newptr != NULL)) { + if ((new < TCP_TUNNELING_PORT_MIN) || + (new > TCP_TUNNELING_PORT_MAX)) { + error = EINVAL; + } else { + V_tcp_udp_tunneling_port = new; + if (old != 0) { + tcp_over_udp_stop(); + } + if (new != 0) { + error = tcp_over_udp_start(); + } + } + } + return (error); +} + +SYSCTL_PROC(_net_inet_tcp, OID_AUTO, udp_tunneling_port, + CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + &VNET_NAME(tcp_udp_tunneling_port), + 0, &sysctl_net_inet_tcp_udp_tunneling_port_check, "IU", + "Tunneling port for tcp over udp"); + +VNET_DEFINE(int, tcp_udp_tunneling_overhead) = TCP_TUNNELING_OVERHEAD_DEFAULT; + +static int +sysctl_net_inet_tcp_udp_tunneling_overhead_check(SYSCTL_HANDLER_ARGS) +{ + int error, new; + + new = V_tcp_udp_tunneling_overhead; + error = sysctl_handle_int(oidp, &new, 0, req); + if (error == 0 && req->newptr) { + if ((new < TCP_TUNNELING_OVERHEAD_MIN) || + (new > TCP_TUNNELING_OVERHEAD_MAX)) + error = EINVAL; + else + V_tcp_udp_tunneling_overhead = new; + } + return (error); +} + +SYSCTL_PROC(_net_inet_tcp, OID_AUTO, udp_tunneling_overhead, + CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, + &VNET_NAME(tcp_udp_tunneling_overhead), + 0, &sysctl_net_inet_tcp_udp_tunneling_overhead_check, "IU", + "MSS reduction when using tcp over udp"); + /* * Exports one (struct tcp_function_info) for each alias/name. */ @@ -1314,7 +1567,7 @@ tcp_fini(void *xtp) * of the tcpcb each time to conserve mbufs. */ void -tcpip_fillheaders(struct inpcb *inp, void *ip_ptr, void *tcp_ptr) +tcpip_fillheaders(struct inpcb *inp, uint16_t port, void *ip_ptr, void *tcp_ptr) { struct tcphdr *th = (struct tcphdr *)tcp_ptr; @@ -1329,7 +1582,10 @@ tcpip_fillheaders(struct inpcb *inp, void *ip_ptr, void *tcp_ptr) (inp->inp_flow & IPV6_FLOWINFO_MASK); ip6->ip6_vfc = (ip6->ip6_vfc & ~IPV6_VERSION_MASK) | (IPV6_VERSION & IPV6_VERSION_MASK); - ip6->ip6_nxt = IPPROTO_TCP; + if (port == 0) + ip6->ip6_nxt = IPPROTO_TCP; + else + ip6->ip6_nxt = IPPROTO_UDP; ip6->ip6_plen = htons(sizeof(struct tcphdr)); ip6->ip6_src = inp->in6p_laddr; ip6->ip6_dst = inp->in6p_faddr; @@ -1351,7 +1607,10 @@ tcpip_fillheaders(struct inpcb *inp, void *ip_ptr, void *tcp_ptr) ip->ip_off = 0; ip->ip_ttl = inp->inp_ip_ttl; ip->ip_sum = 0; - ip->ip_p = IPPROTO_TCP; + if (port == 0) + ip->ip_p = IPPROTO_TCP; + else + ip->ip_p = IPPROTO_UDP; ip->ip_src = inp->inp_laddr; ip->ip_dst = inp->inp_faddr; } @@ -1381,7 +1640,7 @@ tcpip_maketemplate(struct inpcb *inp) t = malloc(sizeof(*t), M_TEMP, M_NOWAIT); if (t == NULL) return (NULL); - tcpip_fillheaders(inp, (void *)&t->tt_ipgen, (void *)&t->tt_t); + tcpip_fillheaders(inp, 0, (void *)&t->tt_ipgen, (void *)&t->tt_t); return (t); } @@ -1407,14 +1666,16 @@ tcp_respond(struct tcpcb *tp, void *ipgen, struct tcphdr *th, struct mbuf *m, struct inpcb *inp; struct ip *ip; struct mbuf *optm; + struct udphdr *uh = NULL; struct tcphdr *nth; u_char *optp; #ifdef INET6 struct ip6_hdr *ip6; int isipv6; #endif /* INET6 */ - int optlen, tlen, win; + int optlen, tlen, win, ulen; bool incl_opts; + uint16_t port; KASSERT(tp != NULL || m != NULL, ("tcp_respond: tp and m both NULL")); NET_EPOCH_ASSERT(); *** 1137 LINES SKIPPED *** From owner-dev-commits-src-main@freebsd.org Sun Apr 18 15:13:08 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9EB155EC64D; Sun, 18 Apr 2021 15:13:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNYNh46s0z3lmy; Sun, 18 Apr 2021 15:13:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 802676146; Sun, 18 Apr 2021 15:13:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IFD8WP061067; Sun, 18 Apr 2021 15:13:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IFD8CI061066; Sun, 18 Apr 2021 15:13:08 GMT (envelope-from git) Date: Sun, 18 Apr 2021 15:13:08 GMT Message-Id: <202104181513.13IFD8CI061066@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: e2f79d9e518f - main - Fib algo: extend KPI by allowing algo to set datapath pointers. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e2f79d9e518f885bf875f6613e70af39b7c397de Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 15:13:08 -0000 The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=e2f79d9e518f885bf875f6613e70af39b7c397de commit e2f79d9e518f885bf875f6613e70af39b7c397de Author: Alexander V. Chernikov AuthorDate: 2021-04-15 17:44:11 +0000 Commit: Alexander V. Chernikov CommitDate: 2021-04-18 15:12:12 +0000 Fib algo: extend KPI by allowing algo to set datapath pointers. Some algorithms may require updating datapath and control plane algo pointers after the (batched) updates. Export fib_set_datapath_ptr() to allow setting the new datapath function or data pointer from the algo. Add fib_set_algo_ptr() to allow updating algo control plane pointer from the algo. Add fib_epoch_call() epoch(9) wrapper to simplify freeing old datapath state. Reviewed by: zec Differential Revision: https://reviews.freebsd.org/D29799 MFC after: 1 week --- sys/net/route/fib_algo.c | 59 ++++++++++++++++++++++++++++++++---------------- sys/net/route/fib_algo.h | 4 +++- 2 files changed, 42 insertions(+), 21 deletions(-) diff --git a/sys/net/route/fib_algo.c b/sys/net/route/fib_algo.c index 4803bafdbae1..b0a6c38ff560 100644 --- a/sys/net/route/fib_algo.c +++ b/sys/net/route/fib_algo.c @@ -197,7 +197,6 @@ static bool rebuild_fd(struct fib_data *fd, const char *reason); static bool rebuild_fd_flm(struct fib_data *fd, struct fib_lookup_module *flm_new); static void handle_fd_callout(void *_data); static void destroy_fd_instance_epoch(epoch_context_t ctx); -static enum flm_op_result attach_datapath(struct fib_data *fd); static bool is_idx_free(struct fib_data *fd, uint32_t index); static void set_algo_fixed(struct rib_head *rh); static bool is_algo_fixed(struct rib_head *rh); @@ -1014,8 +1013,7 @@ schedule_destroy_fd_instance(struct fib_data *fd, bool in_callout) */ callout_stop(&fd->fd_callout); - epoch_call(net_epoch_preempt, destroy_fd_instance_epoch, - &fd->fd_epoch_ctx); + fib_epoch_call(destroy_fd_instance_epoch, &fd->fd_epoch_ctx); return (0); } @@ -1237,8 +1235,10 @@ setup_fd_instance(struct fib_lookup_module *flm, struct rib_head *rh, for (int i = 0; i < FIB_MAX_TRIES; i++) { result = try_setup_fd_instance(flm, rh, prev_fd, &new_fd); - if ((result == FLM_SUCCESS) && attach) - result = attach_datapath(new_fd); + if ((result == FLM_SUCCESS) && attach) { + if (!fib_set_datapath_ptr(new_fd, &new_fd->fd_dp)) + result = FLM_REBUILD; + } if ((prev_fd != NULL) && (prev_fd != orig_fd)) { schedule_destroy_fd_instance(prev_fd, false); @@ -1546,32 +1546,33 @@ get_fib_dp_header(struct fib_dp *dp) /* * Replace per-family index pool @pdp with a new one which * contains updated callback/algo data from @fd. - * Returns 0 on success. + * Returns true on success. */ -static enum flm_op_result -replace_rtables_family(struct fib_dp **pdp, struct fib_data *fd) +static bool +replace_rtables_family(struct fib_dp **pdp, struct fib_data *fd, struct fib_dp *dp) { struct fib_dp_header *new_fdh, *old_fdh; NET_EPOCH_ASSERT(); FD_PRINTF(LOG_DEBUG, fd, "[vnet %p] replace with f:%p arg:%p", - curvnet, fd->fd_dp.f, fd->fd_dp.arg); + curvnet, dp->f, dp->arg); FIB_MOD_LOCK(); old_fdh = get_fib_dp_header(*pdp); + new_fdh = alloc_fib_dp_array(old_fdh->fdh_num_tables, false); FD_PRINTF(LOG_DEBUG, fd, "OLD FDH: %p NEW FDH: %p", old_fdh, new_fdh); if (new_fdh == NULL) { FIB_MOD_UNLOCK(); FD_PRINTF(LOG_WARNING, fd, "error attaching datapath"); - return (FLM_REBUILD); + return (false); } memcpy(&new_fdh->fdh_idx[0], &old_fdh->fdh_idx[0], old_fdh->fdh_num_tables * sizeof(struct fib_dp)); /* Update relevant data structure for @fd */ - new_fdh->fdh_idx[fd->fd_fibnum] = fd->fd_dp; + new_fdh->fdh_idx[fd->fd_fibnum] = *dp; /* Ensure memcpy() writes have completed */ atomic_thread_fence_rel(); @@ -1580,10 +1581,9 @@ replace_rtables_family(struct fib_dp **pdp, struct fib_data *fd) FIB_MOD_UNLOCK(); FD_PRINTF(LOG_DEBUG, fd, "update %p -> %p", old_fdh, new_fdh); - epoch_call(net_epoch_preempt, destroy_fdh_epoch, - &old_fdh->fdh_epoch_ctx); + fib_epoch_call(destroy_fdh_epoch, &old_fdh->fdh_epoch_ctx); - return (FLM_SUCCESS); + return (true); } static struct fib_dp ** @@ -1601,13 +1601,13 @@ get_family_dp_ptr(int family) /* * Make datapath use fib instance @fd */ -static enum flm_op_result -attach_datapath(struct fib_data *fd) +bool +fib_set_datapath_ptr(struct fib_data *fd, struct fib_dp *dp) { struct fib_dp **pdp; pdp = get_family_dp_ptr(fd->fd_family); - return (replace_rtables_family(pdp, fd)); + return (replace_rtables_family(pdp, fd, dp)); } /* @@ -1635,8 +1635,7 @@ grow_rtables_family(struct fib_dp **pdp, uint32_t new_num_tables) FIB_MOD_UNLOCK(); if (old_fdh != NULL) - epoch_call(net_epoch_preempt, destroy_fdh_epoch, - &old_fdh->fdh_epoch_ctx); + fib_epoch_call(destroy_fdh_epoch, &old_fdh->fdh_epoch_ctx); } /* @@ -1667,6 +1666,26 @@ fib_get_rtable_info(struct rib_head *rh, struct rib_rtable_info *rinfo) #endif } +/* + * Updates pointer to the algo data for the @fd. + */ +void +fib_set_algo_ptr(struct fib_data *fd, void *algo_data) +{ + RIB_WLOCK_ASSERT(fd->fd_rh); + + fd->fd_algo_data = algo_data; +} + +/* + * Calls @callback with @ctx after the end of a current epoch. + */ +void +fib_epoch_call(epoch_callback_t callback, epoch_context_t ctx) +{ + epoch_call(net_epoch_preempt, callback, ctx); +} + /* * Accessor to get rib instance @fd is attached to. */ @@ -1765,7 +1784,7 @@ fib_schedule_release_nhop(struct fib_data *fd, struct nhop_object *nh) nrd = malloc(sizeof(struct nhop_release_data), M_TEMP, M_NOWAIT | M_ZERO); if (nrd != NULL) { nrd->nh = nh; - epoch_call(net_epoch_preempt, release_nhop_epoch, &nrd->ctx); + fib_epoch_call(release_nhop_epoch, &nrd->ctx); } else { /* * Unable to allocate memory. Leak nexthop to maintain guarantee diff --git a/sys/net/route/fib_algo.h b/sys/net/route/fib_algo.h index d40e245f857d..23099ff7c132 100644 --- a/sys/net/route/fib_algo.h +++ b/sys/net/route/fib_algo.h @@ -128,5 +128,7 @@ uint32_t fib_get_nhop_idx(struct fib_data *fd, struct nhop_object *nh); struct nhop_object **fib_get_nhop_array(struct fib_data *fd); void fib_get_rtable_info(struct rib_head *rh, struct rib_rtable_info *rinfo); struct rib_head *fib_get_rh(struct fib_data *fd); - +bool fib_set_datapath_ptr(struct fib_data *fd, struct fib_dp *dp); +void fib_set_algo_ptr(struct fib_data *fd, void *algo_data); +void fib_epoch_call(epoch_callback_t callback, epoch_context_t ctx); From owner-dev-commits-src-main@freebsd.org Sun Apr 18 15:13:09 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C96845EBF7F; Sun, 18 Apr 2021 15:13:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNYNj57lVz3lv2; Sun, 18 Apr 2021 15:13:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A30B25EEB; Sun, 18 Apr 2021 15:13:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IFD9f6061088; Sun, 18 Apr 2021 15:13:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IFD9tW061087; Sun, 18 Apr 2021 15:13:09 GMT (envelope-from git) Date: Sun, 18 Apr 2021 15:13:09 GMT Message-Id: <202104181513.13IFD9tW061087@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 0abb6ff59084 - main - fib algo: do not reallocate datapath index for datapath ptr update. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0abb6ff590842114c74e5d52e1af65605bd9d960 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 15:13:09 -0000 The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=0abb6ff590842114c74e5d52e1af65605bd9d960 commit 0abb6ff590842114c74e5d52e1af65605bd9d960 Author: Alexander V. Chernikov AuthorDate: 2021-04-18 15:03:58 +0000 Commit: Alexander V. Chernikov CommitDate: 2021-04-18 15:12:13 +0000 fib algo: do not reallocate datapath index for datapath ptr update. Fib algo uses a per-family array indexed by the fibnum to store lookup function pointers and per-fib data. Each algorithm rebuild currently requires re-allocating this array to support atomic change of two pointers. As in reality most of the changes actually involve changing only data pointer, add a shortcut performing in-flight pointer update. MFC after: 2 weeks --- sys/net/route/fib_algo.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sys/net/route/fib_algo.c b/sys/net/route/fib_algo.c index b0a6c38ff560..30e715e1e1ef 100644 --- a/sys/net/route/fib_algo.c +++ b/sys/net/route/fib_algo.c @@ -1561,6 +1561,17 @@ replace_rtables_family(struct fib_dp **pdp, struct fib_data *fd, struct fib_dp * FIB_MOD_LOCK(); old_fdh = get_fib_dp_header(*pdp); + if (old_fdh->fdh_idx[fd->fd_fibnum].f == dp->f) { + /* + * Function is the same, data pointer needs update. + * Perform in-line replace without reallocation. + */ + old_fdh->fdh_idx[fd->fd_fibnum].arg = dp->arg; + FD_PRINTF(LOG_DEBUG, fd, "FDH %p inline update", old_fdh); + FIB_MOD_UNLOCK(); + return (true); + } + new_fdh = alloc_fib_dp_array(old_fdh->fdh_num_tables, false); FD_PRINTF(LOG_DEBUG, fd, "OLD FDH: %p NEW FDH: %p", old_fdh, new_fdh); if (new_fdh == NULL) { From owner-dev-commits-src-main@freebsd.org Sun Apr 18 16:02:38 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 134155EDB8A; Sun, 18 Apr 2021 16:02:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNZTp04K1z3nqd; Sun, 18 Apr 2021 16:02:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E94986A5B; Sun, 18 Apr 2021 16:02:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IG2bg4027217; Sun, 18 Apr 2021 16:02:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IG2bFW027215; Sun, 18 Apr 2021 16:02:37 GMT (envelope-from git) Date: Sun, 18 Apr 2021 16:02:37 GMT Message-Id: <202104181602.13IG2bFW027215@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?B?RmVybmFuZG8gQXBlc3RlZ3XDrWE=?= Subject: git: 8b1a5062e054 - main - jail.conf(5): emphasize where to find jail parameters MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fernape X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8b1a5062e05431b1a122753f0a2fac310dad70b9 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 16:02:38 -0000 The branch main has been updated by fernape (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=8b1a5062e05431b1a122753f0a2fac310dad70b9 commit 8b1a5062e05431b1a122753f0a2fac310dad70b9 Author: Fernando Apesteguía AuthorDate: 2021-04-18 15:53:42 +0000 Commit: Fernando Apesteguía CommitDate: 2021-04-18 15:58:16 +0000 jail.conf(5): emphasize where to find jail parameters Some people expect jail.conf(5) to have a list of jail parameters. jail(8) contains a comprehensive list of all parameters to be used during jail invocation or in jail.conf. Highlighting where to look for jail parameters seems a reasonable solution. PR: 244569 Reported by: joneum@ Approved by: 0mp (manpages, mentor) Reviewed by: debdrup Differential Revision: https://reviews.freebsd.org/D28701 --- usr.sbin/jail/jail.conf.5 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/usr.sbin/jail/jail.conf.5 b/usr.sbin/jail/jail.conf.5 index fa9b45c64583..ce414b96463e 100644 --- a/usr.sbin/jail/jail.conf.5 +++ b/usr.sbin/jail/jail.conf.5 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 6, 2019 +.Dd April 18, 2021 .Dt JAIL.CONF 5 .Os .Sh NAME @@ -59,10 +59,11 @@ and is also passed to the kernel when creating the jail. .Ss Parameters A jail is defined by a set of named parameters, specified inside the jail definition. -See +.Em See .Xr jail 8 -for a list of jail parameters passed to the kernel, -as well as internal parameters used when creating and removing jails. +.Em for a list of jail parameters +passed to the kernel, as well as internal parameters used when creating and +removing jails. .Pp A typical parameter has a name and a value. Some parameters are boolean and may be specified with values of From owner-dev-commits-src-main@freebsd.org Sun Apr 18 17:08:45 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 71CE85EECF3; Sun, 18 Apr 2021 17:08:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNby52nLwz3rN6; Sun, 18 Apr 2021 17:08:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5279B7918; Sun, 18 Apr 2021 17:08:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IH8jSb008421; Sun, 18 Apr 2021 17:08:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IH8juU008420; Sun, 18 Apr 2021 17:08:45 GMT (envelope-from git) Date: Sun, 18 Apr 2021 17:08:45 GMT Message-Id: <202104181708.13IH8juU008420@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Justin Hibbits Subject: git: 6525c2d4de8f - main - mips/octeon SDK: Fix __cvmx_cmd_queue_lock asm for clang 11 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6525c2d4de8f6ddc964f2f5ba9bd41d70bf98660 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 17:08:45 -0000 The branch main has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=6525c2d4de8f6ddc964f2f5ba9bd41d70bf98660 commit 6525c2d4de8f6ddc964f2f5ba9bd41d70bf98660 Author: Justin Hibbits AuthorDate: 2021-04-18 16:59:04 +0000 Commit: Justin Hibbits CommitDate: 2021-04-18 17:05:55 +0000 mips/octeon SDK: Fix __cvmx_cmd_queue_lock asm for clang 11 The 'ticket' and 'my_ticket' arguments are both read and written within the same asm block. Clang is stricter with the constraints than gcc4 was, so accepts the '=r' at face value and will happily overwrite registers that "should" be preserved. Mark these operands to not clobber other operands, so they get their own registers. This fixes a panic on bringing up the octe interfaces. --- sys/contrib/octeon-sdk/cvmx-cmd-queue.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/contrib/octeon-sdk/cvmx-cmd-queue.h b/sys/contrib/octeon-sdk/cvmx-cmd-queue.h index 5a7a543aae26..a97016f29b78 100644 --- a/sys/contrib/octeon-sdk/cvmx-cmd-queue.h +++ b/sys/contrib/octeon-sdk/cvmx-cmd-queue.h @@ -282,8 +282,8 @@ static inline void __cvmx_cmd_queue_lock(cvmx_cmd_queue_id_t queue_id, __cvmx_cm ".set pop\n" : [ticket_ptr] "=m" (__cvmx_cmd_queue_state_ptr->ticket[__cvmx_cmd_queue_get_index(queue_id)]), [now_serving] "=m" (qptr->now_serving), - [ticket] "=r" (tmp), - [my_ticket] "=r" (my_ticket) + [ticket] "=&r" (tmp), + [my_ticket] "=&r" (my_ticket) ); } From owner-dev-commits-src-main@freebsd.org Sun Apr 18 17:24:51 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 361E25EF9BC; Sun, 18 Apr 2021 17:24:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNcJg113Tz3s30; Sun, 18 Apr 2021 17:24:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 158007B39; Sun, 18 Apr 2021 17:24:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IHOoBY034090; Sun, 18 Apr 2021 17:24:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IHOo6b034089; Sun, 18 Apr 2021 17:24:50 GMT (envelope-from git) Date: Sun, 18 Apr 2021 17:24:50 GMT Message-Id: <202104181724.13IHOo6b034089@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: f1f987066837 - main - Minor style cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f1f9870668374f4c4605b6c6ed343408f9d48084 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 17:24:51 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=f1f9870668374f4c4605b6c6ed343408f9d48084 commit f1f9870668374f4c4605b6c6ed343408f9d48084 Author: Warner Losh AuthorDate: 2021-04-18 17:10:59 +0000 Commit: Warner Losh CommitDate: 2021-04-18 17:14:17 +0000 Minor style cleanup We prefer 'while (0)' to 'while(0)' according to grep and stlye(9)'s space after keyword rule. Remove a few stragglers of the latter. Many of these usages were inconsistent within the file. MFC After: 3 days Sponsored by: Netflix --- sys/kern/kern_event.c | 4 ++-- sys/kern/kern_linker.c | 2 +- sys/kern/kern_sx.c | 2 +- sys/kern/sys_process.c | 2 +- sys/kern/tty_outq.c | 2 +- sys/sys/event.h | 7 ++++--- sys/sys/eventhandler.h | 4 ++-- sys/sys/ktr.h | 2 +- sys/sys/pcpu.h | 2 +- sys/sys/qmath.h | 6 +++--- sys/sys/signalvar.h | 4 ++-- sys/sys/stack.h | 2 +- 12 files changed, 20 insertions(+), 19 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 45d505fca757..33a6cdcda486 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -222,7 +222,7 @@ SYSCTL_UINT(_kern, OID_AUTO, kq_calloutmax, CTLFLAG_RW, knote_enqueue((kn)); \ if (!(islock)) \ KQ_UNLOCK((kn)->kn_kq); \ -} while(0) +} while (0) #define KQ_LOCK(kq) do { \ mtx_lock(&(kq)->kq_lock); \ } while (0) @@ -312,7 +312,7 @@ kn_leave_flux(struct knote *kn) knl->kl_assert_lock((knl)->kl_lockarg, LA_UNLOCKED); \ } while (0) #else /* !INVARIANTS */ -#define KNL_ASSERT_LOCKED(knl) do {} while(0) +#define KNL_ASSERT_LOCKED(knl) do {} while (0) #define KNL_ASSERT_UNLOCKED(knl) do {} while (0) #endif /* INVARIANTS */ diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c index e54546eec7b4..d30db0fb2dba 100644 --- a/sys/kern/kern_linker.c +++ b/sys/kern/kern_linker.c @@ -131,7 +131,7 @@ retry: \ } \ } \ (a) = next_file_id; \ -} while(0) +} while (0) /* XXX wrong name; we're looking at version provision tags here, not modules */ typedef TAILQ_HEAD(, modlist) modlisthead_t; diff --git a/sys/kern/kern_sx.c b/sys/kern/kern_sx.c index 0d914375ec87..3296bf50a290 100644 --- a/sys/kern/kern_sx.c +++ b/sys/kern/kern_sx.c @@ -558,7 +558,7 @@ sx_drop_critical(uintptr_t x, bool *in_critical, int *extra_work) } } #else -#define sx_drop_critical(x, in_critical, extra_work) do { } while(0) +#define sx_drop_critical(x, in_critical, extra_work) do { } while (0) #endif /* diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index c4dfc2def72a..27a690e65638 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -104,7 +104,7 @@ __FBSDID("$FreeBSD$"); else \ error = (action); \ return (error); \ -} while(0) +} while (0) int proc_read_regs(struct thread *td, struct reg *regs) diff --git a/sys/kern/tty_outq.c b/sys/kern/tty_outq.c index 70d6be3062b2..580a3656aca1 100644 --- a/sys/kern/tty_outq.c +++ b/sys/kern/tty_outq.c @@ -81,7 +81,7 @@ static uma_zone_t ttyoutq_zone; uma_zfree(ttyoutq_zone, tob); \ else \ TTYOUTQ_INSERT_TAIL(to, tob); \ -} while(0) +} while (0) void ttyoutq_flush(struct ttyoutq *to) diff --git a/sys/sys/event.h b/sys/sys/event.h index b3106e6fa874..cf7db43475fd 100644 --- a/sys/sys/event.h +++ b/sys/sys/event.h @@ -60,9 +60,10 @@ .udata = (f), \ .ext = {0}, \ }; \ -} while(0) +} while (0) #else /* Pre-C99 or not STDC (e.g., C++) */ -/* The definition of the local variable kevp could possibly conflict +/* + * The definition of the local variable kevp could possibly conflict * with a user-defined value passed in parameters a-f. */ #define EV_SET(kevp_, a, b, c, d, e, f) do { \ @@ -77,7 +78,7 @@ (kevp)->ext[1] = 0; \ (kevp)->ext[2] = 0; \ (kevp)->ext[3] = 0; \ -} while(0) +} while (0) #endif struct kevent { diff --git a/sys/sys/eventhandler.h b/sys/sys/eventhandler.h index 9ce68353bd9e..864d6c7a3b8e 100644 --- a/sys/sys/eventhandler.h +++ b/sys/sys/eventhandler.h @@ -147,7 +147,7 @@ do { \ \ if ((_el = eventhandler_find_list(#name)) != NULL) \ eventhandler_deregister(_el, tag); \ -} while(0) +} while (0) #define EVENTHANDLER_DEREGISTER_NOWAIT(name, tag) \ do { \ @@ -155,7 +155,7 @@ do { \ \ if ((_el = eventhandler_find_list(#name)) != NULL) \ eventhandler_deregister_nowait(_el, tag); \ -} while(0) +} while (0) eventhandler_tag eventhandler_register(struct eventhandler_list *list, const char *name, void *func, void *arg, int priority); diff --git a/sys/sys/ktr.h b/sys/sys/ktr.h index d9bd2bf6e089..dc06be9fa9cb 100644 --- a/sys/sys/ktr.h +++ b/sys/sys/ktr.h @@ -82,7 +82,7 @@ void ktr_tracepoint(uint64_t mask, const char *file, int line, ktr_tracepoint((m), __FILE__, __LINE__, format, \ (u_long)(p1), (u_long)(p2), (u_long)(p3), \ (u_long)(p4), (u_long)(p5), (u_long)(p6)); \ - } while(0) + } while (0) #define CTR0(m, format) CTR6(m, format, 0, 0, 0, 0, 0, 0) #define CTR1(m, format, p1) CTR6(m, format, p1, 0, 0, 0, 0, 0) #define CTR2(m, format, p1, p2) CTR6(m, format, p1, p2, 0, 0, 0, 0) diff --git a/sys/sys/pcpu.h b/sys/sys/pcpu.h index cfc8a215707c..14bef5cf690e 100644 --- a/sys/sys/pcpu.h +++ b/sys/sys/pcpu.h @@ -164,7 +164,7 @@ extern uintptr_t dpcpu_off[]; CPU_FOREACH(_i) { \ bzero(DPCPU_ID_PTR(_i, n), sizeof(*DPCPU_PTR(n))); \ } \ -} while(0) +} while (0) #endif /* _KERNEL */ diff --git a/sys/sys/qmath.h b/sys/sys/qmath.h index d4f015c1efc3..1b718f7edebf 100644 --- a/sys/sys/qmath.h +++ b/sys/sys/qmath.h @@ -501,7 +501,7 @@ typedef u64q_t umaxq_t; #define Q_QADDSUBQ(a, b, eop) \ ({ \ int _aserr; \ - if ((_aserr = Q_NORMPREC(a, b))) while(0); /* NOP */ \ + if ((_aserr = Q_NORMPREC(a, b))) while (0); /* NOP */ \ else if ((eop) == '+') { \ if (Q_IFMAXVAL(*(a)) - Q_GIFABSVAL(b) < Q_GIFVAL(*(a))) \ _aserr = EOVERFLOW; /* [+/-a + +b] > max(a) */ \ @@ -523,7 +523,7 @@ typedef u64q_t umaxq_t; #define Q_QDIVQ(a, b) \ ({ \ int _err; \ - if ((_err = Q_NORMPREC(a, b))) while(0); /* NOP */ \ + if ((_err = Q_NORMPREC(a, b))) while (0); /* NOP */ \ else if (Q_GIFABSVAL(b) == 0 || (!Q_SIGNED(*(a)) && Q_LTZ(b))) \ _err = EINVAL; /* Divide by zero or cannot represent. */\ /* XXXLAS: Handle overflow. */ \ @@ -539,7 +539,7 @@ typedef u64q_t umaxq_t; #define Q_QMULQ(a, b) \ ({ \ int _mulerr; \ - if ((_mulerr = Q_NORMPREC(a, b))) while(0); /* NOP */ \ + if ((_mulerr = Q_NORMPREC(a, b))) while (0); /* NOP */ \ else if (!Q_SIGNED(*(a)) && Q_LTZ(b)) \ _mulerr = EINVAL; \ else if (Q_GIFABSVAL(b) != 0 && \ diff --git a/sys/sys/signalvar.h b/sys/sys/signalvar.h index df761a1e1a5d..a7fe174b40bf 100644 --- a/sys/sys/signalvar.h +++ b/sys/sys/signalvar.h @@ -301,14 +301,14 @@ sigsetmasked(sigset_t *set, sigset_t *mask) #define ksiginfo_init(ksi) \ do { \ bzero(ksi, sizeof(ksiginfo_t)); \ -} while(0) +} while (0) #define ksiginfo_init_trap(ksi) \ do { \ ksiginfo_t *kp = ksi; \ bzero(kp, sizeof(ksiginfo_t)); \ kp->ksi_flags |= KSI_TRAP; \ -} while(0) +} while (0) static __inline void ksiginfo_copy(ksiginfo_t *src, ksiginfo_t *dst) diff --git a/sys/sys/stack.h b/sys/sys/stack.h index acaa2f36bc00..15ee178d63a6 100644 --- a/sys/sys/stack.h +++ b/sys/sys/stack.h @@ -65,7 +65,7 @@ void stack_ktr(u_int, const char *, int, const struct stack *, #define CTRSTACK(m, st, depth) do { \ if (KTR_COMPILE & (m)) \ stack_ktr((m), __FILE__, __LINE__, st, depth); \ - } while(0) + } while (0) #else #define CTRSTACK(m, st, depth) #endif From owner-dev-commits-src-main@freebsd.org Sun Apr 18 17:24:52 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4F9A25EF775; Sun, 18 Apr 2021 17:24:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNcJh1nfXz3s32; Sun, 18 Apr 2021 17:24:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2EB3F7D26; Sun, 18 Apr 2021 17:24:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IHOqIH034111; Sun, 18 Apr 2021 17:24:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IHOqRB034110; Sun, 18 Apr 2021 17:24:52 GMT (envelope-from git) Date: Sun, 18 Apr 2021 17:24:52 GMT Message-Id: <202104181724.13IHOqRB034110@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 571a1a64b199 - main - Minor style tidy: if( -> if ( MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 571a1a64b1992f917f6af60ca80e5a465986305e Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 17:24:52 -0000 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=571a1a64b1992f917f6af60ca80e5a465986305e commit 571a1a64b1992f917f6af60ca80e5a465986305e Author: Warner Losh AuthorDate: 2021-04-18 17:19:15 +0000 Commit: Warner Losh CommitDate: 2021-04-18 17:19:15 +0000 Minor style tidy: if( -> if ( Fix a few 'if(' to be 'if (' in a few places, per style(9) and overwhelming usage in the rest of the kernel / tree. MFC After: 3 days Sponsored by: Netflix --- sys/kern/kern_physio.c | 2 +- sys/kern/kern_sysctl.c | 2 +- sys/kern/vfs_cluster.c | 2 +- sys/kern/vfs_mountroot.c | 3 +-- sys/sys/buf_ring.h | 2 +- sys/sys/efi.h | 2 +- sys/sys/tree.h | 2 +- 7 files changed, 7 insertions(+), 8 deletions(-) diff --git a/sys/kern/kern_physio.c b/sys/kern/kern_physio.c index 3185e77aba46..2d384b6b9a60 100644 --- a/sys/kern/kern_physio.c +++ b/sys/kern/kern_physio.c @@ -61,7 +61,7 @@ physio(struct cdev *dev, struct uio *uio, int ioflag) return (ENXIO); /* XXX: sanity check */ - if(dev->si_iosize_max < PAGE_SIZE) { + if (dev->si_iosize_max < PAGE_SIZE) { printf("WARNING: %s si_iosize_max=%d, using DFLTPHYS.\n", devtoname(dev), dev->si_iosize_max); dev->si_iosize_max = DFLTPHYS; diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c index ffb6ac196ba3..011e3f44a124 100644 --- a/sys/kern/kern_sysctl.c +++ b/sys/kern/kern_sysctl.c @@ -679,7 +679,7 @@ sysctl_ctx_entry_find(struct sysctl_ctx_list *clist, struct sysctl_oid *oidp) if (clist == NULL || oidp == NULL) return(NULL); TAILQ_FOREACH(e, clist, link) { - if(e->entry == oidp) + if (e->entry == oidp) return(e); } return (e); diff --git a/sys/kern/vfs_cluster.c b/sys/kern/vfs_cluster.c index 7e328454c877..7ca67c390b91 100644 --- a/sys/kern/vfs_cluster.c +++ b/sys/kern/vfs_cluster.c @@ -371,7 +371,7 @@ cluster_rbuild(struct vnode *vp, u_quad_t filesize, daddr_t lbn, tbp->b_iocmd = BIO_READ; } tbp->b_blkno = blkno; - if( (tbp->b_flags & B_MALLOC) || + if ( (tbp->b_flags & B_MALLOC) || ((tbp->b_flags & B_VMIO) == 0) || (run <= 1) ) return tbp; diff --git a/sys/kern/vfs_mountroot.c b/sys/kern/vfs_mountroot.c index 3b968fd19bbd..65d52cc68bcd 100644 --- a/sys/kern/vfs_mountroot.c +++ b/sys/kern/vfs_mountroot.c @@ -1138,8 +1138,7 @@ parse_mountroot_options(struct mntarg *ma, const char *options) *val = '\0'; ++val; } - if( strcmp(name, "rw") == 0 || - strcmp(name, "noro") == 0) { + if (strcmp(name, "rw") == 0 || strcmp(name, "noro") == 0) { /* * The first time we mount the root file system, * we need to mount 'ro', so We need to ignore diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 48c7101aad97..9622503e1f96 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -73,7 +73,7 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) */ for (i = br->br_cons_head; i != br->br_prod_head; i = ((i + 1) & br->br_cons_mask)) - if(br->br_ring[i] == buf) + if (br->br_ring[i] == buf) panic("buf=%p already enqueue at %d prod=%d cons=%d", buf, i, br->br_prod_tail, br->br_cons_tail); #endif diff --git a/sys/sys/efi.h b/sys/sys/efi.h index 5875e87b3595..0c0b52afc81d 100644 --- a/sys/sys/efi.h +++ b/sys/sys/efi.h @@ -203,7 +203,7 @@ extern const struct efi_ops *active_efi_ops; static inline int efi_rt_ok(void) { - if(active_efi_ops->rt_ok == NULL) + if (active_efi_ops->rt_ok == NULL) return (ENXIO); return (active_efi_ops->rt_ok()); } diff --git a/sys/sys/tree.h b/sys/sys/tree.h index eb5f244d8a12..bc01e4de910a 100644 --- a/sys/sys/tree.h +++ b/sys/sys/tree.h @@ -179,7 +179,7 @@ name##_SPLAY_INSERT(struct name *head, struct type *elm) \ int __comp; \ name##_SPLAY(head, elm); \ __comp = (cmp)(elm, (head)->sph_root); \ - if(__comp < 0) { \ + if (__comp < 0) { \ SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field);\ SPLAY_RIGHT(elm, field) = (head)->sph_root; \ SPLAY_LEFT((head)->sph_root, field) = NULL; \ From owner-dev-commits-src-main@freebsd.org Sun Apr 18 18:22:34 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E2DFB5F09CB; Sun, 18 Apr 2021 18:22:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNdbG67Wcz3vBr; Sun, 18 Apr 2021 18:22:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C570210BAA; Sun, 18 Apr 2021 18:22:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IIMY1k013341; Sun, 18 Apr 2021 18:22:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IIMYZH013340; Sun, 18 Apr 2021 18:22:34 GMT (envelope-from git) Date: Sun, 18 Apr 2021 18:22:34 GMT Message-Id: <202104181822.13IIMYZH013340@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: bfe40b692d08 - main - bhyve.8: Make synopsis more readable MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bfe40b692d087cdd5fdeea69e18496ab2a7f67ac Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 18:22:34 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=bfe40b692d087cdd5fdeea69e18496ab2a7f67ac commit bfe40b692d087cdd5fdeea69e18496ab2a7f67ac Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 17:54:45 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 18:22:13 +0000 bhyve.8: Make synopsis more readable There is no need to squeeze all the possible options into one synopsis entry. Let "-l help" and "-s help" be listed separately. While here, keep -s and its arguments on the same line. MFC after: 2 weeks --- usr.sbin/bhyve/bhyve.8 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index 04e22302d9d7..367a3306786e 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 18, 2021 +.Dd April 18, 2021 .Dt BHYVE 8 .Os .Sh NAME @@ -49,7 +49,7 @@ .Op Fl k Ar file .Oo Fl l .Sm off -.Cm help | Ar lpcdev Op Cm \&, Ar conf +.Ar lpcdev Op Cm \&, Ar conf .Sm on .Oc .Oo Fl m @@ -63,13 +63,17 @@ .Op Fl o Ar var Ns Cm = Ns Ar value .Op Fl p Ar vcpu Ns Cm \&: Ns Ar hostcpu .Op Fl r Ar file -.Oo Fl s .Sm off -.Cm help | Ar slot Cm \&, Ar emulation Op Cm \&, Ar conf +.Oo Fl s\~ +.Ar slot Cm \&, Ar emulation Op Cm \&, Ar conf .Sm on .Oc .Op Fl U Ar uuid .Ar vmname +.Nm +.Fl l Cm help +.Nm +.Fl s Cm help .Sh DESCRIPTION .Nm is a hypervisor that runs guest operating systems inside a From owner-dev-commits-src-main@freebsd.org Sun Apr 18 18:22:36 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2A95F5F0769; Sun, 18 Apr 2021 18:22:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNdbJ0f1gz3vSx; Sun, 18 Apr 2021 18:22:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E87E510E00; Sun, 18 Apr 2021 18:22:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IIMZHx013369; Sun, 18 Apr 2021 18:22:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IIMZ7P013368; Sun, 18 Apr 2021 18:22:35 GMT (envelope-from git) Date: Sun, 18 Apr 2021 18:22:35 GMT Message-Id: <202104181822.13IIMZ7P013368@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 03c3e5e40d64 - main - bhyve: Fix synopsis in the usage message MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 03c3e5e40d6497afa33df1d0b43857157c086729 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 18:22:36 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=03c3e5e40d6497afa33df1d0b43857157c086729 commit 03c3e5e40d6497afa33df1d0b43857157c086729 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 18:04:12 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 18:22:13 +0000 bhyve: Fix synopsis in the usage message In particular: - Sort short options to align with style(9) - Add two missing flags: -G and -r - Drop unnecessary angle brackets for consistency - Rename the "vm" argument to vmname for consistency with the manual page MFC after: 2 weeks --- usr.sbin/bhyve/bhyverun.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c index a3e6ef3c4724..8c87a0e7328e 100644 --- a/usr.sbin/bhyve/bhyverun.c +++ b/usr.sbin/bhyve/bhyverun.c @@ -222,10 +222,10 @@ usage(int code) { fprintf(stderr, - "Usage: %s [-aehuwxACDHPSWY]\n" + "Usage: %s [-AaCDeHhPSuWwxY]\n" " %*s [-c [[cpus=]numcpus][,sockets=n][,cores=n][,threads=n]]\n" - " %*s [-k ] [-l ] [-m mem] [-o =]\n" - " %*s [-p vcpu:hostcpu] [-s ] [-U uuid] []\n" + " %*s [-G port] [-k file] [-l lpc] [-m mem] [-o var=value]\n" + " %*s [-p vcpu:hostcpu] [-r file] [-s pci] [-U uuid] vmname\n" " -a: local apic is in xAPIC mode (deprecated)\n" " -A: create ACPI tables\n" " -c: number of cpus and/or topology specification\n" From owner-dev-commits-src-main@freebsd.org Sun Apr 18 18:22:37 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 81FD85F0DCC; Sun, 18 Apr 2021 18:22:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNdbK1wGXz3vMl; Sun, 18 Apr 2021 18:22:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 07B5110778; Sun, 18 Apr 2021 18:22:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IIMapR013390; Sun, 18 Apr 2021 18:22:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IIMan6013389; Sun, 18 Apr 2021 18:22:36 GMT (envelope-from git) Date: Sun, 18 Apr 2021 18:22:36 GMT Message-Id: <202104181822.13IIMan6013389@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: b6a572d03f65 - main - bhyve: Improve the option description in the usage message MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b6a572d03f654236b929b91d376ad1a6dfaa2e9a Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 18:22:37 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=b6a572d03f654236b929b91d376ad1a6dfaa2e9a commit b6a572d03f654236b929b91d376ad1a6dfaa2e9a Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 18:13:54 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 18:22:13 +0000 bhyve: Improve the option description in the usage message - Sort options as suggested by style(9) - Capitalize some words like CPU and HLT - Add a missing description for the -G flag MFC after: 2 weeks --- usr.sbin/bhyve/bhyverun.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c index 8c87a0e7328e..d14219bbef65 100644 --- a/usr.sbin/bhyve/bhyverun.c +++ b/usr.sbin/bhyve/bhyverun.c @@ -226,30 +226,31 @@ usage(int code) " %*s [-c [[cpus=]numcpus][,sockets=n][,cores=n][,threads=n]]\n" " %*s [-G port] [-k file] [-l lpc] [-m mem] [-o var=value]\n" " %*s [-p vcpu:hostcpu] [-r file] [-s pci] [-U uuid] vmname\n" - " -a: local apic is in xAPIC mode (deprecated)\n" " -A: create ACPI tables\n" - " -c: number of cpus and/or topology specification\n" + " -a: local apic is in xAPIC mode (deprecated)\n" " -C: include guest memory in core file\n" + " -c: number of CPUs and/or topology specification\n" " -D: destroy on power-off\n" " -e: exit on unhandled I/O access\n" + " -G: start a debug server\n" + " -H: vmexit from the guest on HLT\n" " -h: help\n" - " -H: vmexit from the guest on hlt\n" " -k: key=value flat config file\n" " -l: LPC device configuration\n" " -m: memory size in MB\n" " -o: set config 'var' to 'value'\n" - " -p: pin 'vcpu' to 'hostcpu'\n" " -P: vmexit from the guest on pause\n" + " -p: pin 'vcpu' to 'hostcpu'\n" #ifdef BHYVE_SNAPSHOT " -r: path to checkpoint file\n" #endif - " -s: PCI slot config\n" " -S: guest memory cannot be swapped\n" + " -s: PCI slot config\n" + " -U: UUID\n" " -u: RTC keeps UTC time\n" - " -U: uuid\n" - " -w: ignore unimplemented MSRs\n" " -W: force virtio to use single-vector MSI\n" - " -x: local apic is in x2APIC mode\n" + " -w: ignore unimplemented MSRs\n" + " -x: local APIC is in x2APIC mode\n" " -Y: disable MPtable generation\n", progname, (int)strlen(progname), "", (int)strlen(progname), "", (int)strlen(progname), ""); From owner-dev-commits-src-main@freebsd.org Sun Apr 18 20:15:12 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 39DD85F3B58; Sun, 18 Apr 2021 20:15:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNh5D1BlNz4TxC; Sun, 18 Apr 2021 20:15:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1BEE3124B0; Sun, 18 Apr 2021 20:15:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IKFC2B059619; Sun, 18 Apr 2021 20:15:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IKFCJf059618; Sun, 18 Apr 2021 20:15:12 GMT (envelope-from git) Date: Sun, 18 Apr 2021 20:15:12 GMT Message-Id: <202104182015.13IKFCJf059618@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: ccb1c87a6aa5 - main - bhyve.8: Sort the options in the OPTIONS section MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ccb1c87a6aa563a927a98a6f9175d95929535b21 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 20:15:12 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=ccb1c87a6aa563a927a98a6f9175d95929535b21 commit ccb1c87a6aa563a927a98a6f9175d95929535b21 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 18:26:04 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 20:09:24 +0000 bhyve.8: Sort the options in the OPTIONS section No content change intended. Just moving the option descriptions around to follow the order suggested by style(9). MFC after: 2 weeks --- usr.sbin/bhyve/bhyve.8 | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index 367a3306786e..d38a9487abef 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -95,15 +95,17 @@ runs until the guest operating system reboots or an unhandled hypervisor exit is detected. .Sh OPTIONS .Bl -tag -width 10n -.It Fl a -The guest's local APIC is configured in xAPIC mode. -The xAPIC mode is the default setting so this option is redundant. -It will be deprecated in a future version. .It Fl A Generate ACPI tables. Required for .Fx Ns /amd64 guests. +.It Fl a +The guest's local APIC is configured in xAPIC mode. +The xAPIC mode is the default setting so this option is redundant. +It will be deprecated in a future version. +.It Fl C +Include guest memory in core file. .It Fl c Op Ar setting ... Number of guest virtual CPUs and/or the CPU topology. @@ -128,8 +130,6 @@ and If a .Ar setting is specified more than once the last one has precedence. -.It Fl C -Include guest memory in core file. .It Fl D Destroy the VM on guest initiated power-off. .It Fl e @@ -150,11 +150,11 @@ begins with .Sq w , .Nm will pause execution at the first instruction waiting for a debugger to attach. -.It Fl h -Print help message and exit. .It Fl H Yield the virtual CPU thread when a HLT instruction is detected. If this option is not specified, virtual CPUs will use 100% of a host CPU. +.It Fl h +Print help message and exit. .It Fl k Ar file Set configuration variables from a simple, key-value config file. Each line of the config file is expected to consist of a config variable @@ -196,13 +196,13 @@ Set the configuration variable .Ar var to .Ar value . +.It Fl P +Force the guest virtual CPU to exit when a PAUSE instruction is detected. .It Fl p Ar vcpu:hostcpu Pin guest's virtual CPU .Em vcpu to .Em hostcpu . -.It Fl P -Force the guest virtual CPU to exit when a PAUSE instruction is detected. .It Fl r Ar file Resume a guest from a snapshot. The guest memory contents are restored from @@ -218,6 +218,8 @@ and .Op Fl l options. The count of vCPUs and memory configuration are read from the snapshot. +.It Fl S +Wire guest memory. .It Fl s Op Ar help|slot,emulation Ns Op , Ns Ar conf Configure a virtual PCI slot and function. .Pp @@ -591,22 +593,20 @@ Recording device, typically .Ar /dev/dsp0 . .El .El -.It Fl S -Wire guest memory. -.It Fl u -RTC keeps UTC time. .It Fl U Ar uuid Set the universally unique identifier .Pq UUID in the guest's System Management BIOS System Information structure. By default a UUID is generated from the host's hostname and .Ar vmname . -.It Fl w -Ignore accesses to unimplemented Model Specific Registers (MSRs). -This is intended for debug purposes. +.It Fl u +RTC keeps UTC time. .It Fl W Force virtio PCI device emulations to use MSI interrupts instead of MSI-X interrupts. +.It Fl w +Ignore accesses to unimplemented Model Specific Registers (MSRs). +This is intended for debug purposes. .It Fl x The guest's local APIC is configured in x2APIC mode. .It Fl Y From owner-dev-commits-src-main@freebsd.org Sun Apr 18 20:15:13 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 60DAB5F3E89; Sun, 18 Apr 2021 20:15:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNh5F279Sz4VP2; Sun, 18 Apr 2021 20:15:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 38A44124B1; Sun, 18 Apr 2021 20:15:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IKFD9C059647; Sun, 18 Apr 2021 20:15:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IKFDpV059646; Sun, 18 Apr 2021 20:15:13 GMT (envelope-from git) Date: Sun, 18 Apr 2021 20:15:13 GMT Message-Id: <202104182015.13IKFDpV059646@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 4c08b978b276 - main - bhyve.8: Improve the description and synopsis of -l MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4c08b978b276f8cfc25f72715e97898f629f7f89 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 20:15:13 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=4c08b978b276f8cfc25f72715e97898f629f7f89 commit 4c08b978b276f8cfc25f72715e97898f629f7f89 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 19:41:15 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 20:09:33 +0000 bhyve.8: Improve the description and synopsis of -l - Describe "-l help" separately for readability. - List all the supported comX devices explicitly - Use Cm instead of Ar for command modifiers (i.e., literal values a user can specify as an argument to the command). - Explain where to get more information about the possible values of the conf argument. MFC after: 2 weeks --- usr.sbin/bhyve/bhyve.8 | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index d38a9487abef..3105dbca016a 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -166,19 +166,24 @@ value. Blank lines and lines starting with .Sq # are ignored. -.It Fl l Op Ar help|lpcdev Ns Op , Ns Ar conf +.It Fl l Cm help +Print a list of supported LPC devices. +.It Fl l Ar lpcdev Ns Op Cm \&, Ns Ar conf Allow devices behind the LPC PCI-ISA bridge to be configured. The only supported devices are the TTY-class devices -.Ar com1 -through -.Ar com4 , +.Cm com1 , com2 , com3 , +and +.Cm com4 , the boot ROM device -.Ar bootrom , +.Cm bootrom , and the debug/test device -.Ar pc-testdev . +.Cm pc-testdev . .Pp -.Ar help -print a list of supported LPC devices. +The possible values for the +.Ar conf +argument are listed in the +.Fl s +flag description. .It Fl m Ar memsize Ns Op Ar K|k|M|m|G|g|T|t Guest physical memory size in bytes. This must be the same size that was given to From owner-dev-commits-src-main@freebsd.org Sun Apr 18 20:15:14 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A47995F3DD3; Sun, 18 Apr 2021 20:15:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNh5G3KgWz4V9X; Sun, 18 Apr 2021 20:15:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5B54B12515; Sun, 18 Apr 2021 20:15:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IKFEZf059668; Sun, 18 Apr 2021 20:15:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IKFEeN059667; Sun, 18 Apr 2021 20:15:14 GMT (envelope-from git) Date: Sun, 18 Apr 2021 20:15:14 GMT Message-Id: <202104182015.13IKFEeN059667@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 7e0cb3df6876 - main - bhyve.8: Improve the description of the -m flag MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7e0cb3df687695212ae20cc90d5f2f48bd42eba7 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 20:15:14 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=7e0cb3df687695212ae20cc90d5f2f48bd42eba7 commit 7e0cb3df687695212ae20cc90d5f2f48bd42eba7 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 19:56:13 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 20:09:34 +0000 bhyve.8: Improve the description of the -m flag - Stylize the synopsis with proper mdoc macros - Do some wordsmithing on the description for consistency. MFC after: 2 weeks --- usr.sbin/bhyve/bhyve.8 | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index 3105dbca016a..051ca05d85e5 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -184,18 +184,26 @@ The possible values for the argument are listed in the .Fl s flag description. -.It Fl m Ar memsize Ns Op Ar K|k|M|m|G|g|T|t -Guest physical memory size in bytes. +.It Xo +.Fl m Ar memsize Ns Oo +.Sm off +.Cm K | k | M | m | G | g | T | t +.Sm on +.Oc +.Xc +Set the guest physical memory size This must be the same size that was given to .Xr bhyveload 8 . .Pp -The size argument may be suffixed with one of K, M, G or T (either upper -or lower case) to indicate a multiple of kilobytes, megabytes, gigabytes, -or terabytes. +The size argument may be suffixed with one of +.Cm K , M , G +or +.Cm T +(either upper or lower case) +to indicate a multiple of kilobytes, megabytes, gigabytes, or terabytes. If no suffix is given, the value is assumed to be in megabytes. .Pp -.Ar memsize -defaults to 256M. +The default is 256M. .It Fl o Ar var Ns Cm = Ns Ar value Set the configuration variable .Ar var From owner-dev-commits-src-main@freebsd.org Sun Apr 18 20:15:15 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E32DC5F3A7F; Sun, 18 Apr 2021 20:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNh5H5TwBz4V7v; Sun, 18 Apr 2021 20:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 82CB611FE7; Sun, 18 Apr 2021 20:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IKFFT9059689; Sun, 18 Apr 2021 20:15:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IKFFZl059688; Sun, 18 Apr 2021 20:15:15 GMT (envelope-from git) Date: Sun, 18 Apr 2021 20:15:15 GMT Message-Id: <202104182015.13IKFFZl059688@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 90df54374f1c - main - bhyve.8: Fix the synopsis of -p MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 90df54374f1ce1b94c10c34c2a5b06be0353ebae Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 20:15:16 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=90df54374f1ce1b94c10c34c2a5b06be0353ebae commit 90df54374f1ce1b94c10c34c2a5b06be0353ebae Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 20:01:30 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 20:09:36 +0000 bhyve.8: Fix the synopsis of -p Use appropriate mdoc macros. MFC after: 2 weeks --- usr.sbin/bhyve/bhyve.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index 051ca05d85e5..eaef0548e209 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -211,7 +211,7 @@ to .Ar value . .It Fl P Force the guest virtual CPU to exit when a PAUSE instruction is detected. -.It Fl p Ar vcpu:hostcpu +.It Fl p Ar vcpu Ns Cm \& : Ns Ar hostcpu Pin guest's virtual CPU .Em vcpu to From owner-dev-commits-src-main@freebsd.org Sun Apr 18 20:15:17 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0EEBA5F3E25; Sun, 18 Apr 2021 20:15:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNh5J5RZZz4V86; Sun, 18 Apr 2021 20:15:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9BF571242D; Sun, 18 Apr 2021 20:15:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IKFG3s059710; Sun, 18 Apr 2021 20:15:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IKFGvT059709; Sun, 18 Apr 2021 20:15:16 GMT (envelope-from git) Date: Sun, 18 Apr 2021 20:15:16 GMT Message-Id: <202104182015.13IKFGvT059709@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: b24eea8c7a2f - main - bhyve.8: Clean up description of -r MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b24eea8c7a2ff2bf19b1bdbb2838d185e578581a Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 20:15:17 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=b24eea8c7a2ff2bf19b1bdbb2838d185e578581a commit b24eea8c7a2ff2bf19b1bdbb2838d185e578581a Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 20:03:40 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 20:09:37 +0000 bhyve.8: Clean up description of -r There is no need to wrap those flags in Op macros. MFC after: 2 weeks --- usr.sbin/bhyve/bhyve.8 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index eaef0548e209..7147e203640f 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -226,9 +226,9 @@ and the guest device and vCPU state are restored from the file Note that the current snapshot file format requires that the configuration of devices in the new VM match the VM from which the snapshot was taken by specifying the same -.Op Fl s +.Fl s and -.Op Fl l +.Fl l options. The count of vCPUs and memory configuration are read from the snapshot. .It Fl S From owner-dev-commits-src-main@freebsd.org Sun Apr 18 20:15:18 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5B9255F3C4A; Sun, 18 Apr 2021 20:15:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNh5K73QRz4VLn; Sun, 18 Apr 2021 20:15:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BF7A11225B; Sun, 18 Apr 2021 20:15:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13IKFHIh059731; Sun, 18 Apr 2021 20:15:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13IKFHK5059730; Sun, 18 Apr 2021 20:15:17 GMT (envelope-from git) Date: Sun, 18 Apr 2021 20:15:17 GMT Message-Id: <202104182015.13IKFHK5059730@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 3357e9482fe8 - main - bhyve.8: Fix indention in the signals table MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3357e9482fe8a0ee153ec62d4bd8cb96966bbf26 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 20:15:18 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=3357e9482fe8a0ee153ec62d4bd8cb96966bbf26 commit 3357e9482fe8a0ee153ec62d4bd8cb96966bbf26 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 20:06:12 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 20:09:39 +0000 bhyve.8: Fix indention in the signals table MFC after: 2 weeks --- usr.sbin/bhyve/bhyve.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index 7147e203640f..d3d44a5a6232 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -680,7 +680,7 @@ stepping over the breakpoint. .Nm deals with the following signals: .Pp -.Bl -tag -width indent -compact +.Bl -tag -width SIGTERM -compact .It SIGTERM Trigger ACPI poweroff for a VM .El From owner-dev-commits-src-main@freebsd.org Sun Apr 18 21:12:22 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EBBD65F64C6; Sun, 18 Apr 2021 21:12:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNjMB6P1tz4YNT; Sun, 18 Apr 2021 21:12:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CE3B2132A3; Sun, 18 Apr 2021 21:12:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13ILCMZP039802; Sun, 18 Apr 2021 21:12:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13ILCMoW039801; Sun, 18 Apr 2021 21:12:22 GMT (envelope-from git) Date: Sun, 18 Apr 2021 21:12:22 GMT Message-Id: <202104182112.13ILCMoW039801@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Richard Scheffenegger Subject: git: b87cf2bc841b - main - tcp: keep SACK scoreboard sorted when doing rescue retransmission MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rscheff X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b87cf2bc841b2a336b7f0c6cd89573610412a84f Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 21:12:23 -0000 The branch main has been updated by rscheff: URL: https://cgit.FreeBSD.org/src/commit/?id=b87cf2bc841b2a336b7f0c6cd89573610412a84f commit b87cf2bc841b2a336b7f0c6cd89573610412a84f Author: Richard Scheffenegger AuthorDate: 2021-04-18 20:14:14 +0000 Commit: Richard Scheffenegger CommitDate: 2021-04-18 21:11:10 +0000 tcp: keep SACK scoreboard sorted when doing rescue retransmission Reviewed By: tuexen, kbowling, #transport MFC after: 3 days Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D29825 --- sys/netinet/tcp_sack.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/sys/netinet/tcp_sack.c b/sys/netinet/tcp_sack.c index a28bb40a8332..fffba2e75045 100644 --- a/sys/netinet/tcp_sack.c +++ b/sys/netinet/tcp_sack.c @@ -497,7 +497,7 @@ static struct sackhole * tcp_sackhole_insert(struct tcpcb *tp, tcp_seq start, tcp_seq end, struct sackhole *after) { - struct sackhole *hole; + struct sackhole *hole, *tail; /* Allocate a new SACK hole. */ hole = tcp_sackhole_alloc(tp, start, end); @@ -508,7 +508,15 @@ tcp_sackhole_insert(struct tcpcb *tp, tcp_seq start, tcp_seq end, if (after != NULL) TAILQ_INSERT_AFTER(&tp->snd_holes, after, hole, scblink); else - TAILQ_INSERT_TAIL(&tp->snd_holes, hole, scblink); + /* + * With Rescue Retransmission, new holes may need to + * be inserted just before the tail. + */ + if (((tail = TAILQ_LAST_FAST(&tp->snd_holes, sackhole, + scblink)) != NULL) && SEQ_LEQ(end, tail->start)) + TAILQ_INSERT_BEFORE(tail, hole, scblink); + else + TAILQ_INSERT_TAIL(&tp->snd_holes, hole, scblink); /* Update SACK hint. */ if (tp->sackhint.nexthole == NULL) From owner-dev-commits-src-main@freebsd.org Sun Apr 18 21:33:36 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B99D05F6C28; Sun, 18 Apr 2021 21:33:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNjqh4bnpz4Zgc; Sun, 18 Apr 2021 21:33:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9092813792; Sun, 18 Apr 2021 21:33:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13ILXaFm067144; Sun, 18 Apr 2021 21:33:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13ILXauZ067143; Sun, 18 Apr 2021 21:33:36 GMT (envelope-from git) Date: Sun, 18 Apr 2021 21:33:36 GMT Message-Id: <202104182133.13ILXauZ067143@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 449f0e48e902 - main - bhyve.8: Clean-up synopsis of -s MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 449f0e48e902ed36ec0de31279eefad9e6200cdc Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 21:33:36 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=449f0e48e902ed36ec0de31279eefad9e6200cdc commit 449f0e48e902ed36ec0de31279eefad9e6200cdc Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 20:28:47 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 21:33:23 +0000 bhyve.8: Clean-up synopsis of -s - Document "-s help" separately for readability. - Use appropriate mdoc macros. MFC after: 2 weeks --- usr.sbin/bhyve/bhyve.8 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index d3d44a5a6232..e58c877dacbe 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -233,7 +233,9 @@ options. The count of vCPUs and memory configuration are read from the snapshot. .It Fl S Wire guest memory. -.It Fl s Op Ar help|slot,emulation Ns Op , Ns Ar conf +.It Fl s Cm help +Print a list of supported PCI devices. +.It Fl s Ar slot Ns Cm \&, Ns Ar emulation Ns Op Cm \&, Ns Ar conf Configure a virtual PCI slot and function. .Pp .Nm @@ -242,8 +244,6 @@ slots on the bus. There are 32 available slots, with the option of providing up to 8 functions per slot. .Bl -tag -width 10n -.It Ar help -print a list of supported PCI devices. .It Ar slot .Ar pcislot[:function] .Ar bus:pcislot:function From owner-dev-commits-src-main@freebsd.org Sun Apr 18 21:33:37 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E99285F6D9A; Sun, 18 Apr 2021 21:33:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNjqj5x7tz4ZSQ; Sun, 18 Apr 2021 21:33:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B34431376F; Sun, 18 Apr 2021 21:33:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13ILXbPH067167; Sun, 18 Apr 2021 21:33:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13ILXbNb067166; Sun, 18 Apr 2021 21:33:37 GMT (envelope-from git) Date: Sun, 18 Apr 2021 21:33:37 GMT Message-Id: <202104182133.13ILXbNb067166@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 234d8c470b44 - main - bhyve.8: Clean up the slot description of -s MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 234d8c470b44160fe0cbce49b972b3b19f246a89 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 21:33:38 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=234d8c470b44160fe0cbce49b972b3b19f246a89 commit 234d8c470b44160fe0cbce49b972b3b19f246a89 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 20:56:19 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 21:33:23 +0000 bhyve.8: Clean up the slot description of -s Also, remove the macros of the nested list which contained slot, emulation and conf. This decreases the indention of the -s description. It was necessary to clean up the slot description. MFC after: 2 weeks --- usr.sbin/bhyve/bhyve.8 | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index e58c877dacbe..8e1a33ea4b42 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -243,10 +243,23 @@ provides PCI bus emulation and virtual devices that can be attached to slots on the bus. There are 32 available slots, with the option of providing up to 8 functions per slot. -.Bl -tag -width 10n -.It Ar slot -.Ar pcislot[:function] -.Ar bus:pcislot:function +.Pp +The +.Ar slot +can be specified in one of the following formats: +.Pp +.Bl -bullet -compact +.It +.Ar pcislot +.It +.Sm off +.Ar pcislot Cm \&: Ar function +.Sm on +.It +.Sm off +.Ar bus Cm \&: Ar pcislot Cm \&: Ar function +.Sm on +.El .Pp The .Ar pcislot @@ -263,7 +276,11 @@ value defaults to 0. If not specified, the .Ar bus value defaults to 0. -.It Ar emulation +.Pp +The +.Ar emulation +argument +can be one of the following: .Bl -tag -width 10n .It Li hostbridge | Li amd_hostbridge .Pp @@ -313,8 +330,10 @@ NVM Express (NVMe) controller. .It Li hda High Definition Audio Controller. .El -.It Op Ar conf -This optional parameter describes the backend for device emulations. +.Pp +The optional parameter +.Ar conf +describes the backend for device emulations. If .Ar conf is not specified, the device emulation has no backend and can be From owner-dev-commits-src-main@freebsd.org Sun Apr 18 21:33:39 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0454A5F6F11; Sun, 18 Apr 2021 21:33:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNjqk6dGKz4Zgj; Sun, 18 Apr 2021 21:33:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D5707132F8; Sun, 18 Apr 2021 21:33:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13ILXc1M067195; Sun, 18 Apr 2021 21:33:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13ILXcJ1067194; Sun, 18 Apr 2021 21:33:38 GMT (envelope-from git) Date: Sun, 18 Apr 2021 21:33:38 GMT Message-Id: <202104182133.13ILXcJ1067194@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 7014cb239359 - main - bhyve.8: Improve emulation description of the -s flag MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7014cb2393594ee4a8389c65d507afacf729c041 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 21:33:39 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=7014cb2393594ee4a8389c65d507afacf729c041 commit 7014cb2393594ee4a8389c65d507afacf729c041 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 21:08:39 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 21:33:23 +0000 bhyve.8: Improve emulation description of the -s flag - Set width of the list to the longest key word for readability. - Separate descriptions of amd_hostbridge and hostbridge emulations. Also, wordsmith their descriptions for consistency with other entries. - Use Cm instead of Li for command modifiers. - Do not stylize AMD with Li, there's no need to do it. - Mention COM3 and COM4 in the definition of lpc. - Fix a typo in the definition of ahci-hd ("hard drive" instead of "hard-drive"). MFC after: 2 weeks --- usr.sbin/bhyve/bhyve.8 | 54 +++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index 8e1a33ea4b42..6db14afa07c3 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -281,53 +281,53 @@ The .Ar emulation argument can be one of the following: -.Bl -tag -width 10n -.It Li hostbridge | Li amd_hostbridge -.Pp -Provide a simple host bridge. +.Bl -tag -width "amd_hostbridge" +.It Cm hostbridge +A simple host bridge. This is usually configured at slot 0, and is required by most guest operating systems. -The -.Li amd_hostbridge -emulation is identical but uses a PCI vendor ID of -.Li AMD . -.It Li passthru +.It Cm amd_hostbridge +Emulation identical to +.Cm hostbridge +using a PCI vendor ID of AMD. +.It Cm passthru PCI pass-through device. -.It Li virtio-net +.It Cm virtio-net Virtio network interface. -.It Li virtio-blk +.It Cm virtio-blk Virtio block storage interface. -.It Li virtio-scsi +.It Cm virtio-scsi Virtio SCSI interface. -.It Li virtio-9p +.It Cm virtio-9p Virtio 9p (VirtFS) interface. -.It Li virtio-rnd +.It Cm virtio-rnd Virtio RNG interface. -.It Li virtio-console +.It Cm virtio-console Virtio console interface, which exposes multiple ports to the guest in the form of simple char devices for simple IO between the guest and host userspaces. -.It Li ahci +.It Cm ahci AHCI controller attached to arbitrary devices. -.It Li ahci-cd +.It Cm ahci-cd AHCI controller attached to an ATAPI CD/DVD. -.It Li ahci-hd -AHCI controller attached to a SATA hard-drive. -.It Li e1000 +.It Cm ahci-hd +AHCI controller attached to a SATA hard drive. +.It Cm e1000 Intel e82545 network interface. -.It Li uart +.It Cm uart PCI 16550 serial device. -.It Li lpc -LPC PCI-ISA bridge with COM1 and COM2 16550 serial ports, a boot ROM, and, +.It Cm lpc +LPC PCI-ISA bridge with COM1, COM2, COM3, and COM4 16550 serial ports, +a boot ROM, and, optionally, the debug/test device. The LPC bridge emulation can only be configured on bus 0. -.It Li fbuf +.It Cm fbuf Raw framebuffer device attached to VNC server. -.It Li xhci +.It Cm xhci eXtensible Host Controller Interface (xHCI) USB controller. -.It Li nvme +.It Cm nvme NVM Express (NVMe) controller. -.It Li hda +.It Cm hda High Definition Audio Controller. .El .Pp From owner-dev-commits-src-main@freebsd.org Sun Apr 18 21:33:40 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4797E5F6F14; Sun, 18 Apr 2021 21:33:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FNjqm0hfgz4ZKV; Sun, 18 Apr 2021 21:33:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0730513770; Sun, 18 Apr 2021 21:33:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 13ILXdbM067216; Sun, 18 Apr 2021 21:33:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 13ILXdKb067215; Sun, 18 Apr 2021 21:33:39 GMT (envelope-from git) Date: Sun, 18 Apr 2021 21:33:39 GMT Message-Id: <202104182133.13ILXdKb067215@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 7fb22729816e - main - bhyve.8: Clean up network backends section MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7fb22729816ef6c9e65e5c544047e669edd2f06d Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 21:33:40 -0000 The branch main has been updated by 0mp (doc, ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=7fb22729816ef6c9e65e5c544047e669edd2f06d commit 7fb22729816ef6c9e65e5c544047e669edd2f06d Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2021-04-18 21:29:30 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2021-04-18 21:33:24 +0000 bhyve.8: Clean up network backends section - Reformat the format lists, use appropriate mdoc macros for readability. - Add a missing Oxford comma. MFC after: 2 weeks --- usr.sbin/bhyve/bhyve.8 | 55 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index 6db14afa07c3..4eba24455b69 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -339,14 +339,34 @@ If is not specified, the device emulation has no backend and can be considered unconnected. .Pp -Network backends: -.Bl -tag -width 10n -.It Ar tapN Ns Oo , Ns Ar mac=xx:xx:xx:xx:xx:xx Oc Ns Oo , Ns Ar mtu=N Oc -.It Ar vmnetN Ns Oo , Ns Ar mac=xx:xx:xx:xx:xx:xx Oc Ns Oo , Ns Ar mtu=N Oc -.It Ar netgraph,path=ADDRESS,peerhook=HOOK Ns Oo , Ns Ar socket=NAME Oc Ns Oo , Ns Ar hook=HOOK Oc Ns Oo , Ns Ar mac=xx:xx:xx:xx:xx:xx Oc Ns Oo , Ns Ar mtu=N Oc -.Pp +Network backends formats for +.Ar conf : +.Sm off +.Bl -bullet +.It +.Xo +.Cm tap Ar N +.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx +.Op Cm \&,mtu= Ar N +.Xc +.It +.Xo +.Cm vmnet Ar N +.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx +.Op Cm \&,mtu= Ar N +.Xc +.It +.Xo +.Cm netgraph,path= Ar ADDRESS Cm \&,peerhook= Ar HOOK +.Op Cm \&,socket= Ar NAME +.Op Cm \&,hook= Ar HOOK +.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx +.Op Cm \&,mtu= Ar N +.Xc +.El +.Sm on If -.Ar mac +.Cm mac is not specified, the MAC address is derived from a fixed OUI and the remaining bytes from an MD5 hash of the slot and function numbers and the device name. @@ -355,32 +375,35 @@ The MAC address is an ASCII string in .Xr ethers 5 format. .Pp -With virtio-net devices, the -.Ar mtu +With +.Cm virtio-net +devices, the +.Cm mtu parameter can be specified to inform the guest about the largest MTU that should be allowed, expressed in bytes. .Pp -With netgraph backend, the -.Ar path +With +.Cm netgraph +backend, the +.Cm path and -.Ar peerhook +.Cm peerhook parameters must be specified to set the destination node and corresponding hook. The optional parameters -.Ar socket +.Cm socket and -.Ar hook +.Cm hook may be used to set the .Xr ng_socket 4 node name and source hook. The .Ar ADDRESS , -.Ar HOOK +.Ar HOOK , and .Ar NAME must comply with .Xr netgraph 4 addressing rules. -.El .Pp Block storage devices: .Bl -tag -width 10n